From fa151404a57c4690e93412e0307a000b2cd1e886 Mon Sep 17 00:00:00 2001 From: lazedo Date: Thu, 29 Jun 2017 02:01:53 +0100 Subject: [PATCH 1/2] KAZOO-5597 add condition for kazoo module pua mode --- kamailio/default.cfg | 1 + kamailio/defs.cfg | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index aac65bd..e25eec1 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -182,6 +182,7 @@ loadmodule "db_kazoo.so" ####### Kazoo Integration module ########## loadmodule "kazoo.so" +modparam("kazoo", "pua_mode", MY_AMQP_PUA_MODE) modparam("kazoo", "amqp_primary_zone", "MY_AMQP_ZONE") modparam("kazoo", "amqp_query_timeout_avp", "$avp(kz_timeout)") modparam("kazoo", "node_hostname", "MY_HOSTNAME") diff --git a/kamailio/defs.cfg b/kamailio/defs.cfg index f483953..4e71af0 100644 --- a/kamailio/defs.cfg +++ b/kamailio/defs.cfg @@ -63,4 +63,12 @@ #!define PRESENCE_RESET_BLF_DEFER_UPDATE 0 #!endif +#!ifndef MY_AMQP_PUA_MODE +#!ifdef PRESENCE_ROLE +#!define MY_AMQP_PUA_MODE 1 +#!else +#!define MY_AMQP_PUA_MODE 0 +#!endif +#!endif + # vim: tabstop=4 softtabstop=4 shiftwidth=4 expandtab From a64a0b6e03729a326fc7414a135410b010ca960e Mon Sep 17 00:00:00 2001 From: lazedo Date: Thu, 29 Jun 2017 02:03:07 +0100 Subject: [PATCH 2/2] KAZOO-5597 use runtime data in nodes info for dispatcher --- kamailio/default.cfg | 3 +++ kamailio/dispatcher-role.cfg | 41 +++++++++++++++++++----------------- kamailio/nodes-role.cfg | 4 ++-- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/kamailio/default.cfg b/kamailio/default.cfg index e25eec1..991cef3 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -172,6 +172,9 @@ loadmodule "avpops.so" ######## UAC Redirection module ######## loadmodule "uac_redirect.so" +#### json rpc #### +loadmodule "jsonrpcs.so" + ####### SQL OPS module ########## loadmodule "sqlops.so" modparam("sqlops","sqlcon", "cb=>KAZOO_DB_URL") diff --git a/kamailio/dispatcher-role.cfg b/kamailio/dispatcher-role.cfg index a9bfaa2..1c0eae6 100644 --- a/kamailio/dispatcher-role.cfg +++ b/kamailio/dispatcher-role.cfg @@ -229,26 +229,29 @@ route[DISPATCHER_CHECK_MEDIA_SERVER] } } -route[DISPATCHER_SUMMARY] +route[DISPATCHER_STATUS] { - $var(ds_groups_json) = ""; - if (sql_xquery("cb", "select * from dispatcher order by setid, id", "ra") == 1) - { - $var(Sep1) = ""; - while($xavp(ra) != $null) { - $var(ds_group) = $xavp(ra=>setid); - $var(Sep2)=""; - $var(ds_group_json)=""; - while($xavp(ra) != $null && $var(ds_group) == $xavp(ra=>setid) ) - { - $var(record) = $_s("$xavp(ra=>id)" : {"destination" : "$xavp(ra=>destination)", "flags" : "$xavp(ra=>flags)", "priority" : $xavp(ra=>priority), "attrs" : "$xavp(ra=>attrs)" , "description" : "$xavp(ra=>description)"}); - $var(ds_group_json) = $var(ds_group_json) + $var(Sep2) + $var(record); - $var(Sep2) = ","; - pv_unset("$xavp(ra)"); - } - $var(ds_groups_json) = $var(ds_groups_json) + $var(Sep1) + $_s("$var(ds_group)" : { $var(ds_group_json) }); - $var(Sep1)=", "; - } + jsonrpc_exec('{"jsonrpc": "2.0", "method": "dispatcher.list", "id": 1}'); + $var(Sets) = $(jsonrpl(body){kz.json, result.NRSETS}); + $var(i) = 0; + $var(ds_groups_json)=""; + $var(Sep1) = ""; + while($var(i) < $var(Sets)) { + $var(Set) = $(jsonrpl(body){kz.json, result.RECORDS[$var(i)].SET}); + $var(SetCount) = $(var(Set){kz.json.count,TARGETS}); + $var(Sep2)=""; + $var(ds_group_json)=""; + $var(c) = 0; + while($var(c) < $var(SetCount)) { + $var(Dest) = $(var(Set){kz.json,TARGETS[$var(c)].DEST}); + $var(record) = $_s("$(var(Dest){kz.json,URI})" : {"destination" : "$(var(Dest){kz.json,URI})", "flags" : "$(var(Dest){kz.json,FLAGS})", "priority" : $(var(Dest){kz.json,PRIORITY}), "attrs" : "$(var(Dest){kz.json,ATTRS.BODY})"}); + $var(ds_group_json) = $var(ds_group_json) + $var(Sep2) + $var(record); + $var(Sep2) = ","; + $var(c) = $var(c) + 1; + } + $var(ds_groups_json) = $var(ds_groups_json) + $var(Sep1) + $_s("$(var(Set){kz.json,ID})" : { $var(ds_group_json) }); + $var(Sep1)=", "; + $var(i) = $var(i) + 1; } } diff --git a/kamailio/nodes-role.cfg b/kamailio/nodes-role.cfg index 9fe4668..c8de709 100644 --- a/kamailio/nodes-role.cfg +++ b/kamailio/nodes-role.cfg @@ -35,8 +35,8 @@ route[NODES_ADVERTISE_ROUTE] $var(Registrar) = ""; #!endif -#!ifdef DISPATCHER_ROLE - route(DISPATCHER_SUMMARY); +#!ifdef DISPATCHER_ROLE + route(DISPATCHER_STATUS); $var(Dispatcher) = $_s("Dispatcher" : {"Groups" : { $var(ds_groups_json) }}); #!else $var(Dispatcher) = "";