Hello guys,
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:

function to check the destination (i tried using $sndto(ip) but it always returns NULL):

route[CHECK_DEST_NET] {
if ( $du=~"sip:172\..*" ) {
setflag(FLAG_TO_PRIVATE);
xlog("L_ERR", "[CHECK_SOURCE] Packet going to PRIVATE -> [$du]\n" );
} else {
setflag(FLAG_TO_PUBLIC);
xlog("L_ERR", "[CHECK_SOURCE] Packet going to PUBLIC -> [$du]\n" );
}

return;
}

on my relay:

route(CHECK_DEST_NET);

if (isflagset(FLAG_TO_PRIVATE)) {
xlog("L_ERR", "[RELAY] forcing socket to PRIVATE NET\n" );
force_send_socket(LISTEN_INSIDE_IF:LISTEN_INSIDE_PORT);
} else {
xlog("L_ERR", "[RELAY] forcing socket to PUBLIC NET\n" );
force_send_socket(LISTEN_OUTSIDE_IF:LISTEN_OUTSIDE_PORT);
}


This works nicely, except for ACKs and potentially other packets sent statelessly?

Anyone knows how to fix this?

Regards,

David Villasmil
phone: +34669448337