You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
db-schema/db_scripts/diff/15122.up

352 lines
14 KiB

use kamailio;
create table if not exists prof_preferences like usr_preferences;
use provisioning;
drop trigger if exists voip_pref_urepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_urepl_trig AFTER UPDATE ON voip_preferences
FOR EACH ROW BEGIN
IF OLD.attribute != NEW.attribute THEN
UPDATE kamailio.usr_preferences
SET attribute = NEW.attribute
WHERE attribute <=> OLD.attribute;
UPDATE kamailio.dom_preferences
SET attribute = NEW.attribute
WHERE attribute <=> OLD.attribute;
UPDATE kamailio.peer_preferences
SET attribute = NEW.attribute
WHERE attribute <=> OLD.attribute;
UPDATE kamailio.peer_preferences
SET attribute = NEW.attribute
WHERE attribute <=> OLD.attribute;
UPDATE kamailio.prof_preferences
SET attribute = NEW.attribute
WHERE attribute <=> OLD.attribute;
END IF;
END */;;
DELIMITER ;
drop trigger if exists voip_pref_drepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_drepl_trig BEFORE DELETE ON voip_preferences
FOR EACH ROW BEGIN
DELETE FROM voip_usr_preferences WHERE attribute_id <=> OLD.id;
DELETE FROM voip_dom_preferences WHERE attribute_id <=> OLD.id;
DELETE FROM voip_peer_preferences WHERE attribute_id <=> OLD.id;
DELETE FROM voip_prof_preferences WHERE attribute_id <=> OLD.id;
END */;;
DELIMITER ;
drop trigger if exists enum_set_default;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER enum_set_default AFTER INSERT ON voip_preferences_enum
FOR EACH ROW BEGIN
IF (NEW.dom_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
INSERT into voip_dom_preferences (domain_id, attribute_id, value)
SELECT id, NEW.preference_id, NEW.value
FROM voip_domains;
END IF;
IF (NEW.peer_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
INSERT into voip_peer_preferences (peer_host_id, attribute_id, value)
SELECT id, NEW.preference_id, NEW.value
FROM voip_peer_hosts;
END IF;
IF (NEW.usr_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
INSERT into voip_usr_preferences (subscriber_id, attribute_id, value)
SELECT id, NEW.preference_id, NEW.value
FROM voip_subscribers;
END IF;
IF (NEW.prof_pref=1 AND NEW.default_val = 1 AND NEW.value IS NOT NULL) THEN
INSERT into voip_prof_preferences (profile_id, attribute_id, value)
SELECT id, NEW.preference_id, NEW.value
FROM voip_subscriber_profiles;
END IF;
END */;;
DELIMITER ;
drop trigger if exists enum_update;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER enum_update AFTER UPDATE ON voip_preferences_enum
FOR EACH ROW BEGIN
UPDATE voip_usr_preferences SET value=NEW.value
WHERE attribute_id <=> NEW.preference_id AND value <=> OLD.value;
UPDATE voip_dom_preferences SET value=NEW.value
WHERE attribute_id <=> NEW.preference_id AND value <=> OLD.value;
UPDATE voip_peer_preferences SET value=NEW.value
WHERE attribute_id <=> NEW.preference_id AND value <=> OLD.value;
UPDATE voip_prof_preferences SET value=NEW.value
WHERE attribute_id <=> NEW.preference_id AND value <=> OLD.value;
END */;;
DELIMITER ;
drop trigger if exists voip_rwrulesets_urepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_rwrulesets_urepl_trig AFTER UPDATE ON voip_rewrite_rule_sets
FOR EACH ROW BEGIN
IF NEW.caller_in_dpid != OLD.caller_in_dpid THEN
UPDATE kamailio.dialplan SET dpid = NEW.caller_in_dpid WHERE dpid <=> OLD.caller_in_dpid;
UPDATE voip_usr_preferences a, voip_preferences b
SET a.value = NEW.caller_in_dpid
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
UPDATE voip_dom_preferences a, voip_preferences b
SET a.value = NEW.caller_in_dpid
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
UPDATE voip_peer_preferences a, voip_preferences b
SET a.value = NEW.caller_in_dpid
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
UPDATE voip_prof_preferences a, voip_preferences b
SET a.value = NEW.caller_in_dpid
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
END IF;
IF NEW.callee_in_dpid != OLD.callee_in_dpid THEN
UPDATE kamailio.dialplan SET dpid = NEW.callee_in_dpid WHERE dpid <=> OLD.callee_in_dpid;
UPDATE voip_usr_preferences a, voip_preferences b
SET a.value = NEW.callee_in_dpid
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
UPDATE voip_dom_preferences a, voip_preferences b
SET a.value = NEW.callee_in_dpid
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
UPDATE voip_peer_preferences a, voip_preferences b
SET a.value = NEW.callee_in_dpid
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
UPDATE voip_prof_preferences a, voip_preferences b
SET a.value = NEW.callee_in_dpid
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
END IF;
IF NEW.caller_out_dpid != OLD.caller_out_dpid THEN
UPDATE kamailio.dialplan SET dpid = NEW.caller_out_dpid WHERE dpid <=> OLD.caller_out_dpid;
UPDATE voip_usr_preferences a, voip_preferences b
SET a.value = NEW.caller_out_dpid
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
UPDATE voip_dom_preferences a, voip_preferences b
SET a.value = NEW.caller_out_dpid
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
UPDATE voip_peer_preferences a, voip_preferences b
SET a.value = NEW.caller_out_dpid
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
UPDATE voip_prof_preferences a, voip_preferences b
SET a.value = NEW.caller_out_dpid
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
END IF;
IF NEW.callee_out_dpid != OLD.callee_out_dpid THEN
UPDATE kamailio.dialplan SET dpid = NEW.callee_out_dpid WHERE dpid <=> OLD.callee_out_dpid;
UPDATE voip_usr_preferences a, voip_preferences b
SET a.value = NEW.callee_out_dpid
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
UPDATE voip_dom_preferences a, voip_preferences b
SET a.value = NEW.callee_out_dpid
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
UPDATE voip_peer_preferences a, voip_preferences b
SET a.value = NEW.callee_out_dpid
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
UPDATE voip_prof_preferences a, voip_preferences b
SET a.value = NEW.callee_out_dpid
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
END IF;
END */;;
DELIMITER ;
drop trigger if exists voip_rwrulesets_drepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_rwrulesets_drepl_trig BEFORE DELETE ON voip_rewrite_rule_sets
FOR EACH ROW BEGIN
DELETE a FROM voip_usr_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
DELETE a FROM voip_usr_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
DELETE a FROM voip_usr_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
DELETE a FROM voip_usr_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
DELETE a FROM voip_dom_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
DELETE a FROM voip_dom_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
DELETE a FROM voip_dom_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
DELETE a FROM voip_dom_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
DELETE a FROM voip_peer_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
DELETE a FROM voip_peer_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
DELETE a FROM voip_peer_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
DELETE a FROM voip_peer_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
DELETE a FROM voip_prof_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_in_dpid;
DELETE a FROM voip_prof_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_in_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_in_dpid;
DELETE a FROM voip_prof_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_caller_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.caller_out_dpid;
DELETE a FROM voip_prof_preferences a, voip_preferences b
WHERE b.attribute <=> 'rewrite_callee_out_dpid'
AND a.attribute_id <=> b.id
AND a.value <=> OLD.callee_out_dpid;
DELETE FROM kamailio.dialplan WHERE dpid <=> OLD.caller_in_dpid;
DELETE FROM kamailio.dialplan WHERE dpid <=> OLD.callee_in_dpid;
DELETE FROM kamailio.dialplan WHERE dpid <=> OLD.caller_out_dpid;
DELETE FROM kamailio.dialplan WHERE dpid <=> OLD.callee_out_dpid;
END */;;
DELIMITER ;
drop trigger if exists voip_profpref_crepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_profpref_crepl_trig AFTER INSERT ON voip_prof_preferences
FOR EACH ROW BEGIN
DECLARE attribute_name varchar(31);
DECLARE attribute_type tinyint(3);
SELECT attribute, type INTO attribute_name, attribute_type
FROM voip_preferences
WHERE id <=> NEW.attribute_id;
INSERT INTO kamailio.prof_preferences (uuid, attribute, type, value)
VALUES(NEW.profile_id, attribute_name, attribute_type, NEW.value);
END */;;
DELIMITER ;
drop trigger if exists voip_profpref_urepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_profpref_urepl_trig AFTER UPDATE ON voip_prof_preferences
FOR EACH ROW BEGIN
DECLARE old_attribute_name varchar(31);
DECLARE new_attribute_name varchar(31);
SELECT attribute INTO old_attribute_name
FROM voip_preferences
WHERE id <=> OLD.attribute_id;
SELECT attribute INTO new_attribute_name
FROM voip_preferences
WHERE id <=> NEW.attribute_id;
UPDATE kamailio.prof_preferences SET uuid = NEW.profile_id,
attribute = new_attribute_name,
value = NEW.value
WHERE uuid <=> OLD.profile_id
AND attribute <=> old_attribute_name
AND value <=> OLD.value;
END */;;
DELIMITER ;
drop trigger if exists voip_profpref_drepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_profpref_drepl_trig BEFORE DELETE ON voip_prof_preferences
FOR EACH ROW BEGIN
DECLARE attribute_name varchar(31);
SELECT attribute INTO attribute_name
FROM voip_preferences
WHERE id <=> OLD.attribute_id;
DELETE FROM kamailio.prof_preferences WHERE uuid <=> OLD.profile_id
AND attribute <=> attribute_name
AND value <=> OLD.value;
END */;;
DELIMITER ;
drop trigger if exists voip_prof_crepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_prof_crepl_trig AFTER INSERT ON voip_subscriber_profiles
FOR EACH ROW BEGIN
INSERT INTO voip_prof_preferences (profile_id, attribute_id, value)
SELECT NEW.id, p.id, pe.value
FROM voip_preferences p, voip_preferences_enum pe
WHERE p.id <=> preference_id AND p.prof_pref=1 AND pe.prof_pref=1 AND pe.default_val=1 AND pe.value IS NOT NULL;
END */;;
DELIMITER ;
drop trigger if exists voip_pref_drepl_trig;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_drepl_trig BEFORE DELETE ON voip_preferences
FOR EACH ROW BEGIN
DELETE FROM voip_usr_preferences WHERE attribute_id <=> OLD.id;
DELETE FROM voip_dom_preferences WHERE attribute_id <=> OLD.id;
DELETE FROM voip_peer_preferences WHERE attribute_id <=> OLD.id;
DELETE FROM voip_prof_preferences WHERE attribute_id <=> OLD.id;
END */;;
DELIMITER ;