diff --git a/kamailio/presence-role.cfg b/kamailio/presence-role.cfg index 785bdc0..e8e32ce 100644 --- a/kamailio/presence-role.cfg +++ b/kamailio/presence-role.cfg @@ -16,6 +16,8 @@ #!trydef KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE 0 #!trydef KZ_PRESENCE_REQUEST_PROBE 1 +#!trydef KZ_PRESENCE_NO_TARGETS_LOG_LEVEL L_DBG + modparam("htable", "htable", "p=>size=32;autoexpire=3600;") modparam("htable", "htable", "first=>size=32;autoexpire=3600;initval =0;updateexpire=1;") @@ -73,6 +75,7 @@ kazoo.presence_request_probe = KZ_PRESENCE_REQUEST_PROBE descr "request probe fo kazoo.presence_request_resubscribe_probe = KZ_PRESENCE_REQUEST_RESUBSCRIBE_PROBE descr "request probe for resubscriptions" 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_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" #!include_file "presence-query.cfg" #!include_file "presence-notify.cfg" @@ -340,6 +343,7 @@ route[COUNT_SUBSCRIBERS] event_route[kazoo:consumer-event-presence-dialog-update] { + $var(presence_log_level) = $sel(cfg_get.kazoo.presence_no_targets_log_level); $var(StartRoute) = $(TV(Sn){s.replace,.,}); $var(delta_to_start) = $var(StartRoute) - $(kzE{kz.json,AMQP-Received}); xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|received $(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs)\n"); @@ -355,16 +359,18 @@ event_route[kazoo:consumer-event-presence-dialog-update] $var(EndRoute) = $(TV(Sn){s.replace,.,}); $var(delta_to_finish) = $var(EndRoute) - $var(StartRoute); - xlog("L_INFO", "$(kzE{kz.json,Call-ID})|log|$(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n"); + xlog("$var(presence_log_level)", "$(kzE{kz.json,Call-ID})|log|$(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,AMQP-Broker-Zone}) => $(kzE{kz.json,Switch-URI}) (Δ1 $(kzE{kz.json,AMQP-Elapsed-Micro}) μs , Δ2 $var(delta_to_start) μs, Δ3 $var(delta_to_finish) μs)\n"); } event_route[kazoo:consumer-event-presence-mwi-update] { + $var(presence_log_level) = $sel(cfg_get.kazoo.presence_no_targets_log_level); xlog("L_DBG", "$(kzE{kz.json,Call-ID})|log|received message-summary update for $(kzE{kz.json,From}) ($(kzE{kz.json,AMQP-Broker-Zone}))\n"); $var(presentity) = $(kzE{kz.json,From}); $var(payload) = $kzE; route(COUNT_SUBSCRIBERS); if($xavp(watchers=>message-summary) > 0) { + $var(presence_log_level) = L_INFO; 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); @@ -382,12 +388,13 @@ event_route[kazoo:consumer-event-presence-mwi-update] } route(MWI_AS_PRESENCE); - xlog("L_DBG", "$(kzE{kz.json,Call-ID})|log|message-summary update for $(kzE{kz.json,From}) light should be on ? $(kzE{kz.json,Messages-Waiting}) at $(kzE{kz.json,AMQP-Received})/$var(Now)/$TS\n"); + xlog("$var(presence_log_level)", "$(kzE{kz.json,Call-ID})|log|message-summary update for $(kzE{kz.json,From}) light should be on ? $(kzE{kz.json,Messages-Waiting}) at $(kzE{kz.json,AMQP-Received})/$var(Now)/$TS\n"); } event_route[kazoo:consumer-event-presence-update] { + $var(presence_log_level) = $sel(cfg_get.kazoo.presence_no_targets_log_level); if($sel(cfg_get.kazoo.presence_ignore_status_probe_resp) == 1) { if($(kzE{kz.json,State}) == "offline" || $(kzE{kz.json,State}) == "online") { xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|ignoring $(kzE{kz.json,State}) state $(kzE{kz.json,Presence-ID})\n"); @@ -401,7 +408,7 @@ event_route[kazoo:consumer-event-presence-update] $var(payload) = $kzE; route(PRESENCE_UPDATE); - xlog("L_DEBUG", "$(kzE{kz.json,Call-ID})|log|$(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,Switch-URI}) Δ at $(kzE{kz.json,AMQP-Received})/$var(Now)/$TS\n"); + xlog("$var(presence_log_level)", "$(kzE{kz.json,Call-ID})|log|$(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From}) state $(kzE{kz.json,State}) from $(kzE{kz.json,Switch-URI}) Δ at $(kzE{kz.json,AMQP-Received})/$var(Now)/$TS\n"); } route[PRESENCE_UPDATE] @@ -419,6 +426,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"); } else { if($xavp(watchers=>dialog) > 0) { + $var(presence_log_level) = L_INFO; 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"); } else { @@ -443,12 +451,14 @@ route[PRESENCE_UPDATE] } if($xavp(watchers=>presence) > 0) { + $var(presence_log_level) = L_INFO; 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") { + $var(presence_log_level) = L_INFO; 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");