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.
284 lines
14 KiB
284 lines
14 KiB
use provisioning;
|
|
|
|
set autocommit=0;
|
|
|
|
select id into @vpgid from voip_preference_groups where name = 'NAT and Media Flow Control';
|
|
select id into @srtpid from voip_preferences where attribute = 'srtp_transcoding';
|
|
select id into @avpfid from voip_preferences where attribute = 'rtcp_feedback';
|
|
|
|
insert into voip_preferences (voip_preference_groups_id, attribute, label, type, max_occur, usr_pref,
|
|
prof_pref, dom_pref, peer_pref, contract_pref, modify_timestamp, internal, expose_to_customer,
|
|
data_type, read_only, description)
|
|
values (@vpgid, 'transport_protocol', 'Media transport protocol', 0, 1, 1, 1, 1, 1, 0,
|
|
now(), 0, 0, 'enum', 0, 'Which transport protocol (e.g. RTP, SRTP, etc) to use');
|
|
select last_insert_id() into @vpid;
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'use domain default', NULL, 1, 0, 0, 0, 0, 1);
|
|
select last_insert_id() into @defid;
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'Transparent', 'transparent', 1, 0, 0, 0, 0, 0);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'Transparent', 'transparent', 0, 1, 1, 1, 0, 1);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'RTP/AVP (plain RTP)', 'RTP/AVP', 1, 1, 1, 1, 0, 0);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'RTP/SAVP (encrypted SRTP)', 'RTP/SAVP', 1, 1, 1, 1, 0, 0);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'RTP/AVPF (RTP with RTCP feedback)', 'RTP/AVPF', 1, 1, 1, 1, 0, 0);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'RTP/SAVPF (encrypted SRTP with RTCP feedback)', 'RTP/SAVPF', 1, 1, 1, 1, 0, 0);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'UDP/TLS/RTP/SAVP (encrypted SRTP using DTLS-SRTP)', 'UDP/TLS/RTP/SAVP', 1, 1, 1, 1, 0, 0);
|
|
|
|
insert into voip_preferences_enum (preference_id, label, value, usr_pref, prof_pref, dom_pref, peer_pref,
|
|
contract_pref, default_val) values
|
|
(@vpid, 'UDP/TLS/RTP/SAVPF (encrypted SRTP using DTLS-SRTP with RTCP feedback)',
|
|
'UDP/TLS/RTP/SAVPF', 1, 1, 1, 1, 0, 0);
|
|
|
|
|
|
-- translate old prefs to new
|
|
|
|
-- fully hard-coded prefs first
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/AVP', now() from
|
|
voip_usr_preferences a, voip_usr_preferences b where a.subscriber_id = b.subscriber_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/AVPF', now() from
|
|
voip_usr_preferences a, voip_usr_preferences b where a.subscriber_id = b.subscriber_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avpf';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/SAVP', now() from
|
|
voip_usr_preferences a, voip_usr_preferences b where a.subscriber_id = b.subscriber_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/SAVPF', now() from
|
|
voip_usr_preferences a, voip_usr_preferences b where a.subscriber_id = b.subscriber_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avpf';
|
|
|
|
-- dom
|
|
|
|
insert into voip_dom_preferences (domain_id, attribute_id, value, modify_timestamp)
|
|
select a.domain_id, @vpid, 'RTP/AVP', now() from
|
|
voip_dom_preferences a, voip_dom_preferences b where a.domain_id = b.domain_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_dom_preferences (domain_id, attribute_id, value, modify_timestamp)
|
|
select a.domain_id, @vpid, 'RTP/AVPF', now() from
|
|
voip_dom_preferences a, voip_dom_preferences b where a.domain_id = b.domain_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avpf';
|
|
|
|
insert into voip_dom_preferences (domain_id, attribute_id, value, modify_timestamp)
|
|
select a.domain_id, @vpid, 'RTP/SAVP', now() from
|
|
voip_dom_preferences a, voip_dom_preferences b where a.domain_id = b.domain_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_dom_preferences (domain_id, attribute_id, value, modify_timestamp)
|
|
select a.domain_id, @vpid, 'RTP/SAVPF', now() from
|
|
voip_dom_preferences a, voip_dom_preferences b where a.domain_id = b.domain_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avpf';
|
|
|
|
-- peer
|
|
|
|
insert into voip_peer_preferences (peer_host_id, attribute_id, value, modify_timestamp)
|
|
select a.peer_host_id, @vpid, 'RTP/AVP', now() from
|
|
voip_peer_preferences a, voip_peer_preferences b where a.peer_host_id = b.peer_host_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_peer_preferences (peer_host_id, attribute_id, value, modify_timestamp)
|
|
select a.peer_host_id, @vpid, 'RTP/AVPF', now() from
|
|
voip_peer_preferences a, voip_peer_preferences b where a.peer_host_id = b.peer_host_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avpf';
|
|
|
|
insert into voip_peer_preferences (peer_host_id, attribute_id, value, modify_timestamp)
|
|
select a.peer_host_id, @vpid, 'RTP/SAVP', now() from
|
|
voip_peer_preferences a, voip_peer_preferences b where a.peer_host_id = b.peer_host_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_peer_preferences (peer_host_id, attribute_id, value, modify_timestamp)
|
|
select a.peer_host_id, @vpid, 'RTP/SAVPF', now() from
|
|
voip_peer_preferences a, voip_peer_preferences b where a.peer_host_id = b.peer_host_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avpf';
|
|
|
|
-- prof
|
|
|
|
insert into voip_prof_preferences (profile_id, attribute_id, value, modify_timestamp)
|
|
select a.profile_id, @vpid, 'RTP/AVP', now() from
|
|
voip_prof_preferences a, voip_prof_preferences b where a.profile_id = b.profile_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_prof_preferences (profile_id, attribute_id, value, modify_timestamp)
|
|
select a.profile_id, @vpid, 'RTP/AVPF', now() from
|
|
voip_prof_preferences a, voip_prof_preferences b where a.profile_id = b.profile_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_rtp' and b.value = 'force_avpf';
|
|
|
|
insert into voip_prof_preferences (profile_id, attribute_id, value, modify_timestamp)
|
|
select a.profile_id, @vpid, 'RTP/SAVP', now() from
|
|
voip_prof_preferences a, voip_prof_preferences b where a.profile_id = b.profile_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avp';
|
|
|
|
insert into voip_prof_preferences (profile_id, attribute_id, value, modify_timestamp)
|
|
select a.profile_id, @vpid, 'RTP/SAVPF', now() from
|
|
voip_prof_preferences a, voip_prof_preferences b where a.profile_id = b.profile_id and
|
|
a.attribute_id = @srtpid and b.attribute_id = @avpfid and
|
|
a.value = 'force_srtp' and b.value = 'force_avpf';
|
|
|
|
|
|
-- if either value is given as transparent, we go with transparent
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'transparent', now() from
|
|
voip_usr_preferences a where
|
|
a.attribute_id in (@srtpid, @avpfid) and
|
|
a.value = 'transparent'
|
|
group by a.subscriber_id;
|
|
|
|
insert into voip_dom_preferences (domain_id, attribute_id, value, modify_timestamp)
|
|
select a.domain_id, @vpid, 'transparent', now() from
|
|
voip_dom_preferences a where
|
|
a.attribute_id in (@srtpid, @avpfid) and
|
|
a.value = 'transparent'
|
|
group by a.domain_id;
|
|
|
|
insert into voip_peer_preferences (peer_host_id, attribute_id, value, modify_timestamp)
|
|
select a.peer_host_id, @vpid, 'transparent', now() from
|
|
voip_peer_preferences a where
|
|
a.attribute_id in (@srtpid, @avpfid) and
|
|
a.value = 'transparent'
|
|
group by a.peer_host_id;
|
|
|
|
insert into voip_prof_preferences (profile_id, attribute_id, value, modify_timestamp)
|
|
select a.profile_id, @vpid, 'transparent', now() from
|
|
voip_prof_preferences a where
|
|
a.attribute_id in (@srtpid, @avpfid) and
|
|
a.value = 'transparent'
|
|
group by a.profile_id;
|
|
|
|
|
|
-- handle subscribers with one pref specified and the other one taken from dom prefs
|
|
|
|
-- srtp in usr, avpf in domain
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/AVP', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @avpfid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @avpfid
|
|
where a.attribute_id = @srtpid and
|
|
a.value = 'force_rtp' and b.value is null and d.value = 'force_avp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/AVPF', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @avpfid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @avpfid
|
|
where a.attribute_id = @srtpid and
|
|
a.value = 'force_rtp' and b.value is null and d.value = 'force_avpf';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/SAVP', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @avpfid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @avpfid
|
|
where a.attribute_id = @srtpid and
|
|
a.value = 'force_srtp' and b.value is null and d.value = 'force_avp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/SAVPF', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @avpfid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @avpfid
|
|
where a.attribute_id = @srtpid and
|
|
a.value = 'force_srtp' and b.value is null and d.value = 'force_avpf';
|
|
|
|
-- srtp in domain, avpf in usr
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/AVP', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @srtpid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @srtpid
|
|
where a.attribute_id = @avpfid and
|
|
a.value = 'force_avp' and b.value is null and d.value = 'force_rtp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/AVPF', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @srtpid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @srtpid
|
|
where a.attribute_id = @avpfid and
|
|
a.value = 'force_avpf' and b.value is null and d.value = 'force_rtp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/SAVP', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @srtpid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @srtpid
|
|
where a.attribute_id = @avpfid and
|
|
a.value = 'force_avp' and b.value is null and d.value = 'force_srtp';
|
|
|
|
insert into voip_usr_preferences (subscriber_id, attribute_id, value, modify_timestamp)
|
|
select a.subscriber_id, @vpid, 'RTP/SAVPF', now() from
|
|
voip_usr_preferences a left join voip_usr_preferences b on a.subscriber_id = b.subscriber_id
|
|
and b.attribute_id = @srtpid
|
|
left join voip_subscribers c on c.id = a.subscriber_id
|
|
left join voip_dom_preferences d on d.domain_id = c.domain_id and d.attribute_id = @srtpid
|
|
where a.attribute_id = @avpfid and
|
|
a.value = 'force_avpf' and b.value is null and d.value = 'force_srtp';
|
|
|
|
|
|
-- finally, delete old prefs
|
|
|
|
delete from voip_usr_preferences where attribute_id in (@srtpid, @avpfid);
|
|
delete from voip_dom_preferences where attribute_id in (@srtpid, @avpfid);
|
|
delete from voip_peer_preferences where attribute_id in (@srtpid, @avpfid);
|
|
delete from voip_prof_preferences where attribute_id in (@srtpid, @avpfid);
|
|
delete from voip_preferences_enum where preference_id in (@srtpid, @avpfid);
|
|
delete from voip_preferences where id in (@srtpid, @avpfid);
|
|
|
|
|
|
commit;
|
|
set autocommit=1;
|