Browse Source

add NAT_SDP route

4.3
lazedo 7 years ago
committed by Luis Azedo
parent
commit
2a01496f96
1 changed files with 22 additions and 10 deletions
  1. +22
    -10
      kamailio/nat-traversal-role.cfg

+ 22
- 10
kamailio/nat-traversal-role.cfg View File

@ -22,8 +22,28 @@ kazoo.nat_fix_sdp_request = KZ_NAT_FIX_SDP_REQUEST descr "performs request sdp r
kazoo.nat_fix_sdp_reply = KZ_NAT_FIX_SDP_REPLY descr "performs reply sdp replacement of private addresses" kazoo.nat_fix_sdp_reply = KZ_NAT_FIX_SDP_REPLY descr "performs reply sdp replacement of private addresses"
####### NAT Traversal Logic ######## ####### NAT Traversal Logic ########
route[NAT_SDP]
{
if( has_body("application/sdp")) {
if( nat_uac_test(KZ_NAT_SDP_TEST)) {
xlog("L_DEBUG", "$ci|log|applying sdp nat fix\n");
$var(ret) = fix_nated_sdp(KZ_NAT_SDP_FIX);
xlog("L_DEBUG", "$ci|log|result of applying sdp nat fix is $var(ret)\n");
} else if( is_method("INVITE") && !isflagset(FLAG_INTERNALLY_SOURCED) && is_audio_on_hold()) {
xlog("L_DEBUG", "$ci|log|applying sdp nat fix for held channel\n");
$var(ret) = fix_nated_sdp(KZ_NAT_SDP_FIX);
xlog("L_DEBUG", "$ci|log|result of applying sdp nat fix for held channel is $var(ret)\n");
}
}
}
route[NAT_DETECT] route[NAT_DETECT]
{ {
if($sel(cfg_get.kazoo.nat_fix_sdp_request) == 1) {
route(NAT_SDP);
}
if ($Rp == "5080") { if ($Rp == "5080") {
setflag(FLAG_SKIP_NAT_CORRECTION); setflag(FLAG_SKIP_NAT_CORRECTION);
xlog("L_DEBUG", "$ci|log|skipping nat correction on PORT 5080\n"); xlog("L_DEBUG", "$ci|log|skipping nat correction on PORT 5080\n");
@ -61,20 +81,12 @@ route[NAT_DETECT]
} }
} }
if($sel(cfg_get.kazoo.nat_fix_sdp_request) == 1) {
if (has_body("application/sdp") && nat_uac_test(KZ_NAT_SDP_TEST)) {
fix_nated_sdp(KZ_NAT_SDP_FIX);
}
}
} }
route[NAT_MANAGE] route[NAT_MANAGE]
{ {
if(is_reply() && $sel(cfg_get.kazoo.nat_fix_sdp_reply) == 1) {
if (has_body("application/sdp") && nat_uac_test(KZ_NAT_SDP_TEST)) {
fix_nated_sdp(KZ_NAT_SDP_FIX);
}
if( is_reply() && $sel(cfg_get.kazoo.nat_fix_sdp_reply) == 1) {
route(NAT_SDP);
} }
if ( is_request() && isflagset(FLAG_INTERNALLY_SOURCED)) { if ( is_request() && isflagset(FLAG_INTERNALLY_SOURCED)) {


Loading…
Cancel
Save