Vlad,<div><br></div><div>I think I found it.  There is a fix_contact(&quot;3&quot;) on the &quot;softswitch&quot;.  The &quot;1&quot; bit test is finding the private Contact URI, causing the function to return true, thus rewriting the Contact header as the received ip:port.</div>
<div><br></div><div>Interesting how it does exactly what I told it to.</div><div><br></div><div><br></div><div>- Jeff</div><div><br>
<br><br><div class="gmail_quote">On Tue, Jul 10, 2012 at 8:23 AM, Jeff Pyle <span dir="ltr">&lt;<a href="mailto:jpyle@fidelityvoice.com" target="_blank">jpyle@fidelityvoice.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Vlad,</div><div><br></div><div>Yes, that&#39;s it exactly!  The softswitch in this case is changing the Contact header from the original value to the received ip:port.  The strict router behavior makes sense.</div><div>

<br></div><div>The &quot;softswitch&quot; in this case is Opensips 1.6.  Which functions have the ability to cause that change?  The &quot;softswitch&quot; Opensips configuration has been active for years and I&#39;ve never noticed this behavior before.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div><br></div><div>- Jeff</div></font></span><div class="HOEnZb"><div class="h5"><div><br></div><div><br></div><br><div class="gmail_quote">On Tue, Jul 10, 2012 at 4:29 AM, Vlad Paiu <span dir="ltr">&lt;<a href="mailto:vladpaiu@opensips.org" target="_blank">vladpaiu@opensips.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>

  
    
    
  
  <div bgcolor="#ffffff" text="#000000">
    Hello Jeff,<br>
    <br>
    Your OpenSIPS probably routes that ACK as a strict router, since it
    sees that in the R-URI there&#39;s an IP where it&#39;s listening on (
    opensips_WAN_public ).<br>
    The contact in the 200OK had <a href="mailto:sip:9998887777@172.21.201.1:5066" target="_blank">sip:9998887777@172.21.201.1:5066</a> , so
    this should have been in the ACK&#39;s R-URI. Try to fix the softswitch.<br>
    <br>
    Regards,<br>
    <pre cols="72">Vlad Paiu
