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.
63 lines
2.6 KiB
63 lines
2.6 KiB
use provisioning;
|
|
|
|
set autocommit=0;
|
|
|
|
-- clean up before starting, just in case
|
|
delete from voip_cf_mappings;
|
|
delete from voip_cf_time_sets;
|
|
delete from voip_cf_destination_sets;
|
|
delete from voip_cf_destinations;
|
|
delete from voip_cf_periods;
|
|
|
|
-- create destination sets
|
|
insert into voip_cf_destination_sets (subscriber_id, name)
|
|
select up.subscriber_id, concat(p.attribute, '_set')
|
|
from voip_usr_preferences up, voip_preferences p
|
|
where p.attribute in ('cfu', 'cfna', 'cft', 'cfb')
|
|
and up.attribute_id = p.id;
|
|
|
|
-- fill destinations
|
|
insert into voip_cf_destinations (destination_set_id, destination, priority)
|
|
select s.id, up.value, 0
|
|
from voip_cf_destination_sets s, voip_usr_preferences up, voip_preferences p
|
|
where p.attribute in ('cfu', 'cfna', 'cft', 'cfb')
|
|
and p.id = up.attribute_id and up.subscriber_id = s.subscriber_id
|
|
and concat(p.attribute, '_set') = s.name;
|
|
|
|
-- fill cf mappings
|
|
insert into voip_cf_mappings(subscriber_id, type, destination_set_id)
|
|
select s.subscriber_id, substring_index(s.name, '_', 1), s.id
|
|
from voip_cf_destination_sets s;
|
|
|
|
-- now get rid of existing CF preferences
|
|
delete up.* from voip_usr_preferences up, voip_preferences p
|
|
where p.attribute in ('cfu', 'cfb', 'cfna', 'cft')
|
|
and up.attribute_id = p.id;
|
|
|
|
-- and change the preference settings to the new ones
|
|
update voip_preferences set type=1, data_type='int', internal=1, read_only=1, max_occur=0,
|
|
description='The id pointing to the "Call Forward Unconditional" entry in the voip_cf_mappings table',
|
|
modify_timestamp='1970-01-01 00:00:00'
|
|
where attribute='cfu';
|
|
|
|
update voip_preferences set type=1, data_type='int', internal=1, read_only=1, max_occur=0,
|
|
description='The id pointing to the "Call Forward Busy" entry in the voip_cf_mappings table',
|
|
modify_timestamp='1970-01-01 00:00:00'
|
|
where attribute='cfb';
|
|
|
|
update voip_preferences set type=1, data_type='int', internal=1, read_only=1, max_occur=0,
|
|
description='The id pointing to the "Call Forward Unavailable" entry in the voip_cf_mappings table',
|
|
modify_timestamp='1970-01-01 00:00:00'
|
|
where attribute='cfna';
|
|
|
|
update voip_preferences set type=1, data_type='int', internal=1, read_only=1, max_occur=0,
|
|
description='The id pointing to the "Call Forward Timeout" entry in the voip_cf_mappings table',
|
|
modify_timestamp='1970-01-01 00:00:00'
|
|
where attribute='cft';
|
|
|
|
-- finally copy over the vars from the mapping table
|
|
insert into voip_usr_preferences(subscriber_id, attribute_id, value) select m.subscriber_id, p.id, m.id from voip_cf_mappings m, voip_preferences p where m.type = p.attribute;
|
|
|
|
commit;
|
|
set autocommit=1;
|