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.
34 lines
1.7 KiB
34 lines
1.7 KiB
USE provisioning;
|
|
SET autocommit=1;
|
|
|
|
CREATE TABLE `voip_subscriber_location_mappings` (
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
`subscriber_id` int(11) unsigned NOT NULL,
|
|
`location` varchar(255) NOT NULL,
|
|
`caller_pattern` varchar(255) DEFAULT NULL,
|
|
`callee_pattern` varchar(255) DEFAULT NULL,
|
|
`mode` ENUM ('add', 'replace','offline') NOT NULL DEFAULT 'replace',
|
|
`to_username` varchar(255) DEFAULT NULL,
|
|
`external_id` varchar(255) DEFAULT NULL,
|
|
`enabled` tinyint(1) NOT NULL DEFAULT '1',
|
|
PRIMARY KEY (`id`),
|
|
KEY `subscriber_id_idx` (`subscriber_id`),
|
|
KEY `external_id_idx` (`external_id`),
|
|
CONSTRAINT `v_subscriber_ref` FOREIGN KEY (`subscriber_id`) REFERENCES `voip_subscribers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
INSERT INTO voip_subscriber_location_mappings (subscriber_id, location, caller_pattern, callee_pattern, mode, to_username)
|
|
SELECT u.subscriber_id, u.value, '.+', '.+', COALESCE(u2.value, 'replace') as mode, a.username as to_username
|
|
FROM voip_preferences p
|
|
JOIN voip_preferences p2
|
|
JOIN voip_usr_preferences u ON u.attribute_id = p.id
|
|
LEFT OUTER JOIN voip_usr_preferences u2 ON u2.attribute_id = p2.id
|
|
LEFT OUTER JOIN voip_dbaliases a ON a.subscriber_id = u.subscriber_id AND a.devid_alias IS NOT NULL
|
|
WHERE p.attribute = 'location_from_subscriber'
|
|
AND p2.attribute = 'location_from_subscriber_mode'
|
|
AND u.subscriber_id = u2.subscriber_id;
|
|
|
|
DELETE e FROM voip_preferences_enum e JOIN voip_preferences p ON p.id = e.preference_id WHERE p.attribute = 'location_from_subscriber_mode';
|
|
DELETE FROM voip_preferences WHERE attribute = 'location_from_subscriber';
|
|
DELETE FROM voip_preferences WHERE attribute = 'location_from_subscriber_mode';
|