|
|
@ -56,7 +56,7 @@ route[HANDLE_REGISTER] |
|
|
route(ATTEMPT_AUTHORIZATION); |
|
|
route(ATTEMPT_AUTHORIZATION); |
|
|
} else { |
|
|
} else { |
|
|
auth_challenge("$fd", "0"); |
|
|
auth_challenge("$fd", "0"); |
|
|
xlog("L_INFO", "$ci|end|issued auth challenge to new registration for $Au $si:$sp"); |
|
|
|
|
|
|
|
|
xlog("L_INFO", "$ci|end|issued auth challenge to new registration for $fu $si:$sp"); |
|
|
exit; |
|
|
exit; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -64,16 +64,8 @@ route[HANDLE_REGISTER] |
|
|
|
|
|
|
|
|
route[ATTEMPT_AUTHORIZATION] |
|
|
route[ATTEMPT_AUTHORIZATION] |
|
|
{ |
|
|
{ |
|
|
#!ifdef ANTIFLOOD-ROLE |
|
|
|
|
|
if (!route(ANITFLOOD_AUTH_LIMIT)) { |
|
|
|
|
|
xlog("L_WARN", "$ci|log|dropping erroneous endpoint registration for $Au $si:$sp"); |
|
|
|
|
|
drop(); |
|
|
|
|
|
exit; |
|
|
|
|
|
} |
|
|
|
|
|
#!endif |
|
|
|
|
|
|
|
|
|
|
|
if ($sht(auth_cache=>$Au) != $null) { |
|
|
if ($sht(auth_cache=>$Au) != $null) { |
|
|
xlog("L_INFO", "$ci|log|authenticating $Au via cached SIP creds"); |
|
|
|
|
|
|
|
|
xlog("L_INFO", "$ci|log|authenticating $fu via cached SIP creds"); |
|
|
$var(password) = $sht(auth_cache=>$Au); |
|
|
$var(password) = $sht(auth_cache=>$Au); |
|
|
} else { |
|
|
} else { |
|
|
$var(amqp_payload_request) = "{'Event-Category' : 'directory' , 'Event-Name' : 'authn_req', 'Method' : 'REGISTER', 'Auth-Realm' : '" + $fd + "', 'Auth-User' : '" + $fU + "', 'From' : '" + $fu + "', 'To' : '" + $tu +"' }"; |
|
|
$var(amqp_payload_request) = "{'Event-Category' : 'directory' , 'Event-Name' : 'authn_req', 'Method' : 'REGISTER', 'Auth-Realm' : '" + $fd + "', 'Auth-User' : '" + $fU + "', 'From' : '" + $fu + "', 'To' : '" + $tu +"' }"; |
|
|
@ -102,6 +94,10 @@ route[ATTEMPT_AUTHORIZATION] |
|
|
exit; |
|
|
exit; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#!ifdef ANTIFLOOD-ROLE |
|
|
|
|
|
route(ANTIFLOOD_SUCCESSFUL_AUTH); |
|
|
|
|
|
#!endif |
|
|
|
|
|
|
|
|
if ($sht(auth_cache=>$Au) == $null) { |
|
|
if ($sht(auth_cache=>$Au) == $null) { |
|
|
xlog("L_INFO", "$ci|log|caching SIP credentials for $Au"); |
|
|
xlog("L_INFO", "$ci|log|caching SIP credentials for $Au"); |
|
|
$sht(auth_cache=>$Au) = $var(password); |
|
|
$sht(auth_cache=>$Au) = $var(password); |
|
|
@ -120,6 +116,11 @@ route[ATTEMPT_AUTHORIZATION] |
|
|
$var(expires) = REGISTRAR_MIN_EXPIRES; |
|
|
$var(expires) = REGISTRAR_MIN_EXPIRES; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if($var(expires) == 0) { |
|
|
|
|
|
xlog("L_INFO", "$ci|end|unregister request from $Au $si:$sp"); |
|
|
|
|
|
exit; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if($(proto{s.tolower}) == "udp" || $(proto{s.tolower}) == "tcp" || $(proto{s.tolower}) == "tls") { |
|
|
if($(proto{s.tolower}) == "udp" || $(proto{s.tolower}) == "tcp" || $(proto{s.tolower}) == "tls") { |
|
|
$var(return_port) = $Rp; |
|
|
$var(return_port) = $Rp; |
|
|
} else { |
|
|
} else { |
|
|
@ -140,16 +141,11 @@ route[ATTEMPT_AUTHORIZATION] |
|
|
$var(fs_contact) = "<sip:" + $(ct{tobody.user}) + "@" + $si + ":" + $sp + ";transport=" + $proto + ";" + $var(params) + ">"; |
|
|
$var(fs_contact) = "<sip:" + $(ct{tobody.user}) + "@" + $si + ":" + $sp + ";transport=" + $proto + ";" + $var(params) + ">"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if ($avp(AVP_RECV_PARAM) == $null) { |
|
|
|
|
|
$var(fs_contact) = "<" + $(ct{tobody.uri}) + ";" + $var(params) + ">"; |
|
|
|
|
|
} else { |
|
|
|
|
|
$var(fs_contact) = "<sip:" + $(ct{tobody.user}) + "@" + $si + ":" + $sp + ";transport=" + $proto + ";" + $var(params) + ">"; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$var(register_contants) = ' "Presence-Hosts" : "n/a", "Profile-Name" : "sipinterface_1", "Status" : "Registered", "Event-Timestamp" : "' + $TS + '", "Expires" : ' + $var(expires); |
|
|
$var(register_contants) = ' "Presence-Hosts" : "n/a", "Profile-Name" : "sipinterface_1", "Status" : "Registered", "Event-Timestamp" : "' + $TS + '", "Expires" : ' + $var(expires); |
|
|
|
|
|
|
|
|
$var(amqp_payload_request) = '{"Event-Category" : "directory", "Event-Name" : "reg_success", "Contact" : "' + $var(fs_contact) + '", "Call-ID" : "' + $ci + '", "Realm" : "' + $fd + '", "Username" : "' + $fU + '", "From-User" : "' + $fU + '", "From-Host" : "' + $fd + '", "To-User" : "' + $tU + '", "To-Host" : "' + $td + '", "User-Agent" : "' + $ua + '" ,' + $var(register_contants) + ' }'; |
|
|
$var(amqp_payload_request) = '{"Event-Category" : "directory", "Event-Name" : "reg_success", "Contact" : "' + $var(fs_contact) + '", "Call-ID" : "' + $ci + '", "Realm" : "' + $fd + '", "Username" : "' + $fU + '", "From-User" : "' + $fU + '", "From-Host" : "' + $fd + '", "To-User" : "' + $tU + '", "To-Host" : "' + $td + '", "User-Agent" : "' + $ua + '" ,' + $var(register_contants) + ' }'; |
|
|
|
|
|
|
|
|
|
|
|
$var(amqp_routing_key) = "registration.success." + $(fd{kz.encode}) + "." + $fU; |
|
|
|
|
|
|
|
|
kazoo_publish("callmgr", $var(amqp_routing_key), $var(amqp_payload_request)); |
|
|
kazoo_publish("callmgr", $var(amqp_routing_key), $var(amqp_payload_request)); |
|
|
|
|
|
|
|
|
|