From 7ecd7d2294eb0f103af05636d3543874515451a4 Mon Sep 17 00:00:00 2001 From: karl anderson Date: Wed, 29 Apr 2015 14:44:27 -0400 Subject: [PATCH] KAZOO-3494: rebase, add a SIP 100 prior to query and remove user channel lookup --- kamailio/acl-role.cfg | 1 + kamailio/dispatcher-role.cfg | 2 +- kamailio/fast-pickup-role.cfg | 23 ++++------------------- kamailio/pusher-role.cfg | 1 + kamailio/rate-limiter-role.cfg | 1 + kamailio/registrar-role.cfg | 1 + 6 files changed, 9 insertions(+), 20 deletions(-) diff --git a/kamailio/acl-role.cfg b/kamailio/acl-role.cfg index d0cbcb4..69bf722 100644 --- a/kamailio/acl-role.cfg +++ b/kamailio/acl-role.cfg @@ -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)"); diff --git a/kamailio/dispatcher-role.cfg b/kamailio/dispatcher-role.cfg index 73d6148..6b22f9c 100644 --- a/kamailio/dispatcher-role.cfg +++ b/kamailio/dispatcher-role.cfg @@ -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) { diff --git a/kamailio/fast-pickup-role.cfg b/kamailio/fast-pickup-role.cfg index eabdb94..968a5bf 100644 --- a/kamailio/fast-pickup-role.cfg +++ b/kamailio/fast-pickup-role.cfg @@ -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); } diff --git a/kamailio/pusher-role.cfg b/kamailio/pusher-role.cfg index 2bd8c61..7134106 100644 --- a/kamailio/pusher-role.cfg +++ b/kamailio/pusher-role.cfg @@ -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)); } diff --git a/kamailio/rate-limiter-role.cfg b/kamailio/rate-limiter-role.cfg index f39a184..a1b11a5 100644 --- a/kamailio/rate-limiter-role.cfg +++ b/kamailio/rate-limiter-role.cfg @@ -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)"); diff --git a/kamailio/registrar-role.cfg b/kamailio/registrar-role.cfg index 741c1c2..b1ffeaf 100644 --- a/kamailio/registrar-role.cfg +++ b/kamailio/registrar-role.cfg @@ -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});