[OpenSIPS-Users] is_contact_registered - not working as expected

Bogdan-Andrei Iancu bogdan at opensips.org
Thu Aug 22 05:32:58 EDT 2019


In this case, the function will perform a string matching between the 
first valid contact URI from the message and the registered contacts 
(the `Contact` field). Again, it is a string matching over the entire 
SIP URI.

So far, based on your logs, I would say they should match. Could you 
doublecheck again ?

Regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
   https://www.opensips-solutions.com
OpenSIPS Summit 2019
   https://www.opensips.org/events/Summit-2019Amsterdam/

On 8/22/19 12:07 PM, Peter Pulham wrote:
> Hi,
>
> I am calling is_contact_registered("location")
>
> For the mi command, I used "mi ul_show_contact location 
> 5001 at domain.net <mailto:5001 at domain.net>" in opensips-cli
>
> Many thanks
>
> On Thu, Aug 22, 2019 at 10:00 AM Bogdan-Andrei Iancu 
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
>     Hi Peter,
>
>     How exactly do you invoke the is_contact_registered() function (as
>     params) for your script?
>
>     Regards,
>
>     Bogdan-Andrei Iancu
>
>     OpenSIPS Founder and Developer
>        https://www.opensips-solutions.com
>     OpenSIPS Summit 2019
>        https://www.opensips.org/events/Summit-2019Amsterdam/
>
>     On 8/21/19 10:34 PM, Peter Pulham wrote:
>>     Hi,
>>
>>     Thanks for the input.
>>
>>     Adding the logging of $ct before call is_contact_registered show
>>     this (also added a log for when it returned false):
>>
>>     Aug 21 19:24:52 ip-10-100-100-62 /usr/local/sbin/opensips[21114]:
>>     CONTACT OF REGISTER: "Peter Pulham" <sip:5001 at y.y.y.y:49710;ob>
>>     Aug 21 19:24:52 ip-10-100-100-62 /usr/local/sbin/opensips[21114]:
>>     IS CONTACT REGISTERED RETURNED FALSE
>>
>>     The contact from the ul_show_contact command shows the same contact:
>>
>>     {
>>         "AOR": "5001 at domain.net <mailto:5001 at domain.net>",
>>         "Contacts": [
>>             {
>>                 "Contact": "sip:5001 at y.y.y.y:49710;ob",
>>                 "ContactID": "1491535901589791905",
>>                 "Expires": 18,
>>                 "Q": "",
>>                 "Callid": "8..5AzWHdLmUQNXHdQhwDR3qMwOGPaWH",
>>                 "Cseq": 56286,
>>                 "User-agent": "Telephone 1.4",
>>                 "Received": "sip:x.x.x.x:49710",
>>                 "State": "CS_NEW",
>>                 "Flags": 0,
>>                 "Cflags": "NAT",
>>                 "Socket": "udp:z.z.z.z:5060",
>>                 "Methods": 8063
>>             }
>>         ]
>>     }
>>
>>     y.y.y.y is the same in the log as the mi output.
>>
>>     Through testing, I have realised that if the contact is not NAT'd
>>     then the is_contact_registered returns true.
>>
>>     Any input appreciated.
>>
>>     On Wed, Aug 21, 2019 at 11:56 AM Bogdan-Andrei Iancu
>>     <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>
>>         Hi Peter,
>>
>>         To doublecheck, do this:
>>
>>         * before calling the is_contact_registered(), use xlog() to
>>         print the contact you are testing (use $ct).
>>
>>         * before running the test, use the ul_show_contact MI
>>         function [1] to print the in-memory contacts for the desired AOR.
>>
>>
>>         [1]
>>         https://opensips.org/html/docs/modules/2.4.x/usrloc.html#mi_ul_show_contact
>>
>>         Regards,
>>
>>         Bogdan-Andrei Iancu
>>
>>         OpenSIPS Founder and Developer
>>            https://www.opensips-solutions.com
>>         OpenSIPS Summit 2019
>>            https://www.opensips.org/events/Summit-2019Amsterdam/
>>
>>         On 08/16/2019 06:38 PM, Peter Pulham wrote:
>>>         Hi,
>>>
>>>         I am using mid_registrar to save registrations to the
>>>         location table.
>>>
>>>         If I use is_registered - everything works as expected. So
>>>         AOR matching is working.
>>>
>>>         However, when I use is_contact_registered - it returns false.
>>>
>>>         I have checked the contact header in the request against the
>>>         contact value of the AOR in the db and they match (the
>>>         request has a display name but I am presuming only the uri
>>>         is checked.
>>>
>>>         The endpoint is behind NAT, but the contacts match in the db
>>>         and request. Can some explain what is actually checked when
>>>         using is_contact_registered?
>>>
>>>         Many thanks
>>>
>>>
>>>         _______________________________________________
>>>         Users mailing list
>>>         Users at lists.opensips.org  <mailto:Users at lists.opensips.org>
>>>         http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20190822/db5d2eea/attachment.html>


More information about the Users mailing list