1 """Add tables for pjsip 3 Revision ID: 43956d550a44 5 Create Date: 2013-09-30 13:23:59.676690 10 revision =
'43956d550a44' 11 down_revision =
'4da0c5f79a9c' 13 from alembic
import op
14 import sqlalchemy
as sa
15 from sqlalchemy.dialects.postgresql
import ENUM
18 YESNO_VALUES = [
'yes',
'no']
19 PJSIP_CID_PRIVACY_VALUES = [
'allowed_not_screened',
'allowed_passed_screened',
20 'allowed_failed_screened',
'allowed',
21 'prohib_not_screened',
'prohib_passed_screened',
22 'prohib_failed_screened',
'prohib',
'unavailable']
23 PJSIP_100REL_VALUES = [
'no',
'required',
'yes']
24 PJSIP_CONNECTED_LINE_METHOD_VALUES = [
'invite',
'reinvite',
'update']
25 PJSIP_DIRECT_MEDIA_GLARE_MITIGATION_VALUES = [
'none',
'outgoing',
'incoming']
26 PJSIP_DTMF_MODE_VALUES = [
'rfc4733',
'inband',
'info']
27 PJSIP_IDENTIFY_BY_VALUES = [
'username']
28 PJSIP_TIMERS_VALUES = [
'forced',
'no',
'required',
'yes']
29 PJSIP_MEDIA_ENCRYPTION_VALUES = [
'no',
'sdes',
'dtls']
30 PJSIP_T38UDPTL_EC_VALUES = [
'none',
'fec',
'redundancy']
31 PJSIP_DTLS_SETUP_VALUES = [
'active',
'passive',
'actpass']
32 PJSIP_AUTH_TYPE_VALUES = [
'md5',
'userpass']
33 PJSIP_TRANSPORT_METHOD_VALUES = [
'default',
'unspecified',
'tlsv1',
'sslv2',
35 PJSIP_TRANSPORT_PROTOCOL_VALUES = [
'udp',
'tcp',
'tls',
'ws',
'wss']
41 sa.Column(
'id', sa.String(40), nullable=
False, unique=
True),
42 sa.Column(
'transport', sa.String(40)),
43 sa.Column(
'aors', sa.String(200)),
44 sa.Column(
'auth', sa.String(40)),
45 sa.Column(
'context', sa.String(40)),
46 sa.Column(
'disallow', sa.String(200)),
47 sa.Column(
'allow', sa.String(200)),
48 sa.Column(
'direct_media', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
49 sa.Column(
'connected_line_method',
50 sa.Enum(*PJSIP_CONNECTED_LINE_METHOD_VALUES, name=
'pjsip_connected_line_method_values')),
51 sa.Column(
'direct_media_method',
52 sa.Enum(*PJSIP_CONNECTED_LINE_METHOD_VALUES, name=
'pjsip_connected_line_method_values')),
53 sa.Column(
'direct_media_glare_mitigation',
54 sa.Enum(*PJSIP_DIRECT_MEDIA_GLARE_MITIGATION_VALUES, name=
'pjsip_direct_media_glare_mitigation_values')),
55 sa.Column(
'disable_direct_media_on_nat', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
56 sa.Column(
'dtmf_mode', sa.Enum(*PJSIP_DTMF_MODE_VALUES, name=
'pjsip_dtmf_mode_values')),
57 sa.Column(
'external_media_address', sa.String(40)),
58 sa.Column(
'force_rport', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
59 sa.Column(
'ice_support', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
60 sa.Column(
'identify_by', sa.Enum(*PJSIP_IDENTIFY_BY_VALUES, name=
'pjsip_identify_by_values')),
61 sa.Column(
'mailboxes', sa.String(40)),
62 sa.Column(
'moh_suggest', sa.String(40)),
63 sa.Column(
'outbound_auth', sa.String(40)),
64 sa.Column(
'outbound_proxy', sa.String(40)),
65 sa.Column(
'rewrite_contact', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
66 sa.Column(
'rtp_ipv6', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
67 sa.Column(
'rtp_symmetric', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
68 sa.Column(
'send_diversion', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
69 sa.Column(
'send_pai', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
70 sa.Column(
'send_rpid', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
71 sa.Column(
'timers_min_se', sa.Integer),
72 sa.Column(
'timers', sa.Enum(*PJSIP_TIMERS_VALUES, name=
'pjsip_timer_values')),
73 sa.Column(
'timers_sess_expires', sa.Integer),
74 sa.Column(
'callerid', sa.String(40)),
75 sa.Column(
'callerid_privacy', sa.Enum(*PJSIP_CID_PRIVACY_VALUES, name=
'pjsip_cid_privacy_values')),
76 sa.Column(
'callerid_tag', sa.String(40)),
77 sa.Column(
'100rel', sa.Enum(*PJSIP_100REL_VALUES, name=
'pjsip_100rel_values')),
78 sa.Column(
'aggregate_mwi', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
79 sa.Column(
'trust_id_inbound', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
80 sa.Column(
'trust_id_outbound', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
81 sa.Column(
'use_ptime', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
82 sa.Column(
'use_avpf', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
83 sa.Column(
'media_encryption', sa.Enum(*PJSIP_MEDIA_ENCRYPTION_VALUES, name=
'pjsip_media_encryption_values')),
84 sa.Column(
'inband_progress', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
85 sa.Column(
'call_group', sa.String(40)),
86 sa.Column(
'pickup_group', sa.String(40)),
87 sa.Column(
'named_call_group', sa.String(40)),
88 sa.Column(
'named_pickup_group', sa.String(40)),
89 sa.Column(
'device_state_busy_at', sa.Integer),
90 sa.Column(
'fax_detect', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
91 sa.Column(
't38_udptl', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
92 sa.Column(
't38_udptl_ec', sa.Enum(*PJSIP_T38UDPTL_EC_VALUES, name=
'pjsip_t38udptl_ec_values')),
93 sa.Column(
't38_udptl_maxdatagram', sa.Integer),
94 sa.Column(
't38_udptl_nat', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
95 sa.Column(
't38_udptl_ipv6', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
96 sa.Column(
'tone_zone', sa.String(40)),
97 sa.Column(
'language', sa.String(40)),
98 sa.Column(
'one_touch_recording', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
99 sa.Column(
'record_on_feature', sa.String(40)),
100 sa.Column(
'record_off_feature', sa.String(40)),
101 sa.Column(
'rtp_engine', sa.String(40)),
102 sa.Column(
'allow_transfer', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
103 sa.Column(
'allow_subscribe', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
104 sa.Column(
'sdp_owner', sa.String(40)),
105 sa.Column(
'sdp_session', sa.String(40)),
106 sa.Column(
'tos_audio', sa.Integer),
107 sa.Column(
'tos_video', sa.Integer),
108 sa.Column(
'cos_audio', sa.Integer),
109 sa.Column(
'cos_video', sa.Integer),
110 sa.Column(
'sub_min_expiry', sa.Integer),
111 sa.Column(
'from_domain', sa.String(40)),
112 sa.Column(
'from_user', sa.String(40)),
113 sa.Column(
'mwi_fromuser', sa.String(40)),
114 sa.Column(
'dtls_verify', sa.String(40)),
115 sa.Column(
'dtls_rekey', sa.String(40)),
116 sa.Column(
'dtls_cert_file', sa.String(200)),
117 sa.Column(
'dtls_private_key', sa.String(200)),
118 sa.Column(
'dtls_cipher', sa.String(200)),
119 sa.Column(
'dtls_ca_file', sa.String(200)),
120 sa.Column(
'dtls_ca_path', sa.String(200)),
121 sa.Column(
'dtls_setup', sa.Enum(*PJSIP_DTLS_SETUP_VALUES, name=
'pjsip_dtls_setup_values')),
122 sa.Column(
'srtp_tag_32', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
125 op.create_index(
'ps_endpoints_id',
'ps_endpoints', [
'id'])
129 sa.Column(
'id', sa.String(40), nullable=
False, unique=
True),
130 sa.Column(
'auth_type', sa.Enum(*PJSIP_AUTH_TYPE_VALUES, name=
'pjsip_auth_type_values')),
131 sa.Column(
'nonce_lifetime', sa.Integer),
132 sa.Column(
'md5_cred', sa.String(40)),
133 sa.Column(
'password', sa.String(80)),
134 sa.Column(
'realm', sa.String(40)),
135 sa.Column(
'username', sa.String(40)),
138 op.create_index(
'ps_auths_id',
'ps_auths', [
'id'])
142 sa.Column(
'id', sa.String(40), nullable=
False, unique=
True),
143 sa.Column(
'contact', sa.String(40)),
144 sa.Column(
'default_expiration', sa.Integer),
145 sa.Column(
'mailboxes', sa.String(80)),
146 sa.Column(
'max_contacts', sa.Integer),
147 sa.Column(
'minimum_expiration', sa.Integer),
148 sa.Column(
'remove_existing', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
149 sa.Column(
'qualify_frequency', sa.Integer),
150 sa.Column(
'authenticate_qualify', sa.Enum(*YESNO_VALUES, name=
'yesno_values')),
153 op.create_index(
'ps_aors_id',
'ps_aors', [
'id'])
157 sa.Column(
'id', sa.String(40), nullable=
False, unique=
True),
158 sa.Column(
'uri', sa.String(40)),
159 sa.Column(
'expiration_time', sa.String(40)),
160 sa.Column(
'qualify_frequency', sa.Integer),
163 op.create_index(
'ps_contacts_id',
'ps_contacts', [
'id'])
167 sa.Column(
'id', sa.String(40), nullable=
False, unique=
True),
168 sa.Column(
'domain', sa.String(80)),
171 op.create_index(
'ps_domain_aliases_id',
'ps_domain_aliases', [
'id'])
174 'ps_endpoint_id_ips',
175 sa.Column(
'id', sa.String(40), nullable=
False, unique=
True),
176 sa.Column(
'endpoint', sa.String(40)),
177 sa.Column(
'match', sa.String(80)),
180 op.create_index(
'ps_endpoint_id_ips_id',
181 'ps_endpoint_id_ips', [
'id'])
185 context = op.get_context()
187 op.drop_table(
'ps_endpoints')
188 op.drop_table(
'ps_auths')
189 op.drop_table(
'ps_aors')
190 op.drop_table(
'ps_contacts')
191 op.drop_table(
'ps_domain_aliases')
192 op.drop_table(
'ps_endpoint_id_ips')
194 enums = [
'yesno_values',
195 'pjsip_100rel_values',
'pjsip_auth_type_values',
'pjsip_cid_privacy_values',
196 'pjsip_connected_line_method_values',
'pjsip_direct_media_glare_mitigation_values',
197 'pjsip_dtls_setup_values',
'pjsip_dtmf_mode_values',
'pjsip_identify_by_values',
198 'pjsip_media_encryption_values',
'pjsip_t38udptl_ec_values',
'pjsip_timer_values']
200 if context.bind.dialect.name ==
'postgresql':
202 ENUM(name=e).drop(op.get_bind(), checkfirst=
False)