From f3d0e2d2be901dc943c4302689f7e4fc9f763d33 Mon Sep 17 00:00:00 2001 From: lazedo Date: Fri, 29 Aug 2014 19:52:42 +0100 Subject: [PATCH 1/7] KAZOO-2780-PUA avoid PUA --- kamailio/presence-role.cfg | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/kamailio/presence-role.cfg b/kamailio/presence-role.cfg index f829929..fe34670 100644 --- a/kamailio/presence-role.cfg +++ b/kamailio/presence-role.cfg @@ -17,12 +17,12 @@ modparam("presence_xml", "force_active", 1) ######## Presence User Agent module ######## -loadmodule "pua.so" -modparam("pua", "db_mode", 0) -modparam("pua", "db_url", "text:///etc/kazoo/kamailio/dbtext") -modparam("pua", "update_period", 6) -modparam("pua", "min_expires", 300) -modparam("pua", "outbound_proxy", "sip:MY_IP_ADDRESS") +#loadmodule "pua.so" +#modparam("pua", "db_mode", 0) +#modparam("pua", "db_url", "text:///etc/kazoo/kamailio/dbtext") +#modparam("pua", "update_period", 6) +#modparam("pua", "min_expires", 300) +#modparam("pua", "outbound_proxy", "sip:MY_IP_ADDRESS") ####### Presence Logic ######## @@ -75,6 +75,8 @@ route[HANDLE_PUBLISH] event_route[kazoo:consumer-event-presence-update] { kazoo_pua_publish($kzE); + pres_refresh_watchers("$(kzE{kz.json,From})", "$(kzE{kz.json,Event-Package})", 1); + } # vim: tabstop=4 softtabstop=4 shiftwidth=4 expandtab From aa7fb5fba2e44a741fb60be61f88193ed8130ccf Mon Sep 17 00:00:00 2001 From: lazedo Date: Tue, 2 Sep 2014 16:14:13 +0100 Subject: [PATCH 2/7] KAZOO-2780-PUA event for connections --- kamailio/default.cfg | 10 ++++++++++ kamailio/presence-role.cfg | 1 + 2 files changed, 11 insertions(+) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index ad5d5db..865f23b 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -610,5 +610,15 @@ event_route[kazoo:consumer-event] xlog("L_INFO","unhandled AMQP event, payload: $kzE"); } +event_route[kazoo:consumer-event-connection-open] +{ + xlog("L_INFO","connection to $(kzE{kz.json,host}) opened"); +} + +event_route[kazoo:consumer-event-connection-closed] +{ + xlog("L_INFO","connection to $(kzE{kz.json,host}) closed"); +} + # vim: tabstop=4 softtabstop=4 shiftwidth=4 expandtab diff --git a/kamailio/presence-role.cfg b/kamailio/presence-role.cfg index fe34670..5a1becd 100644 --- a/kamailio/presence-role.cfg +++ b/kamailio/presence-role.cfg @@ -74,6 +74,7 @@ route[HANDLE_PUBLISH] event_route[kazoo:consumer-event-presence-update] { + xlog("L_INFO", "received $(kzE{kz.json,Event-Package}) update for $(kzE{kz.json,From})"); kazoo_pua_publish($kzE); pres_refresh_watchers("$(kzE{kz.json,From})", "$(kzE{kz.json,Event-Package})", 1); From c8aefb49c80367590ca4dbc23f10671b03c31335 Mon Sep 17 00:00:00 2001 From: lazedo Date: Tue, 2 Sep 2014 16:55:04 +0100 Subject: [PATCH 3/7] KAZOO-2780 log memory summary on exit --- kamailio/default.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index 865f23b..5e4cd6d 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -23,8 +23,9 @@ max_while_loops = 500 ####### Logging Parameters ######### debug = L_INFO memdbg = 10 -memlog = 10 +memlog = L_INFO corelog = L_ERR +mem_summary = 12 log_stderror = no log_facility = LOG_LOCAL0 log_name="kamailio" From 91fcf52bf0ee682f2aa78b5b94087a5d189d8c4b Mon Sep 17 00:00:00 2001 From: lazedo Date: Wed, 3 Sep 2014 23:47:40 +0100 Subject: [PATCH 4/7] KAZOO-2870 make the queue durable so that a connection intermission doesn't affect blf --- kamailio/default.cfg | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index 5e4cd6d..dbde1bc 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -602,8 +602,17 @@ onsend_route { event_route[kazoo:mod-init] { #!ifdef PRESENCE-ROLE - kazoo_subscribe("dialoginfo", "direct", "BLF-QUEUE-MY_HOSTNAME", "BLF-MY_HOSTNAME"); + +### use this simple form of binding a listener +### kazoo_subscribe("dialoginfo", "direct", "BLF-QUEUE-MY_HOSTNAME", "BLF-MY_HOSTNAME"); +### +### or unleash the power of rabbit to kazoo-blf + $var(payload) = "{ 'exchange' : 'dialoginfo' , 'type' : 'direct', 'queue' : 'BLF-QUEUE-MY_HOSTNAME', 'routing' : 'BLF-MY_HOSTNAME', 'auto_delete' : 0, 'durable' : 1 }"; + xlog("L_INFO","SUBSCRIBE $var(payload)"); + kazoo_subscribe("$var(payload)"); + #!endif + } event_route[kazoo:consumer-event] From d214b5573fbbe44d0cdb72c93915e1fd09235a1e Mon Sep 17 00:00:00 2001 From: lazedo Date: Wed, 3 Sep 2014 23:52:05 +0100 Subject: [PATCH 5/7] KAZOO-2870 use db_kazoo pua_mode = 1 (saves to db module), use db_text for the presentity db module. --- kamailio/presence-role.cfg | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kamailio/presence-role.cfg b/kamailio/presence-role.cfg index 5a1becd..6147569 100644 --- a/kamailio/presence-role.cfg +++ b/kamailio/presence-role.cfg @@ -6,12 +6,20 @@ loadmodule "presence_xml.so" modparam("presence", "subs_db_mode", 0) modparam("presence", "expires_offset", 60) +modparam("presence", "send_fast_notify", 0) +modparam("presence", "clean_period", 30) modparam("presence", "publ_cache", 0) modparam("presence", "min_expires", 0) modparam("presence", "max_expires", 3600) -modparam("presence", "db_url", "MY_AMQP_URL/dialoginfo") -modparam("presence", "send_fast_notify", 0) -modparam("presence", "clean_period", 30) + +## use this +#modparam("presence", "db_url", "MY_AMQP_URL/dialoginfo") + +## or this +modparam("presence", "db_url", "text:///etc/kazoo/kamailio/dbtext") +modparam("db_kazoo", "db_url", "text:///etc/kazoo/kamailio/dbtext") +modparam("db_kazoo", "pua_mode", 1) + modparam("presence_xml", "force_active", 1) From 69ff10d0ddd41f7d67067783e7912913262d0e84 Mon Sep 17 00:00:00 2001 From: lazedo Date: Thu, 4 Sep 2014 09:45:23 +0100 Subject: [PATCH 6/7] KAZOO-2870 ACK --- kamailio/default.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index dbde1bc..1cc47c2 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -165,7 +165,7 @@ modparam("db_kazoo", "amqp_max_channels", MY_AMQP_MAX_CHANNELS) modparam("db_kazoo", "amqp_max_channels", 100) #!endif modparam("db_kazoo", "amqp_internal_loop_count", 1); -modparam("db_kazoo", "amqp_consumer_loop_count", 3); +modparam("db_kazoo", "amqp_consumer_loop_count", 4); ####### Role Configurations ########## #!ifdef DISPATCHER-ROLE @@ -607,7 +607,7 @@ event_route[kazoo:mod-init] ### kazoo_subscribe("dialoginfo", "direct", "BLF-QUEUE-MY_HOSTNAME", "BLF-MY_HOSTNAME"); ### ### or unleash the power of rabbit to kazoo-blf - $var(payload) = "{ 'exchange' : 'dialoginfo' , 'type' : 'direct', 'queue' : 'BLF-QUEUE-MY_HOSTNAME', 'routing' : 'BLF-MY_HOSTNAME', 'auto_delete' : 0, 'durable' : 1 }"; + $var(payload) = "{ 'exchange' : 'dialoginfo' , 'type' : 'direct', 'queue' : 'BLF-QUEUE-MY_HOSTNAME', 'routing' : 'BLF-MY_HOSTNAME', 'auto_delete' : 0, 'durable' : 1, 'no_ack' : 0 }"; xlog("L_INFO","SUBSCRIBE $var(payload)"); kazoo_subscribe("$var(payload)"); From d93b660bb607ada0d00777dda37162a99b80656b Mon Sep 17 00:00:00 2001 From: lazedo Date: Thu, 4 Sep 2014 22:28:07 +0100 Subject: [PATCH 7/7] KAZOO-2780 'no_ack' : 0, 'wait_for_consumer_ack' : 1 --- kamailio/default.cfg | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index 1cc47c2..d3ca128 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -606,8 +606,20 @@ event_route[kazoo:mod-init] ### use this simple form of binding a listener ### kazoo_subscribe("dialoginfo", "direct", "BLF-QUEUE-MY_HOSTNAME", "BLF-MY_HOSTNAME"); ### -### or unleash the power of rabbit to kazoo-blf - $var(payload) = "{ 'exchange' : 'dialoginfo' , 'type' : 'direct', 'queue' : 'BLF-QUEUE-MY_HOSTNAME', 'routing' : 'BLF-MY_HOSTNAME', 'auto_delete' : 0, 'durable' : 1, 'no_ack' : 0 }"; +### or unleash the power of rabbit to kazoo-blf +### +### 'no_ack' : 1 => needs ack, +### 'wait_for_consumer_ack' +### : 1 => when it receives, it processses on the AMQP Worker ad after that it confirms +### : 0 => when it receives, it acks then processes in the AMQP Worker +### only works if no_ack : 0 +### +### Rabbit Policy for ha-mode +### pattern : ^BLF +### definition : ha-mode: all +### +### + $var(payload) = "{ 'exchange' : 'dialoginfo' , 'type' : 'direct', 'queue' : 'BLF-QUEUE-MY_HOSTNAME', 'routing' : 'BLF-MY_HOSTNAME', 'auto_delete' : 0, 'durable' : 1, 'no_ack' : 0, 'wait_for_consumer_ack' : 1 }"; xlog("L_INFO","SUBSCRIBE $var(payload)"); kazoo_subscribe("$var(payload)");