|
|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
|