<div dir="auto">That's likely because kamailio does not know where the destination endpoint is. You must either share user location information with kamailio or somehow keep track of registered users on kamailio (dual registration or cascade registration or path header if supported by pbx etc.).<div><br></div><div>--</div><div>Muhammad Shahzad Shafi</div><div>Tel: +49 176 99 83 10 85</div><div><br><br><br><br><br><div id="hw_signature">Sent from my phone</div></div></div><div style="line-height:1.5"><br><br>-------- Original message --------<br>From: Алексей Якимкин <ayakimkin@gmail.com><br>Date: Wed, 29 Jun 2022, 11:24<br>To: sr-users@lists.kamailio.org<br>Subject: [SR-Users] Kamailio behind NAT<br><blockquote><div dir="ltr"><div>Hello,</div><div><br /></div><div>I have  kamailio in local network behind NAT. Kamailio have one interface eth1 with ip <font size="2">10.130.0.23</font></div><div><font size="2"><br /></font></div><div><font size="2">UserAgent - (internet) - (<font size="2">178.0.0.169)</font>router_with_NAT - (LAN) - kamailio+rtpproxy - pbx</font></div><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2">I made two listeners:<br />listen=udp:<a href="http://10.130.0.23:5070">10.130.0.23:5070</a> #to pbx in lan (I don`t want to put via header with <font size="2">178.0.0.169</font>)<br />listen=udp:<a href="http://10.130.0.23:5060">10.130.0.23:5060</a> advertise <a href="http://178.0.0.169:5060">178.0.0.169:5060</a> #to internet (UserAgent need to get via header with <font size="2">178.0.0.169</font>  )</font><br /></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2"><br />mhomed = 1 # I think It not useful  for my case<br /></font></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left">UserAgent send Register and Invite to <font size="2"><a href="http://178.0.0.169:5060">178.0.0.169:5060</a>, Kamailio get it on </font><font size="2">udp:<a href="http://10.130.0.23:5060">10.130.0.23:5060</a></font></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2">Kamailio Relay it to   udp:<a href="http://10.130.0.23:5070">10.130.0.23:5070</a> </font><br /></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2">My pbx get requests from  udp:<a href="http://10.130.0.23:5070">10.130.0.23:5070</a> with via header 10.130.0.23</font><br /></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left">Responses to UserAgent go from <font size="2"> udp:<a href="http://10.130.0.23:5060">10.130.0.23:5060</a> with via 178.0.0.169</font> <br /></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2"></font><br /></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2">In  RELAY block:<br />if ($Ru == «udp:10.130.0.23:5070») {<!-- --><br />#set_send_socket(«udp:10.130.0.23:5060»);<br />$fs = «udp:10.130.0.23:5060»;<br />#force_send_socket(«udp:10.130.0.23:5060»);<br />} else {<!-- --><br />#set_send_socket(«udp:10.130.0.23:5070»);<br />$fs = «udp:10.130.0.23:5070»;<br />}<br />#$fs = «udp:10.130.0.23:5070»;<br />if (!t_relay()) {<!-- --><br />sl_reply_error();<br />}</font></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2"></font></p><font size="2"></font><p>route[REGISTRAR] {<!-- --><br /></p><p>        if ($rd == "<a href="http://mydomain.ru">mydomain.ru</a>" || $rd == "<a href="http://mydomain2.ru">mydomain2.ru</a>") {<!-- --></p><p>          set_send_socket("udp:<a href="http://10.130.0.23:5070">10.130.0.23:5070</a>");</p><p>         }<br /></p><p>}<br /></p><p><br /></p><p>It works for requests from UserAgent to PBX. But INVITE from my pbx to UserAgent goes only through <font size="2">udp:<a href="http://10.130.0.23:5070">10.130.0.23:5070</a> ,  Kamailio realy it to internet from <font size="2">udp:<a href="http://10.130.0.23:5070">10.130.0.23:5070</a> </font> </font></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><font size="2">I get error in syslog:  (pv [pv_branch.c:62]: pv_get_branchx_helper(): error accessing branch [0])</font></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left">I tried <font size="2">set_send_socket(«udp:10.130.0.23:5070»); and $fs = «udp:10.130.0.23:5070»;</font></p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left">Why I can`t relay outgoing requests to internet through another socket? </p><p style="background-color:rgb( 255 , 255 , 255 );border:medium none;color:rgb( 0 , 0 , 0 );padding:0px;text-align:left"><br /></p><div>-- <br /><div dir="ltr"><pre style="font-family:'courier' , 'courier new' , monospace;font-size:14px;white-space:pre-wrap;margin:0px;color:rgb( 0 , 0 , 0 );font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb( 255 , 255 , 255 )">Best regards,
Alex</pre></div></div></div>
</blockquote></div>