Hello ,
On Mon, Sep 14, 2020 at 4:16 AM Alex Balashov abalashov@evaristesys.com wrote:
Hi,
On 2020-09-11 08:19, sagar malam wrote:
Hello , I am using the usrloc module to store registrations. I could not find any way to remove stale registrations before expires time. Most of the registrations are mobile app so they wont run in background to save battery of phone hence we end up having lots of registrations in usrloc which were not removed because app was killed in background by OS without letting it send unregister request.
Are you sure that removing such registrations is the best thing to do?
You don't know what the user is going to do; maybe they will be using it continuously, or maybe it'll be backgrounded. It's impossible to determine, so you can't assume any given registration is stale, and it is reasonable to attempt to contact the registrant for any given inbound call, even if the attempt is futile because it has gone unreachable.
I am using the Keepalive to identify if any registration is stale. If KA OPTION does not get a reply then that registration is considered as stale. There is no point of keeping unreachable registration in usrloc irrespective of whether the app is in background or foreground because it will only add overhead to generate an invite which will ultimately timeout without any response.
Meanwhile, the moment the endpoint is "woken up"[1] via a push notification, it will re-register and overwrite the stale contact binding instead of adding an additional one, provided that the match mode[2] is set correctly.
This is true for hard phones or any endpoint which has a stable internet. Here I am dealing with cellular networks so we cannot be sure if the app will be provided the same public IP and port(IP is same most of the time but not port) each time it will register with the server. So the same APP can register with the same call ID but different contact address which will create duplicate registration entries for the same APP.
-- Alex
[1]
https://www.kamailio.org/events/2015-KamailioWorld/Day2/20-Federico.Cabiddu-...
[2]
https://kamailio.org/docs/modules/5.4.x/modules/usrloc.html#usrloc.o.contact...
-- Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users