Browse Source

KAZOO-5415 & KAZOO-5416 (#159)

* remove config that breeak kamailio 5

* expires_offset doesn't work as intended. remove it for now

* KAZOO-5415 allow reset by account

* KAZOO-5416 allow reset by zone

MY_AMQP_ZONE needs to be defined as a substdef
#!substdef "!MY_AMQP_ZONE!lx2!g"

* mi_fifo deprecated in kamailio 5
KAZOO-5650
lazedo 9 years ago
committed by bitbashing
parent
commit
50b0116af7
7 changed files with 46 additions and 10 deletions
  1. +1
    -4
      kamailio/default.cfg
  2. +1
    -1
      kamailio/defs.cfg
  3. +1
    -1
      kamailio/kazoo-bindings.cfg
  4. +1
    -1
      kamailio/message-role.cfg
  5. +40
    -1
      kamailio/presence-role.cfg
  6. +1
    -1
      kamailio/registrar-role.cfg
  7. +1
    -1
      kamailio/registrar-sync-role.cfg

+ 1
- 4
kamailio/default.cfg View File

@ -159,9 +159,6 @@ loadmodule "pv.so"
######## Advanced logger module ########
loadmodule "xlog.so"
####### FIFO support for Management Interface ########
loadmodule "mi_fifo.so"
######## UAC ########
loadmodule "uac.so"
@ -177,7 +174,7 @@ modparam("db_text", "default_connection", "KAZOO_DB_URL")
####### Kazoo Integration module ##########
loadmodule "kazoo.so"
modparam("kazoo", "amqp_primary_zone", MY_AMQP_ZONE)
modparam("kazoo", "amqp_primary_zone", "MY_AMQP_ZONE")
modparam("kazoo", "amqp_query_timeout_avp", "$avp(kz_timeout)")
modparam("kazoo", "node_hostname", "MY_HOSTNAME")
modparam("kazoo", "amqp_heartbeats", MY_AMQP_HEARTBEATS)


+ 1
- 1
kamailio/defs.cfg View File

@ -52,7 +52,7 @@
#!endif
#!ifndef MY_AMQP_ZONE
#!define MY_AMQP_ZONE "local"
#!substdef "!MY_AMQP_ZONE!local!g"
#!endif
# vim: tabstop=4 softtabstop=4 shiftwidth=4 expandtab

+ 1
- 1
kamailio/kazoo-bindings.cfg View File

@ -47,7 +47,7 @@ event_route[kazoo:mod-init]
#!endif
#!ifdef ACL_ROLE
$var(payload) = "{ 'exchange' : 'frontier_acl' , 'type' : 'topic', 'queue' : 'FRONTIERACL-FLUSH-MY_HOSTNAME', 'routing' : 'flush', 'auto_delete' : 1, 'durable' : 0, 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
$var(payload) = "{ 'exchange' : 'frontier_acl' , 'type' : 'topic', 'queue' : 'FRONTIERACL-FLUSH-MY_HOSTNAME', 'routing' : 'flush', 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
kazoo_subscribe("$var(payload)");
#!endif


+ 1
- 1
kamailio/message-role.cfg View File

@ -54,7 +54,7 @@ route[MESSAGE_REPLY]
route[MESSAGE_BINDINGS]
{
$var(key) = "kamailio@MY_HOSTNAME";
$var(payload) = '{ "exchange" : "sms" , "type" : "topic", "queue" : "MSG-QUEUE-MY_HOSTNAME", "routing" : "message.route.' + $(var(key){kz.encode}) + '.*", "auto_delete" : 1, "durable" : 0, "no_ack" : 0, "wait_for_consumer_ack" : 1 }';
$var(payload) = '{ "exchange" : "sms" , "type" : "topic", "queue" : "MSG-QUEUE-MY_HOSTNAME", "routing" : "message.route.' + $(var(key){kz.encode}) + '.*", "no_ack" : 0, "wait_for_consumer_ack" : 1 }';
kazoo_subscribe("$var(payload)");
}


+ 40
- 1
kamailio/presence-role.cfg View File

@ -20,7 +20,7 @@ modparam("presence_xml", "disable_winfo", 1)
modparam("presence_xml", "disable_bla", 1)
modparam("presence", "subs_db_mode", 3)
modparam("presence", "expires_offset", 60)
modparam("presence", "expires_offset", 0)
modparam("presence", "send_fast_notify", 1)
modparam("presence", "clean_period", 30)
modparam("presence", "db_update_period", 10)
@ -220,8 +220,47 @@ event_route[kazoo:consumer-event-presence-update]
}
route[RESET_ZONE]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for this zone\n");
sql_query("exec", "delete from presentity");
$var(presentities) = $sqlrows(exec);
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|removed $var(presentities) presentities\n");
}
route[RESET_ACCOUNT]
{
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for realm $(kzE{kz.json,Realm})\n");
sql_query("exec", 'delete from presentity where domain="$(kzE{kz.json,Realm})" ');
$var(presentities) = $sqlrows(exec);
sql_query("exec", 'update active_watchers set expires = $TS where watcher_domain="$(kzE{kz.json,Realm})" ');
$var(watchers) = $sqlrows(exec);
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|removed $var(presentities) presentities and expired $var(watchers) subscribers for realm $(kzE{kz.json,Realm})\n");
}
route[RESET_WILDCARD]
{
if($(kzE{kz.json,Realm}) == "*") {
if($(kzE{kz.json,Username}) == "MY_AMQP_ZONE") {
route(RESET_ZONE);
} else {
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for zone $(kzE{kz.json,Username}). 'MY_AMQP_ZONE' doesn't care\n");
}
exit();
} else {
route(RESET_ACCOUNT);
}
}
event_route[kazoo:consumer-event-presence-reset]
{
if($(kzE{kz.json,Username}) == "*" || $(kzE{kz.json,Realm}) == "*") {
route(RESET_WILDCARD);
exit();
}
xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|reset|received presence reset for $(kzE{kz.json,Username})@$(kzE{kz.json,Realm})\n");
$var(presentity) = "sip:" + $(kzE{kz.json,Username}) + "@" + $(kzE{kz.json,Realm});
sql_query("exec", 'delete from presentity where domain="$(kzE{kz.json,Realm})" and username = "$(kzE{kz.json,Username})"');


+ 1
- 1
kamailio/registrar-role.cfg View File

@ -310,7 +310,7 @@ event_route[kazoo:consumer-event-directory-reg-flush]
route[REGISTRAR_BINDINGS]
{
$var(payload) = "{ 'exchange' : 'registrar' , 'type' : 'topic', 'queue' : 'registrar-flush-MY_HOSTNAME', 'routing' : 'registration.flush.*', 'auto_delete' : 1, 'durable' : 0, 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
$var(payload) = "{ 'exchange' : 'registrar' , 'type' : 'topic', 'queue' : 'registrar-flush-MY_HOSTNAME', 'routing' : 'registration.flush.*', 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
kazoo_subscribe("$var(payload)");
}


+ 1
- 1
kamailio/registrar-sync-role.cfg View File

@ -33,6 +33,6 @@ event_route[kazoo:consumer-event-directory-reg-sync]
route[REGISTRAR_SYNC_BINDINGS]
{
$var(payload) = "{ 'exchange' : 'registrar' , 'type' : 'topic', 'queue' : 'registra-sync-MY_HOSTNAME', 'routing' : 'registration.sync', 'auto_delete' : 1, 'durable' : 0, 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
$var(payload) = "{ 'exchange' : 'registrar' , 'type' : 'topic', 'queue' : 'registra-sync-MY_HOSTNAME', 'routing' : 'registration.sync', 'no_ack' : 1, 'wait_for_consumer_ack' : 0 }";
kazoo_subscribe("$var(payload)");
}

Loading…
Cancel
Save