From 10fae352ff248f78b83f86675d6e0eba6067f2dd Mon Sep 17 00:00:00 2001 From: OnNet Date: Tue, 1 Nov 2016 22:54:01 +0300 Subject: [PATCH] KAZOO-5138: flush ACL on access lists update (#110) --- kamailio/acl-role.cfg | 14 ++++++++++++++ kamailio/default.cfg | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/kamailio/acl-role.cfg b/kamailio/acl-role.cfg index 335bb42..a74b201 100644 --- a/kamailio/acl-role.cfg +++ b/kamailio/acl-role.cfg @@ -252,3 +252,17 @@ route[ACL_CHECK_DEVICE_DENY] { xlog("L_INFO", "$ci|ACL|$var(sip-packet) from $si is permitted by ACL for $var(device)\n"); return; } + +event_route[kazoo:consumer-event-acl-acl-flush] +{ + if( $(kzE{kz.json,Device}) != "" ) { + $var(device_regexp) = $(kzE{kz.json,Device}) + "@" + $(kzE{kz.json,Realm}) + "/.*" ; + xlog("L_INFO","|ACL-Flush| Flush ACL for Device. Regexp: $var(device_regexp)\n"); + sht_rm_name_re("acl=>$var(device_regexp)"); + } else { + $var(realm_regexp) = "^" + $(kzE{kz.json,Realm}) + "/.*" ; + xlog("L_INFO","|ACL-Flush| Flush ACL for Realm. Regexp: $var(realm_regexp)\n"); + sht_rm_name_re("acl=>$var(realm_regexp)"); + } + +} diff --git a/kamailio/default.cfg b/kamailio/default.cfg index 50316b4..302dc6d 100644 --- a/kamailio/default.cfg +++ b/kamailio/default.cfg @@ -852,6 +852,13 @@ 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 }"; + kazoo_subscribe("$var(payload)"); + + #!endif + } event_route[kazoo:consumer-event]