|
|
@ -687,7 +687,7 @@ route[INTERNAL_TO_EXTERNAL_RELAY] |
|
|
#!endif |
|
|
#!endif |
|
|
|
|
|
|
|
|
#!ifdef REGISTRAR_ROLE |
|
|
#!ifdef REGISTRAR_ROLE |
|
|
route(REGISTRAR_ROUTE_TO_AOR); |
|
|
|
|
|
|
|
|
route(ROUTE_TO_AOR); |
|
|
#!endif |
|
|
#!endif |
|
|
|
|
|
|
|
|
remove_hf_re("^X-.*"); |
|
|
remove_hf_re("^X-.*"); |
|
|
@ -895,6 +895,35 @@ onsend_route { |
|
|
xlog("L_INFO", "$ci|pass|$sndfrom(ip):$sndfrom(port) -> $sndto(ip):$sndto(port)\n"); |
|
|
xlog("L_INFO", "$ci|pass|$sndfrom(ip):$sndfrom(port) -> $sndto(ip):$sndto(port)\n"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
route[ROUTE_TO_AOR] |
|
|
|
|
|
{ |
|
|
|
|
|
if ($hdr(X-KAZOO-AOR) == $null) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
xlog("L_INFO", "$ci|log|using AOR $hdr(X-KAZOO-AOR)\n"); |
|
|
|
|
|
if ($hdr(X-KAZOO-INVITE-FORMAT) == "contact") { |
|
|
|
|
|
if(lookup("location", "$hdr(X-KAZOO-AOR)") > 0){ |
|
|
|
|
|
xlog("L_INFO", "$ci|end|routing to contact $ru\n"); |
|
|
|
|
|
handle_ruri_alias(); |
|
|
|
|
|
} else { |
|
|
|
|
|
xlog("L_INFO", "$ci|end|lookup for AOR $hdr(X-KAZOO-AOR) failed\n"); |
|
|
|
|
|
sl_send_reply("410", "Not registered"); |
|
|
|
|
|
exit; |
|
|
|
|
|
} |
|
|
|
|
|
} else if (reg_fetch_contacts("location", "$hdr(X-KAZOO-AOR)", "callee")) { |
|
|
|
|
|
$du = $(ulc(callee=>received)); |
|
|
|
|
|
$fs = $(ulc(callee=>socket)); |
|
|
|
|
|
xlog("L_INFO", "$ci|log|routing $hdr(X-KAZOO-AOR) to $du via $fs\n"); |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
xlog("L_INFO", "$ci|end|user is not registered\n"); |
|
|
|
|
|
sl_send_reply("410", "Not registered"); |
|
|
|
|
|
exit; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#!ifdef REGISTRAR_ROLE |
|
|
#!ifdef REGISTRAR_ROLE |
|
|
|
|
|
|
|
|
#!ifdef WITH_AUTH_TOKEN |
|
|
#!ifdef WITH_AUTH_TOKEN |
|
|
|