| @ -0,0 +1,36 @@ | |||||
| ## 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(kazoo=>timeout) = 20000; | |||||
| kazoo_query($var(exchange), $var(RoutingKey), $var(Payload)); | |||||
| } | |||||
| if ( registered("location")) | |||||
| { | |||||
| lookup("location", "sip:$hdr(X-KAZOO-AOR)"); | |||||
| xlog("L_INFO", "$ci|end|routing to $ruid : AOR : $hdr(X-KAZOO-AOR)"); | |||||
| remove_hf_re("^X-.*"); | |||||
| t_on_reply("EXTERNAL_REPLY"); | |||||
| t_set_fr(0, 10000); | |||||
| t_relay(); | |||||
| } else { | |||||
| t_reply(487, "Temporarely unavailable"); | |||||
| }; | |||||
| exit; | |||||
| } | |||||
| } | |||||