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