<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: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 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Sprechblasentext Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.SprechblasentextZchn
        {mso-style-name:"Sprechblasentext Zchn";
        mso-style-priority:99;
        mso-style-link:Sprechblasentext;
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
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=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello everybody,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=EN-US>we have got a problem with sdp-nat on retries of a 200 OK packet. Due to slow response of our trunk the 200 ok is resend (up to 3 times) but sdp-nat is only done on the first two packets. We are running Kamailio 4.1.0 with the following setup:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Trunk  --> NAT --> Kamailio --> Voip Bridge<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>The rtp stream from the trunk (public ip) is supposed to go to one of our media gateways (behind 1:1 nat). We use sdp_mangle_ip to replace the private IPs of our Mediagateway with the public ones. This goes well with the first 200 OK packet but not with a retry.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>A.A.A.A (public trunk media IP)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>B.B.B.B (our public media IP – 1:1 natted to I.I.I.I)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>INVITE Trunk --> Kamailio <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Connection Information (c): IN IP4 A.A.A.A<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>INVITE                  Kamailio --> Voip Bridge<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                               Connection Information (c): IN IP4 A.A.A.A<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>200 OK                  Kamailio <--       Voip Bridge<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                                Connection Information (c): IN IP4 I.I.I.I<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>200 OK Trunk <-- Kamailio <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Connection Information (c): IN IP4 B.B.B.B<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>200 OK                  Kamailio <--       Voip Bridge<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                                Connection Information (c): IN IP4 I.I.I.I<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>200 OK Trunk <-- Kamailio <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Connection Information (c): IN IP4 I.I.I.I<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>ACK Trunk --> Kamailio --> Voip Bridge<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                               <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Our configuration used is the following:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>route[RELAY] {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        xlog("L_INFO"," In route Block RELAY \n");<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        # enable additional event routes for forwarded requests<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        if (is_method("INVITE|SUBSCRIBE|UPDATE")) {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>        if (!t_relay()) {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                xlog("L_NOTICE", " (ROUTE_RELAY) Relay failed, sending error \n");<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                sl_reply_error();<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        exit;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>onreply_route[MANAGE_REPLY] {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        xlog("L_INFO"," In route Block MANAGE_REPLY \n");<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        if ( isflagset(20) ) { -- we have to do nat<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                route(SDP_NAT);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                force_send_socket(KAMAILIO_TO_TRUNK_IP);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        } else {<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>                force_send_socket(KAMAILIO_TO_BRIDGE_IP);<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>        }<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>How can we handle the 200 OK retry? Is there a way to do this?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:DE'>Kind regards<br><br>Timo Klecker <o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:DE'><br><br></span><span style='mso-fareast-language:DE'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>