<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<tt>Hi Peter,<br>
<br>
Indeed, that's a good point - the `fix_nated_contact()` is
changing the contact (with the IP and port from the network
level), messing up the matching.<br>
<br>
Regards,<br>
</tt>
<pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="https://www.opensips-solutions.com">https://www.opensips-solutions.com</a>
OpenSIPS Summit 2019
<a class="moz-txt-link-freetext" href="https://www.opensips.org/events/Summit-2019Amsterdam/">https://www.opensips.org/events/Summit-2019Amsterdam/</a>
</pre>
<div class="moz-cite-prefix">On 8/22/19 10:16 PM, Peter Pulham
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAA6ie1A4eBnqVCzwo8wUTB_XihBXXtTgbLUB2Z28VonTGCDBXA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hi,
<div><br>
</div>
<div>A bit more testing and I realised that if I xlog the
contact $ct it printed the value of the contact in the INVITE:</div>
<div><br>
</div>
<div><a class="moz-txt-link-rfc2396E" href="sip:5001@y.y.y.y:49710;ob"><sip:5001@y.y.y.y:49710;ob></a><br>
</div>
<div><br>
</div>
<div>Which looked fine and matched the usrloc table. However, if
I xlog $ct.field(uri) it printed a value with the public IP:</div>
<div><br>
</div>
<div><a class="moz-txt-link-freetext" href="sip:5001@x.x.x.x:49710;ob">sip:5001@x.x.x.x:49710;ob</a><br>
</div>
<div><br>
</div>
<div>So it looks like I need to do my checking before I do any
NAT contact fixup.</div>
<div><br>
</div>
<div>This also explains why non NAT'd contacts were working.</div>
<div><br>
</div>
<div>Thanks for the help, set me on the right path to finally
get to the issue.</div>
<div><br>
</div>
<div>Many thanks</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Aug 22, 2019 at 10:33
AM Bogdan-Andrei Iancu <<a
href="mailto:bogdan@opensips.org" moz-do-not-send="true">bogdan@opensips.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"> <tt>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.<br>
<br>
So far, based on your logs, I would say they should match.
Could you doublecheck again ?<br>
<br>
Regards,<br>
</tt>
<pre class="gmail-m_-6677019464318701796moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="gmail-m_-6677019464318701796moz-txt-link-freetext" href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
OpenSIPS Summit 2019
<a class="gmail-m_-6677019464318701796moz-txt-link-freetext" href="https://www.opensips.org/events/Summit-2019Amsterdam/" target="_blank" moz-do-not-send="true">https://www.opensips.org/events/Summit-2019Amsterdam/</a>
</pre>
<div class="gmail-m_-6677019464318701796moz-cite-prefix">On
8/22/19 12:07 PM, Peter Pulham wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I am calling is_contact_registered("location")</div>
<div><br>
</div>
<div>For the mi command, I used "mi ul_show_contact
location <a href="mailto:5001@domain.net"
target="_blank" moz-do-not-send="true">5001@domain.net</a>"
in opensips-cli</div>
<div><br>
</div>
<div>Many thanks</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Aug 22, 2019
at 10:00 AM Bogdan-Andrei Iancu <<a
href="mailto:bogdan@opensips.org" target="_blank"
moz-do-not-send="true">bogdan@opensips.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"> <tt>Hi Peter,<br>
<br>
How exactly do you invoke the
is_contact_registered() function (as params) for
your script?<br>
<br>
Regards,<br>
</tt>
<pre class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-txt-link-freetext" href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
OpenSIPS Summit 2019
<a class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-txt-link-freetext" href="https://www.opensips.org/events/Summit-2019Amsterdam/" target="_blank" moz-do-not-send="true">https://www.opensips.org/events/Summit-2019Amsterdam/</a>
</pre>
<div
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-cite-prefix">On
8/21/19 10:34 PM, Peter Pulham wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hi,</div>
<div><br>
</div>
<div>Thanks for the input.</div>
<div><br>
</div>
Adding the logging of $ct before call
is_contact_registered show this (also added a
log for when it returned false):
<div><br>
</div>
<div>Aug 21 19:24:52 ip-10-100-100-62
/usr/local/sbin/opensips[21114]: CONTACT OF
REGISTER: "Peter Pulham" <a
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-txt-link-rfc2396E"
moz-do-not-send="true"><sip:5001@y.y.y.y:49710;ob></a><br>
Aug 21 19:24:52 ip-10-100-100-62
/usr/local/sbin/opensips[21114]: IS CONTACT
REGISTERED RETURNED FALSE<br>
</div>
<div><br>
</div>
<div>The contact from the <span
style="font-family:monospace">ul_show_contact
command shows the same contact:</span></div>
<div><span style="font-family:monospace"><br>
</span></div>
<div>{<br>
"AOR": "<a href="mailto:5001@domain.net"
target="_blank" moz-do-not-send="true">5001@domain.net</a>",<br>
"Contacts": [<br>
{<br>
"Contact": <a
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-txt-link-rfc2396E"
moz-do-not-send="true">"sip:5001@y.y.y.y:49710;ob"</a>,<br>
"ContactID":
"1491535901589791905",<br>
"Expires": 18,<br>
"Q": "",<br>
"Callid":
"8..5AzWHdLmUQNXHdQhwDR3qMwOGPaWH",<br>
"Cseq": 56286,<br>
"User-agent": "Telephone 1.4",<br>
"Received": <a
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537moz-txt-link-rfc2396E"
moz-do-not-send="true">"sip:x.x.x.x:49710"</a>,<br>
"State": "CS_NEW",<br>
"Flags": 0,<br>
"Cflags": "NAT",<br>
"Socket": "udp:z.z.z.z:5060",<br>
"Methods": 8063<br>
}<br>
]<br>
}<span style="font-family:monospace"><br>
</span></div>
<div><br>
</div>
<div>y.y.y.y is the same in the log as the mi
output.</div>
<div><br>
</div>
<div>Through testing, I have realised that if
the contact is not NAT'd then the
is_contact_registered returns true.</div>
<div><br>
</div>
<div>Any input appreciated.</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Aug
21, 2019 at 11:56 AM Bogdan-Andrei Iancu <<a
href="mailto:bogdan@opensips.org"
target="_blank" moz-do-not-send="true">bogdan@opensips.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"> <tt>Hi Peter,<br>
<br>
To doublecheck, do this:<br>
<br>
* before calling the
is_contact_registered(), use xlog() to
print the contact you are testing (use
$ct).<br>
<br>
* before running the test, use the
ul_show_contact MI function [1] to print
the in-memory contacts for the desired
AOR.<br>
<br>
<br>
[1] <a
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-txt-link-freetext"
href="https://opensips.org/html/docs/modules/2.4.x/usrloc.html#mi_ul_show_contact"
target="_blank" moz-do-not-send="true">https://opensips.org/html/docs/modules/2.4.x/usrloc.html#mi_ul_show_contact</a><br>
<br>
Regards,<br>
</tt>
<pre class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-txt-link-freetext" href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
OpenSIPS Summit 2019
<a class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-txt-link-freetext" href="https://www.opensips.org/events/Summit-2019Amsterdam/" target="_blank" moz-do-not-send="true">https://www.opensips.org/events/Summit-2019Amsterdam/</a>
</pre>
<div
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-cite-prefix">On
08/16/2019 06:38 PM, Peter Pulham wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I am using mid_registrar to save
registrations to the location table.</div>
<div><br>
</div>
<div>If I use is_registered - everything
works as expected. So AOR matching is
working.</div>
<div><br>
</div>
<div>However, when I use
is_contact_registered - it returns
false.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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?</div>
<div><br>
</div>
<div>Many thanks</div>
</div>
<br>
<fieldset
class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991mimeAttachmentHeader"></fieldset>
<br>
<pre>_______________________________________________
Users mailing list
<a class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-txt-link-abbreviated" href="mailto:Users@lists.opensips.org" target="_blank" moz-do-not-send="true">Users@lists.opensips.org</a>
<a class="gmail-m_-6677019464318701796gmail-m_5665734764938766537gmail-m_6706597972070815991moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank" moz-do-not-send="true">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>