diff --git a/db_scripts/diff/15034.up b/db_scripts/diff/15034.up new file mode 100644 index 00000000..069829b3 --- /dev/null +++ b/db_scripts/diff/15034.up @@ -0,0 +1,53 @@ +USE provisioning; +set autocommit = 0; + + +SELECT id INTO @vpg_id FROM voip_preference_groups + WHERE name='Internals'; + +UPDATE voip_preferences SET attribute='force_outbound_calls_to_peer_tm' +WHERE +attribute='force_outbound_calls_to_peer'; +SELECT id FROM voip_preferences WHERE attribute='force_outbound_calls_to_peer_tm' INTO @tmp_pref_id; + +INSERT INTO voip_preferences +(voip_preference_groups_id, attribute, type, max_occur, usr_pref, dom_pref, peer_pref, modify_timestamp, internal, data_type, read_only, description) +VALUES +(@vpg_id, 'force_outbound_calls_to_peer', 0, 1, 1, 1, 1, '1970-01-01 00:00:00', 0, 'enum', 0, 'Force calls from this user/domain/peer to be routed to PSTN even if the callee is local. Use with caution, as this setting may increase your costs! When enabling this option in a peer, make sure you trust it, as the NGCP will become an open relay for it!'); +SELECT last_insert_id() INTO @pref_id; + +INSERT INTO voip_preferences_enum +(preference_id, label, value, usr_pref, dom_pref, peer_pref, default_val) +VALUES +(@pref_id, 'Never', NULL, 1, 0, 0, 1), +(@pref_id, 'Never', 'never', 0, 1, 1, 1), +(@pref_id, 'If callee is offline', 'force_offline', 1, 1, 1, 0), +(@pref_id, 'If callee is offline and number is primary', 'force_offline_primary', 1, 1, 1, 0), +(@pref_id, 'If callee is offline and number is alias', 'force_offline_alias', 1, 1, 1, 0), +(@pref_id, 'Always', 'force', 1, 1, 1, 0); + + +-- finally copy over the vars to the new preference +INSERT INTO voip_usr_preferences(subscriber_id, attribute_id, value) + SELECT p.subscriber_id, @pref_id, "force" FROM voip_usr_preferences p + WHERE p.attribute_id=@tmp_pref_id AND p.value=1; + +-- make update insert of insert because default values are already there for new preference +UPDATE voip_dom_preferences a, voip_dom_preferences b SET a.value="force" +WHERE a.attribute_id = @pref_id +AND a.domain_id = b.domain_id +AND b.attribute_id = @tmp_pref_id +AND b.value = 1; + +-- make update insert of insert because default values are already there for new preference +UPDATE voip_peer_preferences a, voip_peer_preferences b SET a.value="force" +WHERE a.attribute_id = @pref_id +AND a.peer_host_id = b.peer_host_id +AND b.attribute_id = @tmp_pref_id +AND b.value = 1; + +-- delete temporary data +DELETE FROM voip_preferences where id=@tmp_pref_id; + +commit; + diff --git a/db_scripts/diff/15035.up b/db_scripts/diff/15035.up new file mode 100644 index 00000000..f94b50cc --- /dev/null +++ b/db_scripts/diff/15035.up @@ -0,0 +1,70 @@ +USE provisioning +set autocommit = 0; + +ALTER TABLE voip_dbaliases + ADD COLUMN is_primary TINYINT(1) NOT NULL DEFAULT 0 AFTER subscriber_id; + +DROP TRIGGER voip_dba_crepl_trig; +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, is_primary) + VALUES(NEW.username, dbalias_domain, target_username, target_domain, NEW.is_primary); + END */;; +DELIMITER ; + + +DROP TRIGGER voip_dba_urepl_trig; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_dba_urepl_trig AFTER UPDATE ON voip_dbaliases + FOR EACH ROW BEGIN + DECLARE old_dbalias_domain varchar(127); + DECLARE new_dbalias_domain varchar(127); + DECLARE target_username varchar(127); + DECLARE target_domain varchar(127); + + SELECT domain INTO old_dbalias_domain FROM voip_domains where id = OLD.domain_id; + SELECT domain INTO new_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; + + UPDATE kamailio.dbaliases SET alias_username = NEW.username, alias_domain = new_dbalias_domain, + username = target_username, domain = target_domain, is_primary = NEW.is_primary + WHERE alias_username <=> OLD.username + AND alias_domain <=> old_dbalias_domain + AND is_primary <=> OLD.is_primary; + END */;; +DELIMITER ; + +commit; + +USE kamailio +ALTER TABLE dbaliases ADD COLUMN is_primary TINYINT(1) NOT NULL DEFAULT 0; + +commit; + +USE provisioning + +UPDATE + provisioning.voip_subscribers a, billing.voip_subscribers b, billing.voip_numbers n, provisioning.voip_dbaliases d +SET + d.is_primary=1 +WHERE + a.uuid=b.uuid + AND a.id = d.subscriber_id + AND b.primary_number_id=n.id + AND d.username LIKE CONCAT(n.cc, n.ac, n.sn); + +commit; \ No newline at end of file