From 4f79e38d4da3571887cb0efdc2c1b96ba0590986 Mon Sep 17 00:00:00 2001 From: lazedo Date: Fri, 28 Apr 2017 19:39:01 +0100 Subject: [PATCH] presence reset handling --- kamailio/presence-reset.cfg | 41 +++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/kamailio/presence-reset.cfg b/kamailio/presence-reset.cfg index f3e0ec3..783e0aa 100644 --- a/kamailio/presence-reset.cfg +++ b/kamailio/presence-reset.cfg @@ -11,15 +11,26 @@ route[PRESENCE_RESET_BINDINGS] } - -route[RESET_ZONE] +route[RESET_ALL] { - xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for this zone\n"); sql_query("exec", "delete from presentity"); $var(presentities) = $sqlrows(exec); xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|removed $var(presentities) presentities\n"); } +route[RESET_ZONE] +{ + xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for this zone (MY_AMQP_ZONE)\n"); + route(RESET_ALL); +} + + +route[RESET_SERVER] +{ + xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for this server (MY_HOSTNAME)\n"); + route(RESET_ALL); +} + route[RESET_ACCOUNT] { xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for realm $(kzE{kz.json,Realm})\n"); @@ -32,15 +43,23 @@ route[RESET_ACCOUNT] route[RESET_WILDCARD] { - if($(kzE{kz.json,Realm}) == "*") { - if($(kzE{kz.json,Username}) == "MY_AMQP_ZONE") { - route(RESET_ZONE); - } else { - xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for zone $(kzE{kz.json,Username}). 'MY_AMQP_ZONE' doesn't care\n"); - } - exit(); + if($(kzE{kz.json,Realm}) == "*" && $(kzE{kz.json,Username}) == "*") { + xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for cluster\n"); + route(RESET_ALL); } else { - route(RESET_ACCOUNT); + if($(kzE{kz.json,Realm}) == "*") { + if($(kzE{kz.json,Username}) == "MY_AMQP_ZONE") { + route(RESET_ZONE); + } else { + if($(kzE{kz.json,Username}) == "MY_HOSTNAME") { + route(RESET_SERVER); + } else { + xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence wildcard reset for $(kzE{kz.json,Username}). 'MY_AMQP_ZONE/MY_HOSTNAME' doesn't care\n"); + } + } + } else { + route(RESET_ACCOUNT); + } } }