Browse Source

Merge pull request #33 from 2600hz/KAZOO-2137

KAZOO-2137 pusher-role
3.20
lazedo 11 years ago
parent
commit
7dc2c98dd2
3 changed files with 45 additions and 3 deletions
  1. +8
    -2
      kamailio/default.cfg
  2. +2
    -1
      kamailio/local.cfg
  3. +35
    -0
      kamailio/pusher-role.cfg

+ 8
- 2
kamailio/default.cfg View File

@ -165,8 +165,7 @@ modparam("kazoo", "amqp_max_channels", MY_AMQP_MAX_CHANNELS)
#!else
modparam("kazoo", "amqp_max_channels", 100)
#!endif
modparam("kazoo", "amqp_internal_loop_count", 1);
modparam("kazoo", "amqp_consumer_loop_count", 4);
modparam("kazoo", "amqp_query_timeout_avp", "$avp(kz_timeout)");
####### Role Configurations ##########
#!ifdef DISPATCHER-ROLE
@ -199,6 +198,9 @@ include_file "antiflood-role.cfg"
#!ifdef TRAFFIC-FILTER-ROLE
include_file "traffic-filter-role.cfg"
#!endif
#!ifdef PUSHER-ROLE
include_file "pusher-role.cfg"
#!endif
####### Permissions module ##########
loadmodule "permissions.so"
@ -510,6 +512,10 @@ route[INTERNAL_TO_EXTERNAL_RELAY]
}
#!endif
#!ifdef PUSHER-ROLE
route(INTERNAL_TO_EXTERNAL_PUSH);
#!endif
remove_hf_re("^X-.*");
t_on_reply("EXTERNAL_REPLY");


+ 2
- 1
kamailio/local.cfg View File

@ -18,7 +18,8 @@ debug = L_INFO
# # #!trydef TLS-ROLE
# # #!trydef ANTIFLOOD-ROLE
# # #!trydef MESSAGE-ROLE
# # #!trydef PUSHER-ROLE
################################################################################
## SERVER INFORMATION
################################################################################


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

@ -0,0 +1,35 @@
## PUSHER ROLE
route[INTERNAL_TO_EXTERNAL_PUSH]
{
if (is_method("INVITE") && $hdr(X-KAZOO-PUSHER-Token-ID) != $null)
{
if(!registered("location", "$hdr(X-KAZOO-AOR)")) {
sl_send_reply(180, "waking the dead guy");
$var(TokenID) = $hdr(X-KAZOO-PUSHER-Token-ID);
$var(TokenType) = $hdr(X-KAZOO-PUSHER-Token-Type);
$var(TokenApp) = $hdr(X-KAZOO-PUSHER-Token-App);
$var(rp) = $hdr(Remote-Party-ID);
$var(from) = $(var(rp){tobody.user}) + " - " + $(var(rp){tobody.display}{s.escape.common});
$var(Payload) = '{ "Event-Category" : "notification", "Event-Name" : "push_req", "Call-ID" : "$ci", "Token-ID" : "$var(TokenID)", "Token-Type" : "$var(TokenType)", "Token-App" : "$var(TokenApp)", "Alert-Body" : "$var(from)" }';
$var(RoutingKey) = "notification.push." + $var(TokenType) + "." + $var(TokenID);
$var(exchange) = "pushes";
$avp(kz_timeout) = 20000;
kazoo_query($var(exchange), $var(RoutingKey), $var(Payload));
}
if(registered("location", "$hdr(X-KAZOO-AOR)"))
{
lookup("location", "$hdr(X-KAZOO-AOR)");
xlog("L_INFO", "$ci|end|routing to $ruid");
remove_hf_re("^X-.*");
t_on_reply("EXTERNAL_REPLY");
t_set_fr(0, 10000);
t_relay();
} else {
send_reply(480, "No Answer");
};
exit;
}
}

Loading…
Cancel
Save