Browse Source

handle flush for realm

(cherry picked from commit c1b9123989)
5.0
Luis Azedo 5 years ago
parent
commit
ba4924fe6f
1 changed files with 26 additions and 9 deletions
  1. +26
    -9
      kamailio/registrar-role.cfg

+ 26
- 9
kamailio/registrar-role.cfg View File

@ -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);


Loading…
Cancel
Save