<html><head></head><body><div class="ydpdb1d54cayahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">Hey, </span><br style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><br style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">This is my first post here, so I wanted a bit of help. Appreciating that in advance.</span></div></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><br></span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">i have following setup:</span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><br></span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">carrier(asterisk with sip ip=rtp ip=real IP) <==> kamailio+rtpproxy(ext real ip, internal ip) <==> internal asterisk(sip ip != rtp ip, both internal ips).</span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><br></span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">rtprpoxy setup</span></div><div dir="ltr" data-setdir="false"><span>/usr/local/bin/rtpproxy -p /var/run/rtpproxy.pid -u rtpproxy -F -s udp:127.0.0.1 7722 -l kam_int_ip kam_ext_ip -m 10000 -M 20000 -L 30000 -d DBUG LOG</span><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><br></span></div><div dir="ltr" data-setdir="false"><span>kamailio listens on both external and internal ips</span></div><div dir="ltr" data-setdir="false"><span>dispatcher list:</span></div><div dir="ltr" data-setdir="false"><span><br></span></div><div dir="ltr" data-setdir="false"><span>0 towards carrier </span>SOCKET: udp:external_ip</div><div dir="ltr" data-setdir="false"><span>2 towards internal asterisk </span>SOCKET: udp:internal_ip</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">calls being routed with if(src_ip==carrier's real ip) sent to route "from_carrier" and if(src_ip==int_ast_sip_ip) sent to route "to_carrier" </div><div dir="ltr" data-setdir="false">in the routes calls are dispatched with if(!ds_select_dst("0", "4")) and if(!ds_select_dst("2", "4"))</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">rtpproxy_manage is done in "NATMANAGE" route:</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false">#checking if call is from carrier or to carrier:</div><div dir="ltr" data-setdir="false">if(src_ip!=carrier_ext_ip) {</div><div>        if(nat_uac_test("8")) {</div><div>                rtpproxy_manage("coier");</div><div>        } else {</div><div>                rtpproxy_manage("cor");</div><div>        }</div><div>}</div><div>else {</div><div>        rtpproxy_manage("coeir");</div><div dir="ltr" data-setdir="false">}</div></div><div><br></div><div><div dir="ltr" data-setdir="false">so, this setup works, when i setup private IP addresses(from same network) on both carrier side(10.0.1.1) and external interface of kamailio(10.0.1.2) (accordingly changing the dispatcher file, rtpproxy and the kamailio.cfg). as per below:</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">carrier(asterisk with sip ip=rtp ip=10.0.1.1) <==> kamailio+rtpproxy(ext ip=10.0.1.2, internal ip=10.0.2.1) <==> internal asterisk(sip ip != rtp ip, both internal ips).</span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;"><br></span></div><div dir="ltr" data-setdir="false"><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">rtprpoxy setup</span></div><div dir="ltr" data-setdir="false">/usr/local/bin/rtpproxy -p /var/run/rtpproxy.pid -u rtpproxy -F -s udp:127.0.0.1 7722 -l <span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">10.0.2.1 </span><span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">10.0.1.2</span> -m 10000 -M 20000 -L 30000 -d DBUG LOG</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">kamailio listens on both external and internal ips</div><div dir="ltr" data-setdir="false">dispatcher list:</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">0 towards carrier SOCKET: udp:<span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">10.0.1.2</span></div><div dir="ltr" data-setdir="false">2 towards internal asterisk SOCKET: udp:<span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">10.0.2.1</span></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">calls being routed with if(src_ip==<span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">10.0.1.1</span>) sent to route "from_carrier" and if(src_ip==172.16.21.21) sent to route "to_carrier" </div><div dir="ltr" data-setdir="false">in the routes calls are dispatched with if(!ds_select_dst("0", "4")) and if(!ds_select_dst("2", "4"))</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">rtpproxy_manage is done in "NATMANAGE" route:</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false">#checking if call is from carrier or to carrier:</div><div dir="ltr" data-setdir="false">if(src_ip!=<span style="color: rgb(68, 68, 68); font-family: Verdana, Arial, sans-serif; font-size: 14px;">10.0.1.1</span>) {</div><div>        if(nat_uac_test("8")) {</div><div>                rtpproxy_manage("coier");</div><div>        } else {</div><div>                rtpproxy_manage("cor");</div><div>        }</div><div>}</div><div>else {</div><div>        rtpproxy_manage("coeir");</div><div dir="ltr" data-setdir="false">}</div></div><div dir="ltr" data-setdir="false"><br></div><div><div></div></div></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">once i replace the IP addresses of carrier and kamailio with real IPs, kamailio is starting to forward internal asterisk's sip and rtp IP addresses to carrier  and carrier's sip/rtp IPs in the SDP and breaking the SIP flow. </div><div dir="ltr" data-setdir="false">that is  is not the case while private IPs are setup for both external and internal interfaces. in the later case it normally does the bridging and sends correct info in SDP messages.</div></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">can someone help me please to understand why/how it is working correctly for private IPs and "misbehaving" in case of real IPs.</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">thanks,</div><div dir="ltr" data-setdir="false">Art</div></div></body></html>