<HTML><BODY>Hello Ali,<br><br>ACK is sent by UAC to the Contact which is received in OK from UAS.<br>So from my point of view you need to fix that Contact in OK on your proxy.<br><br>My NATDETECT looks like:<br><br><div>    if (nat_uac_test("19")) {</div><div>       fix_nated_contact();</div><div>    }</div><div><br>I call it for requests and responses.<br><br>Best regards.<br>Konstantin</div><br><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15320810450000000770_BODY">Message: 23<br>
Date: Fri, 20 Jul 2018 11:13:42 +0300<br>
From: "Ali Taher" <<a href="mailto:ataher@vanrise.com">ataher@vanrise.com</a>><br>
To: <<a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>><br>
Subject: [SR-Users] NATHELPER issue<br>
Message-ID: <<a href="mailto:070901d42001$939be2b0$bad3a810$@vanrise.com">070901d42001$939be2b0$bad3a810$@vanrise.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Hello,<br>
<br>
 <br>
<br>
I'm using Kamailio 4.2 as proxy with nathelper enabled.<br>
<br>
 <br>
<br>
Yet , the ACK packet sent from the proxy to the origination's private IP.<br>
<br>
 <br>
<br>
The ACK is sent as reply on the following 200 OK sent from the origination :<br>
<br>
<br>
 <br>
<br>
8m2EJN41BN/6WSIP/2.0 200 OK<br>
<br>
From: <sip:+4444331234567@X.X.X.X;user=phone>;tag=XQBQNjvjgp4Ze<br>
<br>
To: <sip:+905362695933@172.16.45.65;user=phone>;tag=12033368836000<br>
<br>
Via: SIP/2.0/UDP<br>
X.X.X.X:5065;branch=z9hG4bK2959.233ecbc5eff949f946d8763ce25e5e6d.0;received=<br>
X.X.X.X,SIP/2.0/UDP<br>
X.X.X.X;received=X.X.X.X;rport=5060;branch=z9hG4bKN93cXvv26vDDN<br>
<br>
Record-Route: <sip:X.X.X.X:5065;lr;ftag=XQBQNjvjgp4Ze><br>
<br>
Call-ID: <a href="mailto:CbeX8453909200habfGhEfElPce@BC00.XXXXXXXXXXXXXX">CbeX8453909200habfGhEfElPce@BC00.XXXXXXXXXXXXXX</a><br>
<br>
CSeq: 125698370 INVITE<br>
<br>
Accept: application/sdp<br>
<br>
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,UPDATE<br>
<br>
P-Charging-Vector:<br>
icid-value=B0912C3D70-0720-09394507;icid-generated-at=BC00.XXXXXXXXXXXXXX.XX<br>
;orig-ioi=MXXXXXXXXXXXXXX<br>
<br>
Content-Type: application/sdp<br>
<br>
Contact: <sip:172.16.45.65:5060;transport=UDP><br>
<br>
Content-Length:  268<br>
<br>
 <br>
<br>
v=0<br>
<br>
o=- 5838243 5838244 IN IP4 BC00.XXXXXXXXXXXXXX<br>
<br>
s=-<br>
<br>
c=IN IP4 172.16.45.144<br>
<br>
t=0 0<br>
<br>
a=sendrecv<br>
<br>
m=audio 47588 RTP/AVP 18 96<br>
<br>
c=IN IP4 172.16.45.144<br>
<br>
a=rtpmap:18 G729/8000<br>
<br>
a=fmtp:18 annexb=yes<br>
<br>
a=rtpmap:96 telephone-event/8000<br>
<br>
a=fmtp:96 0-15<br>
<br>
a=maxptime:20<br>
<br>
 <br>
<br>
Following is the header of the sent ACK packet:<br>
<br>
 <br>
