Hello Razvan,
My idea is to keep one registration per device and hence the fc1 option
wouldn't work for me here. Meaning the account can register from multiple
locations using multiple devices, but if the same device tries to initiate
a new register when there is an existing record in the location, I want to
remove the existing one and save the new one. Moreover, my clients do not
support GRUU and hence thats not the right path for me currently.
So here's the idea:
1) On a REGISTER request, my clients come with an id that is unique to a
device.
2) On successful registration, I store in local-cache the contact and
callid for this particular device-id.
3) For all REGISTER, I check if AOR with callid is registered using the
'registered("location", "AOR", "callid")' function.
4) If registered returns true for the current callid, I consider it to be a
Re-REGISTER.
5) If registered for current  callid returns false, I fetch the contact for
device_id from local-cache. If the contact exists, meaning the same device
is doing a new REGISTER. In this case, I need to remove the existing
contact for this AoR.
6) This mostly happens when a client is registered and loses connectivity.
The client when restarted creates a new registration with new callid
without un-registering the existing one on the server.
7) The server deletes the device-id from the location on Un-REGISTER. I
identify this when Expires header is 0.

Do let me know if this is do-able in a neater way. Thanks in advance.

- Jayesh

On Tue, Nov 17, 2015 at 2:48 PM Răzvan Crainea <[email protected]> wrote:

> Hi, Jayesh!
>
> If I understood correctly, you only want to have a single contact in
> memory, right? If so, you can use the save[1] function, with flags c and f.
> Something like:
>
> save("location", "fc1");
>
> [1]
> http://www.opensips.org/html/docs/modules/2.1.x/registrar.html#id294034
>
> Best regards,
>
> Răzvan Crainea
> OpenSIPS Solutionswww.opensips-solutions.com
>
> On 11/17/2015 08:37 AM, Jayesh Nambiar wrote:
>
> Hello All,
> Just bumping in to check if there's a better way to remove an existing
> contact from the location. My idea was to remove from the location a record
> with particular callid or particular contact on specific scenarios. So I do
> the following:
> On a successful registration I store the some id that my device has along
> with callid and contact.
> On a subsequent registration, I compare the id and callid, if they are
> different from the current registration, I need to remove the existing
> contact with this callid
> If the id and callid is same, I do nothing.
>
> Thanks,
>
> - Jayesh
>
> On Tue, Nov 10, 2015 at 6:59 PM Jayesh Nambiar <[email protected]>
> wrote:
>
>> Forgot to mention. I'm using version 2.1.
>>
>> Thanks,
>>
>> - Jayesh
>>
>> On Tue, Nov 10, 2015 at 6:01 PM Jayesh Nambiar <[email protected]>
>> wrote:
>>
>>> Hello,
>>> I've been trying to delete specific contact for AOR using the remove
>>> function in the registrar module, but somehow it doesn't remove it from the
>>> location.
>>> My db_mode is 0 as I only want to store it in opensips memory. I hav the
>>> "use_domain" param as 1. On register, the contact gets stored in the
>>> following format:
>>>
>>>
>>> sip:[email protected]:49612;rinstance=477b5477848ba584;transport=tcp
>>>
>>> I tried multiple ways to remove this:
>>>
>>> 1) remove("location", "sip:[email protected]",
>>> "sip:[email protected]:49612;rinstance=477b5477848ba584;transport=tcp"
>>> <sip:[email protected]:49612;rinstance=477b5477848ba584;transport=tcp>
>>> )
>>>
>>> 2) remove("location", "sip:[email protected]", "
>>> sip:[email protected]:49612")
>>>
>>> Also, I'd like to mention that I have an edge proxy in the middle who
>>> proxies the REGISTER to this Registrar and I use the PATH module to route
>>> back reliably. I'm essentially trying to remove location entry for
>>> particular endpoints based on some conditions.
>>>
>>> Any help is appreciated. Thanks,
>>>
>>> - Jayesh
>>>
>>
>
> _______________________________________________
> Users mailing 
> [email protected]http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to