|
|
|
@ -468,23 +468,40 @@ event_route[kazoo:consumer-event-directory-reg-flush] |
|
|
|
{ |
|
|
|
$var(user) = $(kzE{kz.json,Username}) + "@" + $(kzE{kz.json,Realm}); |
|
|
|
xlog("L_INFO", "event|registrar|$(kzE{kz.json,Msg-ID}) received directory flush for $var(user)\n"); |
|
|
|
if ($sht(auth_cache=>$var(user)) != $null) { |
|
|
|
$sht(auth_cache=>$var(user)) = $null; |
|
|
|
if ($(kzE{kz.json,Username}) == "") { |
|
|
|
sht_rm_value_re("auth_cache=>.*@$(kzE{kz.json,Realm})"); |
|
|
|
} else { |
|
|
|
if ($sht(auth_cache=>$var(user)) != $null) { |
|
|
|
$sht(auth_cache=>$var(user)) = $null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if( $(kzE{kz.json,Cache-Only}) == "true") { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
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"); |
|
|
|
$var(Domain) = $(kzE{kz.json,Realm}); |
|
|
|
$var(Username) = $(kzE{kz.json,Username}); |
|
|
|
$var(Query) = $_s(KZQ_REGISTRAR_FLUSH); |
|
|
|
|
|
|
|
if($var(Username) != "") { |
|
|
|
$var(Query) = $var(Query) + $_s( and username = "$var(Username)"); |
|
|
|
} |
|
|
|
|
|
|
|
$var(count) = 0; |
|
|
|
|
|
|
|
if (sql_xquery("cb", "$var(Query)", "ra") == 1) |
|
|
|
{ |
|
|
|
while($xavp(ra) != $null) { |
|
|
|
unregister("location", "sip:$xavp(ra=>aor)", "$xavp(ra=>ruid)"); |
|
|
|
pv_unset("$xavp(ra)"); |
|
|
|
$var(count) = $var(count) + 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if ($(kzE{kz.json,Username}) == "") { |
|
|
|
xlog("L_INFO", "event|registrar|$(kzE{kz.json,Msg-ID}) flushed $var(count) entries for realm $(kzE{kz.json,Realm})\n"); |
|
|
|
} |
|
|
|
|
|
|
|
#!ifdef ANTIFLOOD_ROLE |
|
|
|
route(ANTIFLOOD_RESET_AUTH); |
|
|
|
|