From 5a625d0217a2fdb49eb33e9979f8d074c1d514ac Mon Sep 17 00:00:00 2001 From: lazedo Date: Thu, 27 Dec 2018 16:27:13 +0000 Subject: [PATCH] allow tracking all presence packages --- kamailio/presence-role.cfg | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/kamailio/presence-role.cfg b/kamailio/presence-role.cfg index 7b75c31..1bfd65e 100644 --- a/kamailio/presence-role.cfg +++ b/kamailio/presence-role.cfg @@ -373,6 +373,17 @@ event_route[kazoo:consumer-event-presence-mwi-update] xlog("L_INFO", "$(kzE{kz.json,Call-ID})|log|publishing $(kzE{kz.json,From}) message-summary update for $xavp(watchers=>message-summary) watchers\n"); kazoo_pua_publish_mwi($kzE); pres_refresh_watchers("$(kzE{kz.json,From})", "message-summary", 1); + } else { +#!ifdef PRESENCE_TRACK_ALL_PKG_MWI + if($(kzE{kz.json,Event-Package}) == "message-summary") { + xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from mwi update => $var(payload)\n"); + if(kazoo_pua_publish_mwi($kzE) != 1) { + xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) mwi update => $var(payload)\n"); + } + } +#!else + xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|skip mwi update for $var(presentity)\n"); +#!endif } route(MWI_AS_PRESENCE); @@ -423,12 +434,34 @@ route[PRESENCE_UPDATE] } else { xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) dialog update\n"); }; + } else { +#!ifdef PRESENCE_TRACK_ALL_PKG_DIALOG + if($(kzE{kz.json,Event-Package}) == "dialog") { + xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from dialog update => $var(payload)\n"); + if(kazoo_pua_publish_dialoginfo($var(JObj)) != 1) { + xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) dialog update => $var(payload)\n"); + } + } +#!else + xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|skip dialog update for $var(presentity)\n"); +#!endif } if($xavp(watchers=>presence) > 0) { xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) presence update for $xavp(watchers=>presence) watchers\n"); kazoo_pua_publish_presence($var(payload)); pres_refresh_watchers("$var(presentity)", "presence", 1); + } else { +#!ifdef PRESENCE_TRACK_ALL_PKG_PRESENCE + if($(kzE{kz.json,Event-Package}) == "presence") { + xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from dialog update => $var(payload)\n"); + if(kazoo_pua_publish_dialoginfo($var(JObj)) != 1) { + xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) dialog update => $var(payload)\n"); + } + } +#!else + xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|skip dialog update for $var(presentity)\n"); +#!endif } }