diff --git a/db_scripts/diff/15214.down b/db_scripts/diff/15214.down new file mode 100644 index 00000000..dab99952 --- /dev/null +++ b/db_scripts/diff/15214.down @@ -0,0 +1,7 @@ +set autocommit=0; +use kamailio; + +ALTER TABLE kamailio.voicemail_spool DROP msg_id; +ALTER TABLE kamailio.voicemail_spool DROP flag; + +commit; diff --git a/db_scripts/diff/15214.up b/db_scripts/diff/15214.up new file mode 100644 index 00000000..1a66c180 --- /dev/null +++ b/db_scripts/diff/15214.up @@ -0,0 +1,7 @@ +set autocommit=0; +use kamailio; + +ALTER TABLE kamailio.voicemail_spool ADD flag varchar(128) DEFAULT ''; +ALTER TABLE kamailio.voicemail_spool ADD msg_id varchar(40) DEFAULT NULL; + +commit; diff --git a/db_scripts/diff/15215.down b/db_scripts/diff/15215.down new file mode 100644 index 00000000..ed492026 --- /dev/null +++ b/db_scripts/diff/15215.down @@ -0,0 +1,169 @@ +set autocommit=0; +use provisioning; + +DROP TABLE voip_mail_to_fax_acl; +DROP TABLE voip_mail_to_fax_secret_renew_notify; +DROP TABLE voip_mail_to_fax_preferences; +DROP TABLE voip_fax_journal; + +DELIMITER ;; +CREATE TRIGGER voip_faxd_crepl_trig AFTER INSERT ON voip_fax_destinations + FOR EACH ROW BEGIN + DECLARE subscriber_username varchar(127); + DECLARE subscriber_domain varchar(127); + DECLARE os_subscriber_id int(10) UNSIGNED; + + SELECT a.username, b.domain INTO subscriber_username, subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> NEW.subscriber_id + AND b.id = a.domain_id; + + SELECT id INTO os_subscriber_id FROM kamailio.subscriber + WHERE username <=> subscriber_username AND domain <=> subscriber_domain; + + INSERT INTO kamailio.fax_destinations (subscriber_id, destination, filetype, + cc, incoming, outgoing, status) + VALUES(os_subscriber_id, NEW.destination, NEW.filetype, + IF(NEW.cc, 'true', 'false'), IF(NEW.incoming, 'true', 'false'), + IF(NEW.outgoing, 'true', 'false'), IF(NEW.status, 'true', 'false')); + +END;; +DELIMITER ; + +DELIMITER ;; +CREATE TRIGGER voip_faxd_urepl_trig AFTER UPDATE ON voip_fax_destinations + FOR EACH ROW BEGIN + DECLARE subscriber_username varchar(127); + DECLARE subscriber_domain varchar(127); + DECLARE os_subscriber_id int(10) UNSIGNED; + DECLARE old_subscriber_username varchar(127); + DECLARE old_subscriber_domain varchar(127); + DECLARE old_os_subscriber_id int(10) UNSIGNED; + + SELECT a.username, b.domain INTO subscriber_username, subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> NEW.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO os_subscriber_id FROM kamailio.subscriber + WHERE username <=> subscriber_username AND domain <=> subscriber_domain; + + SELECT a.username, b.domain INTO old_subscriber_username, old_subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> OLD.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO old_os_subscriber_id FROM kamailio.subscriber + WHERE username <=> old_subscriber_username AND domain <=> old_subscriber_domain; + + UPDATE kamailio.fax_destinations SET subscriber_id = os_subscriber_id, destination = NEW.destination, + filetype = NEW.filetype, cc = IF(NEW.cc, 'true', 'false'), + incoming = IF(NEW.incoming, 'true', 'false'), + outgoing = IF(NEW.outgoing, 'true', 'false'), + status = IF(NEW.status, 'true', 'false') + WHERE subscriber_id <=> old_os_subscriber_id + AND destination <=> OLD.destination; + +END;; +DELIMITER ; + +DELIMITER ;; +CREATE TRIGGER voip_faxd_drepl_trig BEFORE DELETE ON voip_fax_destinations + FOR EACH ROW BEGIN + DECLARE old_subscriber_username varchar(127); + DECLARE old_subscriber_domain varchar(127); + DECLARE old_os_subscriber_id int(10) UNSIGNED; + + SELECT a.username, b.domain INTO old_subscriber_username, old_subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> OLD.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO old_os_subscriber_id FROM kamailio.subscriber + WHERE username <=> old_subscriber_username AND domain <=> old_subscriber_domain; + + DELETE FROM kamailio.fax_destinations WHERE subscriber_id <=> old_os_subscriber_id + AND destination <=> OLD.destination; + +END;; +DELIMITER ; + +DELIMITER ;; +CREATE TRIGGER voip_faxp_crepl_trig AFTER INSERT ON voip_fax_preferences + FOR EACH ROW BEGIN + DECLARE subscriber_username varchar(127); + DECLARE subscriber_domain varchar(127); + DECLARE os_subscriber_id int(10) UNSIGNED; + + SELECT a.username, b.domain INTO subscriber_username, subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> NEW.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO os_subscriber_id FROM kamailio.subscriber + WHERE username <=> subscriber_username AND domain <=> subscriber_domain; + + INSERT INTO kamailio.fax_preferences + (subscriber_id, password, name, active, send_status, send_copy) + VALUES(os_subscriber_id, NEW.password, NEW.name, IF(NEW.active, 'true', 'false'), + IF(NEW.send_status, 'true', 'false'), IF(NEW.send_copy, 'true', 'false')); + +END;; +DELIMITER ; + +DELIMITER ;; +CREATE TRIGGER voip_faxp_urepl_trig AFTER UPDATE ON voip_fax_preferences + FOR EACH ROW BEGIN + DECLARE subscriber_username varchar(127); + DECLARE subscriber_domain varchar(127); + DECLARE os_subscriber_id int(10) UNSIGNED; + DECLARE old_subscriber_username varchar(127); + DECLARE old_subscriber_domain varchar(127); + DECLARE old_os_subscriber_id int(10) UNSIGNED; + + SELECT a.username, b.domain INTO subscriber_username, subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> NEW.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO os_subscriber_id FROM kamailio.subscriber + WHERE username <=> subscriber_username AND domain <=> subscriber_domain; + + SELECT a.username, b.domain INTO old_subscriber_username, old_subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> OLD.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO old_os_subscriber_id FROM kamailio.subscriber + WHERE username <=> old_subscriber_username AND domain <=> old_subscriber_domain; + + UPDATE kamailio.fax_preferences SET subscriber_id = os_subscriber_id, password = NEW.password, + name = NEW.name, active = IF(NEW.active, 'true', 'false'), + send_status = IF(NEW.send_status, 'true', 'false'), + send_copy = IF(NEW.send_copy, 'true', 'false') + WHERE subscriber_id <=> old_os_subscriber_id; + +END;; +DELIMITER ; + +DELIMITER ;; +CREATE TRIGGER voip_faxp_drepl_trig BEFORE DELETE ON voip_fax_preferences + FOR EACH ROW BEGIN + DECLARE old_subscriber_username varchar(127); + DECLARE old_subscriber_domain varchar(127); + DECLARE old_os_subscriber_id int(10) UNSIGNED; + + SELECT a.username, b.domain INTO old_subscriber_username, old_subscriber_domain + FROM voip_subscribers a, voip_domains b + WHERE a.id <=> OLD.subscriber_id + AND b.id <=> a.domain_id; + + SELECT id INTO old_os_subscriber_id FROM kamailio.subscriber + WHERE username <=> old_subscriber_username AND domain <=> old_subscriber_domain; + + DELETE FROM kamailio.fax_preferences WHERE subscriber_id <=> old_os_subscriber_id; + +END;; +DELIMITER ; + +commit; diff --git a/db_scripts/diff/15215.up b/db_scripts/diff/15215.up new file mode 100644 index 00000000..056f6190 --- /dev/null +++ b/db_scripts/diff/15215.up @@ -0,0 +1,66 @@ +set autocommit=0; +use provisioning; + +DROP TRIGGER IF EXISTS provisioning.voip_faxp_crepl_trig; +DROP TRIGGER IF EXISTS provisioning.voip_faxp_urepl_trig; +DROP TRIGGER IF EXISTS provisioning.voip_faxp_drepl_trig; +DROP TRIGGER IF EXISTS provisioning.voip_faxd_crepl_trig; +DROP TRIGGER IF EXISTS provisioning.voip_faxd_urepl_trig; +DROP TRIGGER IF EXISTS provisioning.voip_faxd_drepl_trig; + +CREATE TABLE `voip_fax_journal` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `subscriber_id` int(10) unsigned NOT NULL, + `time` decimal(13,3) NOT NULL, + `direction` enum('in','out','mtf') NOT NULL, + `duration` int(11) unsigned NOT NULL DEFAULT '0', + `caller` varchar(255) NOT NULL, + `callee` varchar(255) NOT NULL, + `pages` int(10) unsigned NOT NULL DEFAULT '0', + `reason` varchar(255) NOT NULL, + `status` varchar(255) NOT NULL, + `signal_rate` int(10) unsigned NOT NULL DEFAULT '0', + `quality` varchar(255) NOT NULL DEFAULT '', + `filename` varchar(255) NOT NULL DEFAULT '', + `sid` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `voip_fj_sub_dir_idx` (`subscriber_id`,`direction`), + KEY `voip_fj_time_idx` (`time`), + CONSTRAINT `v_fj_ref` FOREIGN KEY (`subscriber_id`) REFERENCES `voip_subscribers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `voip_mail_to_fax_preferences` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `subscriber_id` int(11) unsigned NOT NULL, + `active` tinyint(1) NOT NULL DEFAULT '0', + `secret_key` varchar(255) DEFAULT NULL, + `last_secret_key_modify` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `secret_key_renew` enum('never','daily','weekly','monthly') NOT NULL DEFAULT 'never', + PRIMARY KEY (`id`), + UNIQUE KEY `mtf_p_sub_idx` (`subscriber_id`), + CONSTRAINT `v_mtf_p_subscriber_id_ref` FOREIGN KEY (`subscriber_id`) REFERENCES `voip_subscribers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `voip_mail_to_fax_secret_renew_notify` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `subscriber_id` int(11) unsigned NOT NULL, + `destination` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `mtf_srn_subdest_idx` (`subscriber_id`,`destination`), + CONSTRAINT `v_mtf_secret_renew_notify_ref` FOREIGN KEY (`subscriber_id`) REFERENCES `voip_subscribers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `voip_mail_to_fax_acl` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `subscriber_id` int(11) unsigned NOT NULL, + `from_email` varchar(255) DEFAULT NULL, + `received_from` varchar(255) DEFAULT NULL, + `destination` varchar(255) DEFAULT NULL, + `use_regex` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `mtf_acl_sub_idx` (`subscriber_id`), + KEY `voip_mtf_acl_fe_idx` (`from_email`), + CONSTRAINT `v_mtf_acl_ref` FOREIGN KEY (`subscriber_id`) REFERENCES `voip_subscribers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +commit;