OpenSIPS Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a> </pre><div><div>
    <br>
    On 07/09/2012 09:28 PM, Jeff Pyle wrote:
    <blockquote type="cite">
      <div>Rudy,</div>
      <div><br>
      </div>
      <div>I don&#39;t have pcaps but I do have ngreps available here:</div>
      <div>  <a href="http://pastebin.com/EKMrhc7Z" target="_blank">http://pastebin.com/EKMrhc7Z</a></div>
      <div><br>
      </div>
      <div>You can see the ACK come in from the softswitch to Opensips&#39;s
        public interface starting at line 212.  I&#39;d expect this to relay
        through to the private side, but instead, we see starting on
        line 228 it relays the ACK to itself on its private interface.
         I don&#39;t know why that is happening.</div>
      <div><br>
      </div>
      <div>The opensips.cfg is available here:</div>
      <div>  <a href="http://pastebin.com/UB9pPuUk" target="_blank">http://pastebin.com/UB9pPuUk</a></div>
      <div><br>
      </div>
      <div>I&#39;m not sure what to do with it from here.</div>
      <div>
        <br>
      </div>
      <div><br>
      </div>
      <div>- Jeff</div>
      <br>
      <br>
      <br>
      <div class="gmail_quote">On Sun, Jul 8, 2012 at 11:44 AM, Rudy <span dir="ltr">&lt;<a href="mailto:rudy@dynamicpacket.com" target="_blank">rudy@dynamicpacket.com</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          Jeff,<br>
          <br>
          Can you post the pcap captures somewhere so I can take a look?<br>
          <br>
          Thanks in advance,<br>
          --Rudy<br>
          Dynamic Packet<br>
          Toll-Free: 888.929.VOIP ( 8647 )<br>
          <div>
            <div><br>
              <br>
              On Sun, Jul 8, 2012 at 8:21 AM, Jeff Pyle &lt;<a href="mailto:jpyle@fidelityvoice.com" target="_blank">jpyle@fidelityvoice.com</a>&gt;
              wrote:<br>
              &gt; Hi Duane,<br>
              &gt;<br>
              &gt; I have captures now!  I also read through your
              thread.  The situation looks<br>
              &gt; to be the same.  I also have a missing username in
              the self-relayed ACK&#39;s<br>
              &gt; RURI.<br>
              &gt;<br>
              &gt; And it&#39;s also driving my crazy.<br>
              &gt;<br>
              &gt; I&#39;m on 1.7 build 9142.  You?<br>
              &gt;<br>
              &gt;<br>
              &gt;<br>
              &gt; - Jeff<br>
              &gt;<br>
              &gt;<br>
              &gt; On Sat, Jul 7, 2012 at 7:14 PM, &lt;<a href="mailto:duane.larson@gmail.com" target="_blank">duane.larson@gmail.com</a>&gt;
              wrote:<br>
              &gt;&gt;<br>
              &gt;&gt; Almost sounds like you and I are having the same
              issue.<br>
              &gt;&gt;<br>
              &gt;&gt; Here&#39;s my issue<br>
              &gt;&gt;<br>
              &gt;&gt; <a href="http://opensips-open-sip-server.1449251.n2.nabble.com/Two-OpenSIPS-proxies-issue-td7580685.html" target="_blank">http://opensips-open-sip-server.1449251.n2.nabble.com/Two-OpenSIPS-proxies-issue-td7580685.html</a><br>


              &gt;&gt;<br>
              &gt;&gt; Do you have a SIP trace? I&#39;m just wondering if we
              are having the same<br>
              &gt;&gt; problem. Does the ACK that gets relayed to ifself
              on the other IP have the<br>
              &gt;&gt; username missing in the RURI?<br>
              &gt;&gt;<br>
              &gt;&gt;<br>
              &gt;&gt;<br>
              &gt;&gt;<br>
              &gt;&gt; On , Jeff Pyle &lt;<a href="mailto:jpyle@fidelityvoice.com" target="_blank">jpyle@fidelityvoice.com</a>&gt;
              wrote:<br>
              &gt;&gt; &gt; Hello,<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; I&#39;m attempting to write a config to perform
              near-end NAT traversal on<br>
              &gt;&gt; &gt; Opensips 1.7.  I&#39;m having a problem with the
              loose_route of the ACK after<br>
              &gt;&gt; &gt; the 200 OK, and if I wait long enough, the
              BYE as well.<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; Here&#39;s the scenario.  An INVITE comes in the
              WAN side and is t_relay&#39;d<br>
              &gt;&gt; &gt; to the LAN side.  The LAN-side UAS sends a
              200 OK, and that is relayed back<br>
              &gt;&gt; &gt; to the WAN-side UAC.  So far, so good.  Then
              the WAN-side UAC sends the ACK<br>
              &gt;&gt; &gt; to the 200.  Opensips relays this from its
              own WAN IP to its own LAN IP - I<br>
              &gt;&gt; &gt; found it with ngrep on the lo interface.
               Eventually Opensips sends a 408<br>
              &gt;&gt; &gt; back to the UAC.<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; Here&#39;s the relevant portion of the config,
              based largely on the included<br>
              &gt;&gt; &gt; sample.  This works fine with
              single-interface configurations:<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;         if (has_totag()) {<br>
              &gt;&gt; &gt;                 if (loose_route()) {<br>
              &gt;&gt; &gt;                         if
              (method==&quot;INVITE&quot;) record_route();<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;                         if (!t_relay())
              sl_reply_error();<br>
              &gt;&gt; &gt;                         exit;<br>
              &gt;&gt; &gt;                 } else {<br>
              &gt;&gt; &gt;                         if (method == &quot;ACK&quot;)
              {<br>
              &gt;&gt; &gt;                                 if
              (t_check_trans()) {<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;                                         if
              (!t_relay())<br>
              &gt;&gt; &gt; sl_reply_error();<br>
              &gt;&gt; &gt;                                        
              exit;<br>
              &gt;&gt; &gt;                                 } else {<br>
              &gt;&gt; &gt;                                        
              exit;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;                                 }<br>
              &gt;&gt; &gt;                         }<br>
              &gt;&gt; &gt;                         sl_send_reply(&quot;404&quot;,
              &quot;Not Here&quot;);<br>
              &gt;&gt; &gt;                 }<br>
              &gt;&gt; &gt;                 exit;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;         }<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; I&#39;ve verified with xlogs the ACK hits in the
              loose_route() portion of<br>
              &gt;&gt; &gt; the config.  It does hit t_relay, but it
              relays the message to itself on its<br>
              &gt;&gt; &gt; &#39;other&#39; IP.  I&#39;ve tried to look the extended
              debugs but I&#39;m not finding<br>
              &gt;&gt; &gt; anything telling.  Unfortunately I don&#39;t
              have any experience with multiple<br>
              &gt;&gt; &gt; interface configurations.  I suspect it has
              something to do with the double<br>
              &gt;&gt; &gt; Via lines added, one from each interface.
               Perhaps it&#39;s not detecting the<br>
              &gt;&gt; &gt; second Via as its own?  (Even if that were
              the case, I can&#39;t explain why<br>
              &gt;&gt; &gt; it&#39;s not responding to itself on the lo
              interface.)<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; I do have mhomed=1 enabled.  Without it the
              initial invite doesn&#39;t<br>
              &gt;&gt; &gt; arrive at the LAN-side UAS.<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; I&#39;ve experimented with check_via, aliases,
              etc.  No effect.  Any<br>
              &gt;&gt; &gt; suggestions on where to go from here?<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt; - Jeff<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt; &gt;<br>
              &gt;&gt;<br>
              &gt;&gt; _______________________________________________<br>
              &gt;&gt; Users mailing list<br>
              &gt;&gt; <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
              &gt;&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
              &gt;&gt;<br>
              &gt;<br>
              &gt;<br>
              &gt; _______________________________________________<br>
              &gt; Users mailing list<br>
              &gt; <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
              &gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
              &gt;<br>
              <br>
              _______________________________________________<br>
              Users mailing list<br>
              <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
              <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
      <pre><fieldset></fieldset>
_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
    </blockquote>
  </div></div></div>

<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br></blockquote></div><br>
</div></div></blockquote></div><br></div>