|
|
## PUSHER ROLE
|
|
|
|
|
|
route[INTERNAL_TO_EXTERNAL_PUSH]
|
|
|
{
|
|
|
if (is_method("INVITE") && $hdr(X-KAZOO-PUSHER-Token-ID) != $null)
|
|
|
{
|
|
|
if(!registered("location")) {
|
|
|
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"))
|
|
|
{
|
|
|
lookup("location");
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|