@ -11,6 +11,7 @@
#!trydef KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE 0
#!trydef KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE 0
#!trydef KZ_PRESENCE_REQUEST_PROBE 1
#!trydef KZ_PRESENCE_REQUEST_PROBE 1
#!trydef KZ_PRESENCE_NO_TARGETS_LOG_LEVEL L_DBG
#!trydef KZ_PRESENCE_NO_TARGETS_LOG_LEVEL L_DBG
#!trydef KZ_PRESENCE_WITH_TARGETS_LOG_LEVEL L_INFO
#!trydef KZ_PRESENCE_REQUIRE_AUTHN 0
#!trydef KZ_PRESENCE_REQUIRE_AUTHN 0
modparam("htable", "htable", "first = >size=32;autoexpire=3600;initval=0;")
modparam("htable", "htable", "first = >size=32;autoexpire=3600;initval=0;")
@ -59,6 +60,7 @@ kazoo.presence_request_resubscribe_probe = KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE
kazoo.presence_ignore_status_probe_resp = KZ_PRESENCE_IGNORE_STATUS_PROBE_RESP descr "ignore online/offline probe replies"
kazoo.presence_ignore_status_probe_resp = KZ_PRESENCE_IGNORE_STATUS_PROBE_RESP descr "ignore online/offline probe replies"
kazoo.presence_max_call_per_presentity = KZ_PRESENCE_MAX_CALL_PER_PRESENTITY descr "max number of calls per presentity"
kazoo.presence_max_call_per_presentity = KZ_PRESENCE_MAX_CALL_PER_PRESENTITY descr "max number of calls per presentity"
kazoo.presence_no_targets_log_level = KZ_PRESENCE_NO_TARGETS_LOG_LEVEL descr "when a presence event is received and there no targets we can log at another level"
kazoo.presence_no_targets_log_level = KZ_PRESENCE_NO_TARGETS_LOG_LEVEL descr "when a presence event is received and there no targets we can log at another level"
kazoo.presence_with_targets_log_level = KZ_PRESENCE_WITH_TARGETS_LOG_LEVEL descr "when a presence event is received and there are targets we can log at another level"
kazoo.presence_require_authn = KZ_PRESENCE_REQUIRE_AUTHN descr "require authenticated devices for presence"
kazoo.presence_require_authn = KZ_PRESENCE_REQUIRE_AUTHN descr "require authenticated devices for presence"
#!include_file "presence-query.cfg"
#!include_file "presence-query.cfg"
@ -350,14 +352,14 @@ event_route[kazoo:consumer-event-presence-mwi-update]
$var(payload) = $kzE;
$var(payload) = $kzE;
route(COUNT_SUBSCRIBERS);
route(COUNT_SUBSCRIBERS);
if($xavp(watchers = >message-summary) > 0) {
if($xavp(watchers = >message-summary) > 0) {
$var(kz_presence_log_level) = L_INFO ;
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int}) ;
xlog("L_INFO", "$(kzE{kz.json,Call-ID})|log|publishing $(kzE{kz.json,From}) message-summary update for $xavp(watchers = >message-summary) watchers\n");
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);
kazoo_pua_publish_mwi($kzE);
pres_refresh_watchers("$(kzE{kz.json,From})", "message-summary", 1);
pres_refresh_watchers("$(kzE{kz.json,From})", "message-summary", 1);
} else {
} else {
#!ifdef PRESENCE_TRACK_ALL_PKG_MWI
#!ifdef PRESENCE_TRACK_ALL_PKG_MWI
if($(kzE{kz.json,Event-Package}) = = "message-summary") {
if($(kzE{kz.json,Event-Package}) = = "message-summary") {
$var(kz_presence_log_level) = L_INFO ;
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int}) ;
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from mwi update = > $var(payload)\n");
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) {
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");
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) mwi update = > $var(payload)\n");
@ -420,7 +422,7 @@ route[PRESENCE_UPDATE]
xlog("L_WARN", "$(var(payload){kz.json,Call-ID})|log|not publishing state $(var(payload){kz.json,State}) for presentity $var(presentity) with $xavp(watchers = >self) calls, policy limit of $sel(cfg_get.kazoo.presence_max_call_per_presentity) calls per presentity \n");
xlog("L_WARN", "$(var(payload){kz.json,Call-ID})|log|not publishing state $(var(payload){kz.json,State}) for presentity $var(presentity) with $xavp(watchers = >self) calls, policy limit of $sel(cfg_get.kazoo.presence_max_call_per_presentity) calls per presentity \n");
} else {
} else {
if($xavp(watchers = >dialog) > 0) {
if($xavp(watchers = >dialog) > 0) {
$var(kz_presence_log_level) = L_INFO ;
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int}) ;
if($(var(payload){kz.json,State}) = = "terminated") {
if($(var(payload){kz.json,State}) = = "terminated") {
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) dialog update for terminated dialog\n");
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) dialog update for terminated dialog\n");
} else {
} else {
@ -434,7 +436,7 @@ route[PRESENCE_UPDATE]
} else {
} else {
#!ifdef PRESENCE_TRACK_ALL_PKG_DIALOG
#!ifdef PRESENCE_TRACK_ALL_PKG_DIALOG
if($(kzE{kz.json,Event-Package}) = = "dialog") {
if($(kzE{kz.json,Event-Package}) = = "dialog") {
$var(kz_presence_log_level) = L_INFO ;
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int}) ;
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from dialog update = > $var(payload)\n");
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) {
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");
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) dialog update = > $var(payload)\n");
@ -446,16 +448,16 @@ route[PRESENCE_UPDATE]
}
}
if($xavp(watchers = >presence) > 0) {
if($xavp(watchers = >presence) > 0) {
$var(kz_presence_log_level) = L_INFO ;
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int}) ;
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|publishing $var(presentity) presence update for $xavp(watchers = >presence) watchers\n");
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));
kazoo_pua_publish_presence($var(payload));
pres_refresh_watchers("$var(presentity)", "presence", 1);
pres_refresh_watchers("$var(presentity)", "presence", 1);
} else {
} else {
#!ifdef PRESENCE_TRACK_ALL_PKG_PRESENCE
#!ifdef PRESENCE_TRACK_ALL_PKG_PRESENCE
if($(kzE{kz.json,Event-Package}) = = "presence") {
if($(kzE{kz.json,Event-Package}) = = "presence") {
$var(kz_presence_log_level) = L_INFO ;
$var(kz_presence_log_level) = $(sel(cfg_get.kazoo.presence_with_targets_log_level){s.int}) ;
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from presence update = > $var(payload)\n");
xlog("L_DEBUG", "$(var(payload){kz.json,Call-ID})|log|saving $var(presentity) from presence update = > $var(payload)\n");
if(kazoo_pua_publish_dialoginfo ($var(JObj)) ! = 1) {
if(kazoo_pua_publish_presence ($var(JObj)) ! = 1) {
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) presence update = > $var(payload)\n");
xlog("L_ERR", "$(var(payload){kz.json,Call-ID})|log|error publishing $var(presentity) presence update = > $var(payload)\n");
}
}
}
}