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-Kamailio-In-A-Mobile-World.pdf

[2]
https://kamailio.org/docs/modules/5.4.x/modules/usrloc.html#usrloc.o.contact-matching-algs

--
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


--
Thanks,

Sagar