|
|
|
@ -0,0 +1,23 @@ |
|
|
|
|
|
|
|
do_db_extra_check() { |
|
|
|
|
|
|
|
# location |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from location where socket not like 'udp:%';" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from location where expires > 0 and datetime(expires, 'unixepoch') < datetime('now', '-10 seconds');" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from location_attrs where not exists(select id from location where ruid = location_attrs.ruid);" |
|
|
|
|
|
|
|
## presence |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from active_watchers where socket_info not like 'udp:%';" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from active_watchers where expires > 0 and datetime(expires, 'unixepoch') < datetime('now', '-10 seconds');" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from presentity where expires > 0 AND datetime(expires, 'unixepoch') < datetime('now', '-10 seconds');" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from presentity where id in(select id from presentities where state in('terminated','available'));" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from active_watchers_log where id in(select id from active_watchers_log a where not exists(select callid from active_watchers b where b.callid = a.callid and b.watcher_username = a.watcher_username and b.watcher_domain = a.watcher_domain));" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from presentity where id in(select id from presentities a where not exists(select * from active_watchers where presentity_uri = a.presentity_uri));" |
|
|
|
|
|
|
|
## notify watchers of pending calls |
|
|
|
## 'create temp table as' because it will be dropped as soon as we ended the session |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "drop table if exists tmp_probe;" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "create table tmp_probe as select distinct b.event, a.presentity_uri from presentities a inner join active_watchers b on a.presentity_uri = b.presentity_uri where state in('early', 'confirmed', 'onthephone', 'busy');" |
|
|
|
KazooDB -db ${DB_CURRENT_DB} "delete from presentity where id in(select id from presentities where state in('early', 'confirmed', 'onthephone', 'busy'));" |
|
|
|
|
|
|
|
} |