|
|
|
@ -48,27 +48,9 @@ route[PRESENCE_NAT] |
|
|
|
{ |
|
|
|
if (client_nat_test("3")) { |
|
|
|
fix_contact(); |
|
|
|
nat_keepalive(); |
|
|
|
force_rport(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
route[PRESENCE_CHECK_NAT] |
|
|
|
{ |
|
|
|
#!ifdef REGISTRAR_ROLE |
|
|
|
$xavp(regcfg=>match_received) = $su; |
|
|
|
xlog("L_INFO", "$ci|check|checking if $fU is registered\n"); |
|
|
|
if(registered("location", "$rz:$fU", 2, 1)) { |
|
|
|
## is registered, keep alive handled in registrar |
|
|
|
route(NAT_TEST_AND_CORRECT); |
|
|
|
return; |
|
|
|
} else { |
|
|
|
route(PRESENCE_NAT); |
|
|
|
} |
|
|
|
#!else |
|
|
|
route(PRESENCE_NAT); |
|
|
|
#!endif |
|
|
|
|
|
|
|
nat_keepalive(); |
|
|
|
force_rport(); |
|
|
|
} |
|
|
|
|
|
|
|
####### Presence Logic ######## |
|
|
|
@ -77,7 +59,7 @@ route[HANDLE_SUBSCRIBE] |
|
|
|
if (is_method("SUBSCRIBE")) { |
|
|
|
|
|
|
|
#!ifdef NAT_TRAVERSAL_ROLE |
|
|
|
route(PRESENCE_CHECK_NAT); |
|
|
|
route(PRESENCE_NAT); |
|
|
|
#!endif |
|
|
|
|
|
|
|
if ($tU == $null) { |
|
|
|
|