From 12828e9b3fa603d5ecb7a31d7d1e74cbc036a364 Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Fri, 8 Nov 2013 12:49:54 +0100 Subject: [PATCH] MT#3981 Clean up broken/orphaned numbers. --- db_scripts/diff/15031.up | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 db_scripts/diff/15031.up diff --git a/db_scripts/diff/15031.up b/db_scripts/diff/15031.up new file mode 100644 index 00000000..ce1130c8 --- /dev/null +++ b/db_scripts/diff/15031.up @@ -0,0 +1,36 @@ +use provisioning; + +lock tables voip_dbaliases write, kamailio.dbaliases a write, voip_domains b write, voip_subscribers c write, voip_dbaliases d write; + +drop trigger voip_dba_crepl_trig; + +insert into voip_dbaliases select null, a.alias_username, b.id, c.id from kamailio.dbaliases a + left join voip_domains b on b.domain = a.alias_domain + left join voip_subscribers c on c.domain_id = b.id and a.username = c.username + left join voip_dbaliases d on d.username = a.alias_username and d.domain_id = b.id and d.subscriber_id = c.id + where d.id is null; + +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_dba_crepl_trig AFTER INSERT ON voip_dbaliases + FOR EACH ROW BEGIN + DECLARE dbalias_domain varchar(127); + DECLARE target_username varchar(127); + DECLARE target_domain varchar(127); + + SELECT domain INTO dbalias_domain FROM voip_domains where id = NEW.domain_id; + SELECT a.username, b.domain INTO target_username, target_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> NEW.subscriber_id + AND b.id <=> a.domain_id; + + INSERT INTO kamailio.dbaliases (alias_username, alias_domain, username, domain) + VALUES(NEW.username, dbalias_domain, target_username, target_domain); + END */;; +DELIMITER ; + +unlock tables; + +USE billing; + +DELETE FROM voip_numbers WHERE subscriber_id IN + (SELECT id FROM voip_subscribers WHERE status = 'terminated');