Browse Source

decouple nat port/contact tests

4.3
lazedo 7 years ago
committed by Luis Azedo
parent
commit
b71fcb0ba9
3 changed files with 13 additions and 9 deletions
  1. +0
    -4
      kamailio/defs.cfg
  2. +3
    -4
      kamailio/local.cfg
  3. +10
    -1
      kamailio/nat-traversal-role.cfg

+ 0
- 4
kamailio/defs.cfg View File

@ -54,10 +54,6 @@
#!trydef KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE 0 #!trydef KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE 0
#!trydef KZ_PRESENCE_REQUEST_PROBE 1 #!trydef KZ_PRESENCE_REQUEST_PROBE 1
#!ifndef NAT_UAC_TEST_LEVEL
#!substdef "!NAT_UAC_TEST_LEVEL!3!g"
#!endif
#!trydef RR_FULL_LR 1 #!trydef RR_FULL_LR 1
#!trydef RR_DOUBLE_RR 1 #!trydef RR_DOUBLE_RR 1
#!trydef RR_FORCE_SOCKET 1 #!trydef RR_FORCE_SOCKET 1


+ 3
- 4
kamailio/local.cfg View File

@ -111,10 +111,9 @@
## NAT ## NAT
################################################################################ ################################################################################
## These parameters are OPTIONAL. ## These parameters are OPTIONAL.
## It allows overriding the nat_uac_test with a different value than "3"
## (default) as it is proven that it fixes the issue reported here:
## https://lists.kamailio.org/pipermail/sr-users/2016-August/094211.html
# # #!substdef "!NAT_UAC_TEST_LEVEL!1!g"
## It allows overriding the nat_uac_test for port / contact with different values
# # #!trydef KZ_NAT_CONTACT_DETECT "1"
# # #!trydef KZ_NAT_PORT_DETECT "2"
################################################################################ ################################################################################
## SIP traffic mirroring to SIP_TRACE server ## SIP traffic mirroring to SIP_TRACE server


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

@ -6,6 +6,9 @@ loadmodule "nathelper.so"
modparam("nathelper", "received_avp", "$avp(AVP_RECV_PARAM)") modparam("nathelper", "received_avp", "$avp(AVP_RECV_PARAM)")
modparam("nathelper", "sipping_from", "sip:sipcheck@MY_HOSTNAME") modparam("nathelper", "sipping_from", "sip:sipcheck@MY_HOSTNAME")
#!trydef KZ_NAT_CONTACT_DETECT "1"
#!trydef KZ_NAT_PORT_DETECT "2"
####### NAT Traversal Logic ######## ####### NAT Traversal Logic ########
route[NAT_TEST_AND_CORRECT] route[NAT_TEST_AND_CORRECT]
{ {
@ -20,6 +23,7 @@ route[NAT_TEST_AND_CORRECT]
$var(i) = $var(i) + 1; $var(i) = $var(i) + 1;
if (!is_myself("$(var(rr){nameaddr.uri})")) { if (!is_myself("$(var(rr){nameaddr.uri})")) {
setflag(FLAG_SKIP_NAT_CORRECTION); setflag(FLAG_SKIP_NAT_CORRECTION);
xlog("L_DEBUG", "$ci|log|skipping nat correction on record-route $(var(rr){nameaddr.uri})\n");
} }
$var(rr_idx) = $var(rr_idx) + 1; $var(rr_idx) = $var(rr_idx) + 1;
$var(rr) = $(var(rr_base){s.select,$var(rr_idx),,}); $var(rr) = $(var(rr_base){s.select,$var(rr_idx),,});
@ -33,8 +37,13 @@ route[NAT_TEST_AND_CORRECT]
return(); return();
} }
if (nat_uac_test("NAT_UAC_TEST_LEVEL")) {
if (nat_uac_test(KZ_NAT_PORT_DETECT)) {
xlog("L_DEBUG", "$ci|nat|forcing rport\n");
force_rport(); force_rport();
}
if (nat_uac_test(KZ_NAT_CONTACT_DETECT)) {
xlog("L_DEBUG", "$ci|nat|contact correction\n");
fix_nated_contact(); fix_nated_contact();
} }


Loading…
Cancel
Save