Browse Source

Merge pull request #32 from 2600hz/KAZOO-3239

KAZOO-3239 send registrar Custom-Channel-Vars for eCallmgr to use
3.20
lazedo 11 years ago
parent
commit
e3ba80ea23
1 changed files with 21 additions and 3 deletions
  1. +21
    -3
      kamailio/registrar-role.cfg

+ 21
- 3
kamailio/registrar-role.cfg View File

@ -38,6 +38,8 @@ loadmodule "registrar.so"
modparam("registrar", "received_avp", "$avp(AVP_RECV_PARAM)") modparam("registrar", "received_avp", "$avp(AVP_RECV_PARAM)")
modparam("registrar", "min_expires", REGISTRAR_MIN_EXPIRES) modparam("registrar", "min_expires", REGISTRAR_MIN_EXPIRES)
modparam("registrar", "max_expires", REGISTRAR_MAX_EXPIRES) modparam("registrar", "max_expires", REGISTRAR_MAX_EXPIRES)
modparam("registrar", "xavp_cfg", "regcfg")
modparam("registrar", "reg_match_flag", 1)
####### Registrar Logic ######## ####### Registrar Logic ########
@ -71,7 +73,10 @@ route[HANDLE_REGISTER]
route[ATTEMPT_AUTHORIZATION] route[ATTEMPT_AUTHORIZATION]
{ {
if ($sht(auth_cache=>$Au) != $null) {
$xavp(regcfg=>match_received) = $su;
$xavp(regcfg[0]=>match_contact) = $(ct{nameaddr.uri});
if ($sht(auth_cache=>$Au) != $null && registered("location", "$rz:$Au", 6) == 1)) {
xlog("L_INFO", "$ci|log|authenticating $fu 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 {
@ -79,6 +84,7 @@ route[ATTEMPT_AUTHORIZATION]
$var(amqp_routing_key) = "authn.req." + $(fd{kz.encode}); $var(amqp_routing_key) = "authn.req." + $(fd{kz.encode});
if(kazoo_query("callmgr", $var(amqp_routing_key), $var(amqp_payload_request))) { if(kazoo_query("callmgr", $var(amqp_routing_key), $var(amqp_payload_request))) {
$var(password) = $(kzR{kz.json,Auth-Password}); $var(password) = $(kzR{kz.json,Auth-Password});
$xavp(ulattrs=>custom_channel_vars) = $(kzR{kz.json,Custom-Channel-Vars});
xlog("L_INFO", "$ci|log|authenticating $Au via Kazoo query response"); xlog("L_INFO", "$ci|log|authenticating $Au via Kazoo query response");
} else { } else {
xlog("L_INFO", "$ci|log|failed to query Kazoo for authentication credentials for $Au $si:$sp"); xlog("L_INFO", "$ci|log|failed to query Kazoo for authentication credentials for $Au $si:$sp");
@ -112,7 +118,19 @@ route[ATTEMPT_AUTHORIZATION]
# user authenticated - remove auth header # user authenticated - remove auth header
consume_credentials(); consume_credentials();
save("location");
$var(save_result) = save("location", "0x04");
if($var(save_result) == -1) {
auth_challenge("$fd", "0");
xlog("L_INFO", "$ci|end|issued auth challenge after failed attempt to save contact for $Au $si:$sp");
exit;
} else {
if($var(save_result) == 1) {
$var(new_reg) = "true";
} else {
$var(new_reg) = "false";
}
}
if(@contact.expires) { if(@contact.expires) {
$var(expires) = @contact.expires; $var(expires) = @contact.expires;
@ -151,7 +169,7 @@ route[ATTEMPT_AUTHORIZATION]
$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", "First-Registration" : $var(new_reg), "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" , "Custom-Channel-Vars" : $xavp(ulattrs=>custom_channel_vars), $var(register_contants) }';
$var(amqp_routing_key) = "registration.success." + $(fd{kz.encode}) + "." + $(fU{kz.encode}); $var(amqp_routing_key) = "registration.success." + $(fd{kz.encode}) + "." + $(fU{kz.encode});


Loading…
Cancel
Save