mirror of https://github.com/sipwise/db-schema.git
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.
352 lines
14 KiB
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 ;
|