<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m using Kamailio 4.2 as proxy with nathelper enabled.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Yet , the ACK packet sent from the proxy to the origination’s private IP.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The ACK is sent as reply on the following 200 OK sent from the origination : <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><i>8m2EJN41BN/6WSIP/2.0 200 OK<o:p></o:p></i></p><p class=MsoNormal><i>From: <sip:+4444331234567@X.X.X.X;user=phone>;tag=XQBQNjvjgp4Ze<o:p></o:p></i></p><p class=MsoNormal><i>To: <sip:+905362695933@172.16.45.65;user=phone>;tag=12033368836000<o:p></o:p></i></p><p class=MsoNormal><i>Via: SIP/2.0/UDP  X.X.X.X:5065;branch=z9hG4bK2959.233ecbc5eff949f946d8763ce25e5e6d.0;received=X.X.X.X,SIP/2.0/UDP  X.X.X.X;received=X.X.X.X;rport=5060;branch=z9hG4bKN93cXvv26vDDN<o:p></o:p></i></p><p class=MsoNormal><i>Record-Route: <sip:X.X.X.X:5065;lr;ftag=XQBQNjvjgp4Ze><o:p></o:p></i></p><p class=MsoNormal><i>Call-ID: CbeX8453909200habfGhEfElPce@BC00.XXXXXXXXXXXXXX<o:p></o:p></i></p><p class=MsoNormal><i>CSeq: 125698370 INVITE<o:p></o:p></i></p><p class=MsoNormal><i>Accept: application/sdp<o:p></o:p></i></p><p class=MsoNormal><i>Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,UPDATE<o:p></o:p></i></p><p class=MsoNormal><i>P-Charging-Vector: icid-value=B0912C3D70-0720-09394507;icid-generated-at=BC00.XXXXXXXXXXXXXX.XX;orig-ioi=MXXXXXXXXXXXXXX<o:p></o:p></i></p><p class=MsoNormal><i>Content-Type: application/sdp<o:p></o:p></i></p><p class=MsoNormal><i>Contact: <sip:172.16.45.65:5060;transport=UDP><o:p></o:p></i></p><p class=MsoNormal><i>Content-Length:  268<o:p></o:p></i></p><p class=MsoNormal><i><o:p> </o:p></i></p><p class=MsoNormal><i>v=0<o:p></o:p></i></p><p class=MsoNormal><i>o=- 5838243 5838244 IN IP4 BC00.XXXXXXXXXXXXXX<o:p></o:p></i></p><p class=MsoNormal><i>s=-<o:p></o:p></i></p><p class=MsoNormal><i>c=IN IP4 172.16.45.144<o:p></o:p></i></p><p class=MsoNormal><i>t=0 0<o:p></o:p></i></p><p class=MsoNormal><i>a=sendrecv<o:p></o:p></i></p><p class=MsoNormal><i>m=audio 47588 RTP/AVP 18 96<o:p></o:p></i></p><p class=MsoNormal><i>c=IN IP4 172.16.45.144<o:p></o:p></i></p><p class=MsoNormal><i>a=rtpmap:18 G729/8000<o:p></o:p></i></p><p class=MsoNormal><i>a=fmtp:18 annexb=yes<o:p></o:p></i></p><p class=MsoNormal><i>a=rtpmap:96 telephone-event/8000<o:p></o:p></i></p><p class=MsoNormal><i>a=fmtp:96 0-15<o:p></o:p></i></p><p class=MsoNormal><i>a=maxptime:20<o:p></o:p></i></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Following is the header of the sent ACK packet:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><i>Request-Line: ACK sip:172.16.45.65:5060;transport=UDP SIP/2.0<o:p></o:p></i></p><p class=MsoNormal><i>Record-Route: <sip:X.X.X.X:5065;lr;ftag=XQBQNjvjgp4Ze><o:p></o:p></i></p><p class=MsoNormal><i>Via: SIP/2.0/UDP X.X.X.X:5065;branch=z9hG4bK2959.871535fd341bbe3099d0bf60d6460e18.0<o:p></o:p></i></p><p class=MsoNormal><i>Via: SIP/2.0/UDP X.X.X.X;received=X.X.X.X;rport=5060;branch=z9hG4bKQUpy0jy90etjc<o:p></o:p></i></p><p class=MsoNormal><i>Max-Forwards: 69<o:p></o:p></i></p><p class=MsoNormal><i>From: <sip:+4444331234567@X.X.X.X;user=phone>;tag=XQBQNjvjgp4Ze<o:p></o:p></i></p><p class=MsoNormal><i>To: <sip:+905362695933@172.16.45.65;user=phone>;tag=12033368836000<o:p></o:p></i></p><p class=MsoNormal><i>Call-ID: CbeX8453909200habfGhEfElPce@BC00.XXXXXXXXXXXXXX<o:p></o:p></i></p><p class=MsoNormal><i>CSeq: 125698370 ACK<o:p></o:p></i></p><p class=MsoNormal><i>Content-Length: 0<o:p></o:p></i></p><p class=MsoNormal><i><o:p> </o:p></i></p><p class=MsoNormal>Where X.X.X.X is Kamailio server public IP.<o:p></o:p></p><p class=MsoNormal><i><o:p> </o:p></i></p><p class=MsoNormal>Following is part of my config file :<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>route {<o:p></o:p></p><p class=MsoNormal>route(NATDETECT);<o:p></o:p></p><p class=MsoNormal>record_route();<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>        if(!mf_process_maxfwd_header("10")) {<o:p></o:p></p><p class=MsoNormal>                sl_send_reply("483", "Too Many Hops");<o:p></o:p></p><p class=MsoNormal>                exit;<o:p></o:p></p><p class=MsoNormal>        }<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>        # Maybe some sanity_check() here.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>        if(has_totag()) {<o:p></o:p></p><p class=MsoNormal>       <o:p></o:p></p><p class=MsoNormal>                if(loose_route()) {<o:p></o:p></p><p class=MsoNormal>                route(DLGURI);<o:p></o:p></p><p class=MsoNormal>                        if(!t_relay())<o:p></o:p></p><p class=MsoNormal>                                sl_reply_error();<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>                        exit;<o:p></o:p></p><p class=MsoNormal>                } else {<o:p></o:p></p><p class=MsoNormal>                        if(is_method("ACK")) {<o:p></o:p></p><p class=MsoNormal>                        route(DLGURI);<o:p></o:p></p><p class=MsoNormal>                                if(t_check_trans()) {<o:p></o:p></p><p class=MsoNormal>                                        t_relay();<o:p></o:p></p><p class=MsoNormal>                                }<o:p></o:p></p><p class=MsoNormal>                        } else<o:p></o:p></p><p class=MsoNormal>                                sl_send_reply("403", "Forbidden");<o:p></o:p></p><p class=MsoNormal>                }<o:p></o:p></p><p class=MsoNormal>                exit;<o:p></o:p></p><p class=MsoNormal>        }<o:p></o:p></p><p class=MsoNormal>                                <o:p></o:p></p><p class=MsoNormal>.....<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>                                <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>route[NATDETECT] {<o:p></o:p></p><p class=MsoNormal>#!ifdef WITH_NAT<o:p></o:p></p><p class=MsoNormal>        force_rport();<o:p></o:p></p><p class=MsoNormal>        if (nat_uac_test("19")) {<o:p></o:p></p><p class=MsoNormal>                if (is_method("REGISTER")) {<o:p></o:p></p><p class=MsoNormal>                        fix_nated_register();<o:p></o:p></p><p class=MsoNormal>                } else {<o:p></o:p></p><p class=MsoNormal>                        add_contact_alias();<o:p></o:p></p><p class=MsoNormal>                }<o:p></o:p></p><p class=MsoNormal>                setflag(FLT_NATS);<o:p></o:p></p><p class=MsoNormal>        }<o:p></o:p></p><p class=MsoNormal>#!endif<o:p></o:p></p><p class=MsoNormal>        return;<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>route[DLGURI] {<o:p></o:p></p><p class=MsoNormal>#!ifdef WITH_NAT<o:p></o:p></p><p class=MsoNormal>        if(!isdsturiset()) {<o:p></o:p></p><p class=MsoNormal>         handle_ruri_alias();<o:p></o:p></p><p class=MsoNormal>        }<o:p></o:p></p><p class=MsoNormal>#!endif<o:p></o:p></p><p class=MsoNormal>        return;<o:p></o:p></p><p class=MsoNormal>}                              <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Can you please check why the ACK is still sent on private IP ?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks<o:p></o:p></p><p class=MsoNormal>Ali Taher<o:p></o:p></p></div></body></html>