diff --git a/kamailio/nat-traversal-role.cfg b/kamailio/nat-traversal-role.cfg index 7ee40d0..6d12da2 100644 --- a/kamailio/nat-traversal-role.cfg +++ b/kamailio/nat-traversal-role.cfg @@ -15,13 +15,15 @@ modparam("nathelper", "sipping_from", "sip:registrar@MY_HOSTNAME") #!trydef KZ_NAT_FIX_SDP_REQUEST 1 #!trydef KZ_NAT_FIX_SDP_REPLY 1 #!trydef KZ_NAT_FIX_INTERNAL_SDP_REPLY 0 +#!trydef KZ_NAT_FIX_INTERNAL_SDP_REQUEST 0 #!trydef KZ_NAT_SDP_TEST 8 #!trydef KZ_NAT_SDP_FIX 10 kazoo.nat_fix_sdp_request = KZ_NAT_FIX_SDP_REQUEST descr "performs request sdp replacement of private addresses" kazoo.nat_fix_sdp_reply = KZ_NAT_FIX_SDP_REPLY descr "performs reply sdp replacement of private addresses" -kazoo.nat_fix_internal_sdp_reply = KZ_NAT_FIX_INTERNAL_SDP_REPLY descr "performs reply sdp replacement of private addresses" +kazoo.nat_fix_internal_sdp_request = KZ_NAT_FIX_INTERNAL_SDP_REQUEST descr "performs internal request sdp replacement of private addresses" +kazoo.nat_fix_internal_sdp_reply = KZ_NAT_FIX_INTERNAL_SDP_REPLY descr "performs internal reply sdp replacement of private addresses" ####### NAT Traversal Logic ######## route[NAT_SDP] @@ -41,8 +43,19 @@ route[NAT_SDP] route[NAT_DETECT] { - if($sel(cfg_get.kazoo.nat_fix_sdp_request) == 1) { - route(NAT_SDP); + + if(isflagset(FLAG_INTERNALLY_SOURCED)) { + if(is_request() && $sel(cfg_get.kazoo.nat_fix_internal_sdp_request) == 1) { + if(!sdp_with_ice()) { + route(NAT_SDP); + } + } + } else { + if(is_request() && $sel(cfg_get.kazoo.nat_fix_sdp_request) == 1) { + if(!sdp_with_ice()) { + route(NAT_SDP); + } + } } if ($Rp == "5080") {