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/7260.up

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;