Browse Source

KAZOO-3494: rebase, add a SIP 100 prior to query and remove user channel lookup

3.20
karl anderson 11 years ago
parent
commit
7ecd7d2294
6 changed files with 9 additions and 20 deletions
  1. +1
    -0
      kamailio/acl-role.cfg
  2. +1
    -1
      kamailio/dispatcher-role.cfg
  3. +4
    -19
      kamailio/fast-pickup-role.cfg
  4. +1
    -0
      kamailio/pusher-role.cfg
  5. +1
    -0
      kamailio/rate-limiter-role.cfg
  6. +1
    -0
      kamailio/registrar-role.cfg

+ 1
- 0
kamailio/acl-role.cfg View File

@ -82,6 +82,7 @@ route[ACL_CHECK] {
else
$var(query) = "{'Event-Category': 'acl', 'Event-Name': 'query', 'Entity': '" + $var(realm) + "'}";
xlog("L_DBG", "$ci|ACL log|Query: $var(query)");
sl_send_reply("100", "Attempting Kazoo query");
if (kazoo_query("frontier", "sbc_config", $var(query), "$var(acl-response)")) {
xlog("L_DBG", "$ci|ACL log|Response: $var(acl-response)");


+ 1
- 1
kamailio/dispatcher-role.cfg View File

@ -69,7 +69,7 @@ route[DISPATCHER_FIND_ROUTES]
#!endif
#!ifdef FAST_PICKUP-ROLE
route(ATTEMPT_FAST_PICKUP);
route(FAST_PICKUP_ATTEMPT);
#!endif
if (!ds_select_dst("$var(ds_group)", "0") || $(avp(ds_dst)[0]) == $null) {


+ 4
- 19
kamailio/fast-pickup-role.cfg View File

@ -2,7 +2,7 @@
modparam("htable", "htable", "park=>size=4;autoexpire=600")
modparam("htable", "htable", "fp=>size=32;autoexpire=3600;");
route[ATTEMPT_FAST_PICKUP]
route[FAST_PICKUP_ATTEMPT]
{
if (!is_method("INVITE")) {
return;
@ -34,6 +34,7 @@ route[ATTEMPT_FAST_PICKUP]
xlog("L_INFO", "$ci|log|replaces call-id $var(replaced_call_id)");
$var(amqp_payload_request) = '{"Event-Category" : "call_event" , "Event-Name" : "channel_status_req", "Call-ID" : "' + $var(replaced_call_id) + '", "Active-Only" : true }';
$var(amqp_routing_key) = "call.status_req." + $(var(replaced_call_id){kz.encode});
sl_send_reply("100", "Attempting Kazoo query");
if(kazoo_query("callevt", $var(amqp_routing_key), $var(amqp_payload_request))) {
$du = $(kzR{kz.json,Switch-URL});
if($du != $null) {
@ -55,22 +56,6 @@ route[ATTEMPT_FAST_PICKUP]
route(EXTERNAL_TO_INTERNAL_RELAY);
exit();
}
##### CALL-PARK IN KAZOO ####
if($(ru{uri.user}) =~ "\*3" && !($rd =~ "[0-9]{1,3}\.[0-9]{1,3}.[0-9]{1,3}\.[0-9]{1,3}") ) {
xlog("L_INFO", "$ci|log|checking park request to $(ru{uri.user})@$(ru{uri.domain})");
$var(amqp_payload_request) = '{"Event-Category" : "call_event" , "Event-Name" : "query_user_channels_req", "Username" : "$(ru{uri.user})", "Realm" : "$(ru{uri.domain})", "Active-Only" : true }';
$var(amqp_routing_key) = "call.status_req." + $(var(replaced_call_id){kz.encode});
if(kazoo_query("callevt", $var(amqp_routing_key), $var(amqp_payload_request))) {
$du = $(kzR{kz.json,Channels[0].switch_url});
if($du != $null) {
xlog("L_INFO", "$ci|log|redirecting park request to $du, courtesy of kazoo");
route(EXTERNAL_TO_INTERNAL_RELAY);
exit();
}
}
}
}
route[FAST_PICKUP_REFER]
@ -89,8 +74,8 @@ route[FAST_PICKUP_REPLY] {
return;
}
$var(contact) = "sip:$(ct{tobody.uri}{uri.host}):$(ct{tobody.uri}{uri.port})";
xlog("L_INFO", "caching park info $(avp(refer_to_uri){uri.user})@$(avp(refer_to_uri){uri.domain}) = $var(contact)");
$var(contact) = "sip:" + $(ct{tobody.uri}{uri.host}) + ":" + $(ct{tobody.uri}{uri.port});
xlog("L_INFO", "$ci|log|caching park info $(avp(refer_to_uri){uri.user})@$(avp(refer_to_uri){uri.domain}) = $var(contact)");
$sht(park=>$(avp(refer_to_uri){uri.user})@$(avp(refer_to_uri){uri.domain})) = $var(contact);
}


+ 1
- 0
kamailio/pusher-role.cfg View File

@ -15,6 +15,7 @@ route[INTERNAL_TO_EXTERNAL_PUSH]
$var(RoutingKey) = "notification.push." + $var(TokenType) + "." + $var(TokenID);
$var(exchange) = "pushes";
$avp(kz_timeout) = 20000;
sl_send_reply("100", "Attempting Kazoo query");
kazoo_query($var(exchange), $var(RoutingKey), $var(Payload));
}


+ 1
- 0
kamailio/rate-limiter-role.cfg View File

@ -105,6 +105,7 @@ route[DOS_PREVENTION] {
avp_printf("$avp(s:query-request)", "{\"Entity\" : \"$var(entity)\", \"$var(method-key)\" : $var(method-value), \"Event-Category\" : \"rate_limit\", \"Event-Name\" : \"query\", \"With-Realm\" : $var(with-realm-request)}");
xlog("L_INFO", "$ci|RL log| Query: $avp(s:query-request)");
sl_send_reply("100", "Attempting Kazoo query");
if (kazoo_query("frontier", "sbc_config", $avp(s:query-request), "$var(amqp_result)")) {
xlog("L_INFO", "$ci|RL log| Response: $var(amqp_result)");


+ 1
- 0
kamailio/registrar-role.cfg View File

@ -82,6 +82,7 @@ route[ATTEMPT_AUTHORIZATION]
} 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_routing_key) = "authn.req." + $(fd{kz.encode});
sl_send_reply("100", "Attempting Kazoo query");
if(kazoo_query("callmgr", $var(amqp_routing_key), $var(amqp_payload_request))) {
$var(password) = $(kzR{kz.json,Auth-Password});
$xavp(ulattrs=>custom_channel_vars) = $(kzR{kz.json,Custom-Channel-Vars});


Loading…
Cancel
Save