From 0a51682d69fa48b8b51ea093ee2853a8e37c5069 Mon Sep 17 00:00:00 2001 From: lazedo Date: Wed, 17 May 2017 22:27:26 +0100 Subject: [PATCH] unregister device on directory flush (#167) --- kamailio/registrar-role.cfg | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/kamailio/registrar-role.cfg b/kamailio/registrar-role.cfg index 93b2ed0..2100844 100644 --- a/kamailio/registrar-role.cfg +++ b/kamailio/registrar-role.cfg @@ -299,11 +299,21 @@ route[SAVE_LOCATION] event_route[kazoo:consumer-event-directory-reg-flush] { $var(user) = $(kzE{kz.json,Username}) + "@" + $(kzE{kz.json,Realm}); + xlog("L_INFO", "$(kzE{kz.json,Msg-ID})|log|received directory flush for $var(user)\n"); if ($sht(auth_cache=>$var(user)) != $null) { - xlog("L_INFO", "log|removing SIP credentials cache for $var(user)\n"); $sht(auth_cache=>$var(user)) = $null; } + if(reg_fetch_contacts("location", "sip:$var(user)", "caller")) { + $var(i) = 0; + while($var(i) < $(ulc(caller=>count))) { + unregister("location", "sip:$(ulc(caller=>aor))", "$(ulc(caller=>ruid)[$var(i)])"); + $var(i) = $var(i) + 1; + } + reg_free_contacts("caller"); + } + + #!ifdef ANTIFLOOD_ROLE route(ANTIFLOOD_RESET_AUTH); #!endif