<br>
Request-Line: ACK sip:172.16.45.65:5060;transport=UDP SIP/2.0<br>
<br>
Record-Route: <sip:X.X.X.X:5065;lr;ftag=XQBQNjvjgp4Ze><br>
<br>
Via: SIP/2.0/UDP<br>
X.X.X.X:5065;branch=z9hG4bK2959.871535fd341bbe3099d0bf60d6460e18.0<br>
<br>
Via: SIP/2.0/UDP<br>
X.X.X.X;received=X.X.X.X;rport=5060;branch=z9hG4bKQUpy0jy90etjc<br>
<br>
Max-Forwards: 69<br>
<br>
From: <sip:+4444331234567@X.X.X.X;user=phone>;tag=XQBQNjvjgp4Ze<br>
<br>
To: <sip:+905362695933@172.16.45.65;user=phone>;tag=12033368836000<br>
<br>
Call-ID: <a href="mailto:CbeX8453909200habfGhEfElPce@BC00.XXXXXXXXXXXXXX">CbeX8453909200habfGhEfElPce@BC00.XXXXXXXXXXXXXX</a><br>
<br>
CSeq: 125698370 ACK<br>
<br>
Content-Length: 0<br>
<br>
 <br>
<br>
Where X.X.X.X is Kamailio server public IP.<br>
<br>
 <br>
<br>
Following is part of my config file :<br>
<br>
 <br>
<br>
route {<br>
<br>
route(NATDETECT);<br>
<br>
record_route();<br>
<br>
 <br>
<br>
        if(!mf_process_maxfwd_header("10")) {<br>
<br>
                sl_send_reply("483", "Too Many Hops");<br>
<br>
                exit;<br>
<br>
        }<br>
<br>
 <br>
<br>
        # Maybe some sanity_check() here.<br>
<br>
 <br>
<br>
        if(has_totag()) {<br>
<br>
       <br>
<br>
                if(loose_route()) {<br>
<br>
                route(DLGURI);<br>
<br>
                        if(!t_relay())<br>
<br>
                                sl_reply_error();<br>
<br>
 <br>
<br>
                        exit;<br>
<br>
                } else {<br>
<br>
                        if(is_method("ACK")) {<br>
<br>
                        route(DLGURI);<br>
<br>
                                if(t_check_trans()) {<br>
<br>
                                        t_relay();<br>
<br>
                                }<br>
<br>
                        } else<br>
<br>
                                sl_send_reply("403", "Forbidden");<br>
<br>
                }<br>
<br>
                exit;<br>
<br>
        }<br>
<br>
                                <br>
<br>
.....<br>
<br>
}<br>
<br>
                                <br>
<br>
 <br>
<br>
route[NATDETECT] {<br>
<br>
#!ifdef WITH_NAT<br>
<br>
        force_rport();<br>
<br>
        if (nat_uac_test("19")) {<br>
<br>
                if (is_method("REGISTER")) {<br>
<br>
                        fix_nated_register();<br>
<br>
                } else {<br>
<br>
                        add_contact_alias();<br>
<br>
                }<br>
<br>
                setflag(FLT_NATS);<br>
<br>
        }<br>
<br>
#!endif<br>
<br>
        return;<br>
<br>
}<br>
<br>
 <br>
<br>
route[DLGURI] {<br>
<br>
#!ifdef WITH_NAT<br>
<br>
        if(!isdsturiset()) {<br>
<br>
         handle_ruri_alias();<br>
<br>
        }<br>
<br>
#!endif<br>
<br>
        return;<br>
<br>
}                              <br>
<br>
 <br>
<br>
Can you please check why the ACK is still sent on private IP ?<br>
<br>
 <br>
<br>
Thanks<br>
<br>
Ali Taher<br>
<br><br>
</div>
            
        
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br><div id="_mcePaste" class="mcePaste" data-mce-bogus="1" style="position: absolute; left: 0px; top: -25px; width: 1px; height: 1px; overflow: hidden;">"Ali Taher" <<a href="https://e.mail.ru/compose?To=ataher@vanrise.com">ataher@vanrise.com</a>></div><style type="text/css"></style></BODY></HTML>