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]