<div dir="ltr"><div dir="ltr"><div dir="ltr">Hello guys,<div>I have public and private IPs, and i need to force the sending socket replying to internal out externals endpoint, so i'm using this:</div><div><br></div><div>function to check the destination (i tried using $sndto(ip) but it always returns NULL):</div><div><font face="monospace, monospace" size="1"><br></font></div><div><div><font face="monospace, monospace" size="1">route[CHECK_DEST_NET] {</font></div><div><span style="font-family:monospace,monospace;font-size:x-small;white-space:pre">       </span><span style="font-family:monospace,monospace;font-size:x-small">if ( $du=~"sip:172\..*" ) {</span><br></div><div><span style="font-family:monospace,monospace;font-size:x-small;white-space:pre">                </span><span style="font-family:monospace,monospace;font-size:x-small">setflag(FLAG_TO_PRIVATE);</span><br></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">         </span>xlog("L_ERR", "[CHECK_SOURCE] Packet going to PRIVATE -> [$du]\n" );</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre"> </span>} else {</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">            </span>setflag(FLAG_TO_PUBLIC);</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">            </span>xlog("L_ERR", "[CHECK_SOURCE] Packet going to PUBLIC -> [$du]\n" );</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">  </span>}</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">        </span>return;</font></div><div><font face="monospace, monospace" size="1">}</font></div></div><div><br></div><div>on my relay:</div><div><br></div><div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">       </span>route(CHECK_DEST_NET);</font></div><div><font face="monospace, monospace" size="1"><br></font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">   </span>if (isflagset(FLAG_TO_PRIVATE)) {</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">           </span>xlog("L_ERR", "[RELAY] forcing socket to PRIVATE NET\n" );</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">              </span>force_send_socket(LISTEN_INSIDE_IF:LISTEN_INSIDE_PORT);</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">     </span>} else {</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">            </span>xlog("L_ERR", "[RELAY] forcing socket to PUBLIC NET\n" );</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">               </span>force_send_socket(LISTEN_OUTSIDE_IF:LISTEN_OUTSIDE_PORT);</font></div><div><font face="monospace, monospace" size="1"><span style="white-space:pre">   </span>}</font></div></div><div><br></div><div><br></div><div>This works nicely, except for ACKs and potentially other packets sent statelessly?</div><div><br></div><div>Anyone knows how to fix this?</div><div><br clear="all"><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,</div><div><br></div>David Villasmil<div>email: <a href="mailto:david.villasmil.work@gmail.com" target="_blank">david.villasmil.work@gmail.com</a></div><div>phone: +34669448337</div></div></div></div></div></div></div></div>