Browse Source

KAZOO-5597 use runtime data in nodes info for dispatcher

KAZOO-5650
lazedo 9 years ago
parent
commit
a64a0b6e03
3 changed files with 27 additions and 21 deletions
  1. +3
    -0
      kamailio/default.cfg
  2. +22
    -19
      kamailio/dispatcher-role.cfg
  3. +2
    -2
      kamailio/nodes-role.cfg

+ 3
- 0
kamailio/default.cfg View File

@ -172,6 +172,9 @@ loadmodule "avpops.so"
######## UAC Redirection module ######## ######## UAC Redirection module ########
loadmodule "uac_redirect.so" loadmodule "uac_redirect.so"
#### json rpc ####
loadmodule "jsonrpcs.so"
####### SQL OPS module ########## ####### SQL OPS module ##########
loadmodule "sqlops.so" loadmodule "sqlops.so"
modparam("sqlops","sqlcon", "cb=>KAZOO_DB_URL") modparam("sqlops","sqlcon", "cb=>KAZOO_DB_URL")


+ 22
- 19
kamailio/dispatcher-role.cfg View File

@ -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;
} }
} }


+ 2
- 2
kamailio/nodes-role.cfg View File

@ -35,8 +35,8 @@ route[NODES_ADVERTISE_ROUTE]
$var(Registrar) = ""; $var(Registrar) = "";
#!endif #!endif
#!ifdef DISPATCHER_ROLE
route(DISPATCHER_SUMMARY);
#!ifdef DISPATCHER_ROLE
route(DISPATCHER_STATUS);
$var(Dispatcher) = $_s("Dispatcher" : {"Groups" : { $var(ds_groups_json) }}); $var(Dispatcher) = $_s("Dispatcher" : {"Groups" : { $var(ds_groups_json) }});
#!else #!else
$var(Dispatcher) = ""; $var(Dispatcher) = "";


Loading…
Cancel
Save