From 3e5b6dc898dc3093ab4f27f223788b695a99179a Mon Sep 17 00:00:00 2001 From: lazedo Date: Tue, 11 Jun 2019 16:08:33 +0000 Subject: [PATCH] add federation and simplify reply handling --- kamailio/message-role.cfg | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/kamailio/message-role.cfg b/kamailio/message-role.cfg index 7b08b34..349073b 100644 --- a/kamailio/message-role.cfg +++ b/kamailio/message-role.cfg @@ -80,37 +80,26 @@ route[MESSAGE_ROUTE] onreply_route[MESSAGE_REPLY] { - $var(Payload) = $_s({ "Event-Category" : "message", "Event-Name" : "delivery", "Call-ID" : "$ci", "Message-ID" : "$avp(message_id)" , "Delivery-Result-Code" : "sip:$T_reply_code", "Msg-ID" : "$avp(msg_id)" , "Status" : "Success"}); - - $var(RoutingKey) = $avp(server_id); - $var(exchange) = "targeted"; - if($var(RoutingKey) == "") { - $var(exchange) = "sms"; - $var(RoutingKey) = "message.delivery." + $(ci{kz.encode}); + if($avp(server_id) == "") { + xlog("L_INFO", "$ci|log|sending success delivery message to $avp(server_id)\n"); + $var(Payload) = $_s({"Event-Category" : "message", "Event-Name" : "delivery", "Call-ID" : "$ci", "Message-ID" : "$avp(message_id)" , "Delivery-Result-Code" : "sip:$T_reply_code", "Msg-ID" : "$avp(msg_id)" , "Status" : "Success"}); + kazoo_publish("targeted", "$avp(server_id)", $var(Payload)); } - xlog("L_INFO", "$ci|log|sending delivery message\n"); - kazoo_publish($var(exchange), $var(RoutingKey), $var(Payload)); } failure_route[MESSAGE_FAULT] { - - $var(Payload) = $_s({ "Event-Category" : "message", "Event-Name" : "delivery", "Call-ID" : "$ci", "Message-ID" : "$avp(message_id)" , "Delivery-Result-Code" : "sip:$T_reply_code", "Msg-ID" : "$avp(msg_id)" , "Status" : "Failure"}); - - $var(RoutingKey) = $avp(server_id); - $var(exchange) = "targeted"; - if($var(RoutingKey) == "") { - $var(exchange) = "sms"; - $var(RoutingKey) = "message.delivery." + $(ci{kz.encode}); + if($avp(server_id) != "") { + xlog("L_INFO", "$ci|log|sending failure delivery message to $avp(server_id)\n"); + $var(Payload) = $_s({"Event-Category" : "message", "Event-Name" : "delivery", "Call-ID" : "$ci", "Message-ID" : "$avp(message_id)" , "Delivery-Result-Code" : "sip:$T_reply_code", "Msg-ID" : "$avp(msg_id)" , "Status" : "Failure"}); + kazoo_publish("targeted", "$avp(server_id)", $var(Payload)); } - xlog("L_INFO", "$ci|log|sending delivery message\n"); - kazoo_publish($var(exchange), $var(RoutingKey), $var(Payload)); } route[MESSAGE_BINDINGS] { $var(key) = "kamailio@MY_HOSTNAME"; - $var(payload) = $_s({"name": "sms", "exchange": "sms", "type": "topic", "queue": "MSG-QUEUE-MY_HOSTNAME", "routing": "message.route.$(var(key){kz.encode}).*", "no_ack": false }); + $var(payload) = $_s({"name": "sms", "exchange": "sms", "type": "topic", "queue": "MSG-QUEUE-MY_HOSTNAME", "routing": "message.route.$(var(key){kz.encode}).*", "no_ack": false, "federate": true }); kazoo_subscribe("$var(payload)"); }