]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
realtime: Add database scripts for 13.8.0-rc1
authormmichelson <mmichelson@lunkwill>
Tue, 22 Mar 2016 18:21:16 +0000 (13:21 -0500)
committermmichelson <mmichelson@lunkwill>
Tue, 22 Mar 2016 18:21:16 +0000 (13:21 -0500)
12 files changed:
contrib/realtime/mssql/mssql_cdr.sql [new file with mode: 0644]
contrib/realtime/mssql/mssql_config.sql [new file with mode: 0644]
contrib/realtime/mssql/mssql_voicemail.sql [new file with mode: 0644]
contrib/realtime/mysql/mysql_cdr.sql [new file with mode: 0644]
contrib/realtime/mysql/mysql_config.sql [new file with mode: 0644]
contrib/realtime/mysql/mysql_voicemail.sql [new file with mode: 0644]
contrib/realtime/oracle/oracle_cdr.sql [new file with mode: 0644]
contrib/realtime/oracle/oracle_config.sql [new file with mode: 0644]
contrib/realtime/oracle/oracle_voicemail.sql [new file with mode: 0644]
contrib/realtime/postgresql/postgresql_cdr.sql [new file with mode: 0644]
contrib/realtime/postgresql/postgresql_config.sql [new file with mode: 0644]
contrib/realtime/postgresql/postgresql_voicemail.sql [new file with mode: 0644]

diff --git a/contrib/realtime/mssql/mssql_cdr.sql b/contrib/realtime/mssql/mssql_cdr.sql
new file mode 100644 (file)
index 0000000..d342515
--- /dev/null
@@ -0,0 +1,44 @@
+BEGIN TRANSACTION;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+GO
+
+-- Running upgrade  -> 210693f3123d
+
+CREATE TABLE cdr (
+    accountcode VARCHAR(20) NULL, 
+    src VARCHAR(80) NULL, 
+    dst VARCHAR(80) NULL, 
+    dcontext VARCHAR(80) NULL, 
+    clid VARCHAR(80) NULL, 
+    channel VARCHAR(80) NULL, 
+    dstchannel VARCHAR(80) NULL, 
+    lastapp VARCHAR(80) NULL, 
+    lastdata VARCHAR(80) NULL, 
+    start DATETIME NULL, 
+    answer DATETIME NULL, 
+    [end] DATETIME NULL, 
+    duration INTEGER NULL, 
+    billsec INTEGER NULL, 
+    disposition VARCHAR(45) NULL, 
+    amaflags VARCHAR(45) NULL, 
+    userfield VARCHAR(256) NULL, 
+    uniqueid VARCHAR(150) NULL, 
+    linkedid VARCHAR(150) NULL, 
+    peeraccount VARCHAR(20) NULL, 
+    sequence INTEGER NULL
+);
+
+GO
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
+
+GO
+
+COMMIT;
+
+GO
+
diff --git a/contrib/realtime/mssql/mssql_config.sql b/contrib/realtime/mssql/mssql_config.sql
new file mode 100644 (file)
index 0000000..7402db5
--- /dev/null
@@ -0,0 +1,1296 @@
+BEGIN TRANSACTION;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+GO
+
+-- Running upgrade  -> 4da0c5f79a9c
+
+CREATE TABLE sippeers (
+    id INTEGER NOT NULL IDENTITY(1,1), 
+    name VARCHAR(40) NOT NULL, 
+    ipaddr VARCHAR(45) NULL, 
+    port INTEGER NULL, 
+    regseconds INTEGER NULL, 
+    defaultuser VARCHAR(40) NULL, 
+    fullcontact VARCHAR(80) NULL, 
+    regserver VARCHAR(20) NULL, 
+    useragent VARCHAR(20) NULL, 
+    lastms INTEGER NULL, 
+    host VARCHAR(40) NULL, 
+    type VARCHAR(6) NULL, 
+    context VARCHAR(40) NULL, 
+    permit VARCHAR(95) NULL, 
+    [deny] VARCHAR(95) NULL, 
+    secret VARCHAR(40) NULL, 
+    md5secret VARCHAR(40) NULL, 
+    remotesecret VARCHAR(40) NULL, 
+    transport VARCHAR(7) NULL, 
+    dtmfmode VARCHAR(9) NULL, 
+    directmedia VARCHAR(6) NULL, 
+    nat VARCHAR(29) NULL, 
+    callgroup VARCHAR(40) NULL, 
+    pickupgroup VARCHAR(40) NULL, 
+    language VARCHAR(40) NULL, 
+    disallow VARCHAR(200) NULL, 
+    allow VARCHAR(200) NULL, 
+    insecure VARCHAR(40) NULL, 
+    trustrpid VARCHAR(3) NULL, 
+    progressinband VARCHAR(5) NULL, 
+    promiscredir VARCHAR(3) NULL, 
+    useclientcode VARCHAR(3) NULL, 
+    accountcode VARCHAR(40) NULL, 
+    setvar VARCHAR(200) NULL, 
+    callerid VARCHAR(40) NULL, 
+    amaflags VARCHAR(40) NULL, 
+    callcounter VARCHAR(3) NULL, 
+    busylevel INTEGER NULL, 
+    allowoverlap VARCHAR(3) NULL, 
+    allowsubscribe VARCHAR(3) NULL, 
+    videosupport VARCHAR(3) NULL, 
+    maxcallbitrate INTEGER NULL, 
+    rfc2833compensate VARCHAR(3) NULL, 
+    mailbox VARCHAR(40) NULL, 
+    [session-timers] VARCHAR(9) NULL, 
+    [session-expires] INTEGER NULL, 
+    [session-minse] INTEGER NULL, 
+    [session-refresher] VARCHAR(3) NULL, 
+    t38pt_usertpsource VARCHAR(40) NULL, 
+    regexten VARCHAR(40) NULL, 
+    fromdomain VARCHAR(40) NULL, 
+    fromuser VARCHAR(40) NULL, 
+    qualify VARCHAR(40) NULL, 
+    defaultip VARCHAR(45) NULL, 
+    rtptimeout INTEGER NULL, 
+    rtpholdtimeout INTEGER NULL, 
+    sendrpid VARCHAR(3) NULL, 
+    outboundproxy VARCHAR(40) NULL, 
+    callbackextension VARCHAR(40) NULL, 
+    timert1 INTEGER NULL, 
+    timerb INTEGER NULL, 
+    qualifyfreq INTEGER NULL, 
+    constantssrc VARCHAR(3) NULL, 
+    contactpermit VARCHAR(95) NULL, 
+    contactdeny VARCHAR(95) NULL, 
+    usereqphone VARCHAR(3) NULL, 
+    textsupport VARCHAR(3) NULL, 
+    faxdetect VARCHAR(3) NULL, 
+    buggymwi VARCHAR(3) NULL, 
+    auth VARCHAR(40) NULL, 
+    fullname VARCHAR(40) NULL, 
+    trunkname VARCHAR(40) NULL, 
+    cid_number VARCHAR(40) NULL, 
+    callingpres VARCHAR(21) NULL, 
+    mohinterpret VARCHAR(40) NULL, 
+    mohsuggest VARCHAR(40) NULL, 
+    parkinglot VARCHAR(40) NULL, 
+    hasvoicemail VARCHAR(3) NULL, 
+    subscribemwi VARCHAR(3) NULL, 
+    vmexten VARCHAR(40) NULL, 
+    autoframing VARCHAR(3) NULL, 
+    rtpkeepalive INTEGER NULL, 
+    [call-limit] INTEGER NULL, 
+    g726nonstandard VARCHAR(3) NULL, 
+    ignoresdpversion VARCHAR(3) NULL, 
+    allowtransfer VARCHAR(3) NULL, 
+    dynamic VARCHAR(3) NULL, 
+    path VARCHAR(256) NULL, 
+    supportpath VARCHAR(3) NULL, 
+    PRIMARY KEY (id), 
+    UNIQUE (name), 
+    CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')), 
+    CONSTRAINT sip_transport_values CHECK (transport IN ('udp', 'tcp', 'tls', 'ws', 'wss', 'udp,tcp', 'tcp,udp')), 
+    CONSTRAINT sip_dtmfmode_values CHECK (dtmfmode IN ('rfc2833', 'info', 'shortinfo', 'inband', 'auto')), 
+    CONSTRAINT sip_directmedia_values CHECK (directmedia IN ('yes', 'no', 'nonat', 'update')), 
+    CONSTRAINT yes_no_values CHECK (trustrpid IN ('yes', 'no')), 
+    CONSTRAINT sip_progressinband_values CHECK (progressinband IN ('yes', 'no', 'never')), 
+    CONSTRAINT yes_no_values CHECK (promiscredir IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (useclientcode IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (callcounter IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (allowoverlap IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (allowsubscribe IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (videosupport IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (rfc2833compensate IN ('yes', 'no')), 
+    CONSTRAINT sip_session_timers_values CHECK ([session-timers] IN ('accept', 'refuse', 'originate')), 
+    CONSTRAINT sip_session_refresher_values CHECK ([session-refresher] IN ('uac', 'uas')), 
+    CONSTRAINT yes_no_values CHECK (sendrpid IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (constantssrc IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (usereqphone IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (textsupport IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (faxdetect IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (buggymwi IN ('yes', 'no')), 
+    CONSTRAINT sip_callingpres_values CHECK (callingpres IN ('allowed_not_screened', 'allowed_passed_screen', 'allowed_failed_screen', 'allowed', 'prohib_not_screened', 'prohib_passed_screen', 'prohib_failed_screen', 'prohib')), 
+    CONSTRAINT yes_no_values CHECK (hasvoicemail IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (subscribemwi IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (autoframing IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (g726nonstandard IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (ignoresdpversion IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (allowtransfer IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (dynamic IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (supportpath IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX sippeers_name ON sippeers (name);
+
+GO
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host);
+
+GO
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port);
+
+GO
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port);
+
+GO
+
+CREATE TABLE iaxfriends (
+    id INTEGER NOT NULL IDENTITY(1,1), 
+    name VARCHAR(40) NOT NULL, 
+    type VARCHAR(6) NULL, 
+    username VARCHAR(40) NULL, 
+    mailbox VARCHAR(40) NULL, 
+    secret VARCHAR(40) NULL, 
+    dbsecret VARCHAR(40) NULL, 
+    context VARCHAR(40) NULL, 
+    regcontext VARCHAR(40) NULL, 
+    host VARCHAR(40) NULL, 
+    ipaddr VARCHAR(40) NULL, 
+    port INTEGER NULL, 
+    defaultip VARCHAR(20) NULL, 
+    sourceaddress VARCHAR(20) NULL, 
+    mask VARCHAR(20) NULL, 
+    regexten VARCHAR(40) NULL, 
+    regseconds INTEGER NULL, 
+    accountcode VARCHAR(20) NULL, 
+    mohinterpret VARCHAR(20) NULL, 
+    mohsuggest VARCHAR(20) NULL, 
+    inkeys VARCHAR(40) NULL, 
+    outkeys VARCHAR(40) NULL, 
+    language VARCHAR(10) NULL, 
+    callerid VARCHAR(100) NULL, 
+    cid_number VARCHAR(40) NULL, 
+    sendani VARCHAR(3) NULL, 
+    fullname VARCHAR(40) NULL, 
+    trunk VARCHAR(3) NULL, 
+    auth VARCHAR(20) NULL, 
+    maxauthreq INTEGER NULL, 
+    requirecalltoken VARCHAR(4) NULL, 
+    encryption VARCHAR(6) NULL, 
+    transfer VARCHAR(9) NULL, 
+    jitterbuffer VARCHAR(3) NULL, 
+    forcejitterbuffer VARCHAR(3) NULL, 
+    disallow VARCHAR(200) NULL, 
+    allow VARCHAR(200) NULL, 
+    codecpriority VARCHAR(40) NULL, 
+    qualify VARCHAR(10) NULL, 
+    qualifysmoothing VARCHAR(3) NULL, 
+    qualifyfreqok VARCHAR(10) NULL, 
+    qualifyfreqnotok VARCHAR(10) NULL, 
+    timezone VARCHAR(20) NULL, 
+    adsi VARCHAR(3) NULL, 
+    amaflags VARCHAR(20) NULL, 
+    setvar VARCHAR(200) NULL, 
+    PRIMARY KEY (id), 
+    UNIQUE (name), 
+    CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')), 
+    CONSTRAINT yes_no_values CHECK (sendani IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (trunk IN ('yes', 'no')), 
+    CONSTRAINT iax_requirecalltoken_values CHECK (requirecalltoken IN ('yes', 'no', 'auto')), 
+    CONSTRAINT iax_encryption_values CHECK (encryption IN ('yes', 'no', 'aes128')), 
+    CONSTRAINT iax_transfer_values CHECK (transfer IN ('yes', 'no', 'mediaonly')), 
+    CONSTRAINT yes_no_values CHECK (jitterbuffer IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (forcejitterbuffer IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (qualifysmoothing IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (adsi IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name);
+
+GO
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host);
+
+GO
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port);
+
+GO
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port);
+
+GO
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port);
+
+GO
+
+CREATE TABLE voicemail (
+    uniqueid INTEGER NOT NULL IDENTITY(1,1), 
+    context VARCHAR(80) NOT NULL, 
+    mailbox VARCHAR(80) NOT NULL, 
+    password VARCHAR(80) NOT NULL, 
+    fullname VARCHAR(80) NULL, 
+    alias VARCHAR(80) NULL, 
+    email VARCHAR(80) NULL, 
+    pager VARCHAR(80) NULL, 
+    attach VARCHAR(3) NULL, 
+    attachfmt VARCHAR(10) NULL, 
+    serveremail VARCHAR(80) NULL, 
+    language VARCHAR(20) NULL, 
+    tz VARCHAR(30) NULL, 
+    deletevoicemail VARCHAR(3) NULL, 
+    saycid VARCHAR(3) NULL, 
+    sendvoicemail VARCHAR(3) NULL, 
+    review VARCHAR(3) NULL, 
+    tempgreetwarn VARCHAR(3) NULL, 
+    operator VARCHAR(3) NULL, 
+    envelope VARCHAR(3) NULL, 
+    sayduration INTEGER NULL, 
+    forcename VARCHAR(3) NULL, 
+    forcegreetings VARCHAR(3) NULL, 
+    callback VARCHAR(80) NULL, 
+    dialout VARCHAR(80) NULL, 
+    exitcontext VARCHAR(80) NULL, 
+    maxmsg INTEGER NULL, 
+    volgain NUMERIC(5, 2) NULL, 
+    imapuser VARCHAR(80) NULL, 
+    imappassword VARCHAR(80) NULL, 
+    imapserver VARCHAR(80) NULL, 
+    imapport VARCHAR(8) NULL, 
+    imapflags VARCHAR(80) NULL, 
+    stamp DATETIME NULL, 
+    PRIMARY KEY (uniqueid), 
+    CONSTRAINT yes_no_values CHECK (attach IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (deletevoicemail IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (saycid IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (sendvoicemail IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (review IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (tempgreetwarn IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (operator IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (envelope IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (forcename IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (forcegreetings IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox);
+
+GO
+
+CREATE INDEX voicemail_context ON voicemail (context);
+
+GO
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context);
+
+GO
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser);
+
+GO
+
+CREATE TABLE meetme (
+    bookid INTEGER NOT NULL IDENTITY(1,1), 
+    confno VARCHAR(80) NOT NULL, 
+    starttime DATETIME NULL, 
+    endtime DATETIME NULL, 
+    pin VARCHAR(20) NULL, 
+    adminpin VARCHAR(20) NULL, 
+    opts VARCHAR(20) NULL, 
+    adminopts VARCHAR(20) NULL, 
+    recordingfilename VARCHAR(80) NULL, 
+    recordingformat VARCHAR(10) NULL, 
+    maxusers INTEGER NULL, 
+    members INTEGER NOT NULL, 
+    PRIMARY KEY (bookid)
+);
+
+GO
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime);
+
+GO
+
+CREATE TABLE musiconhold (
+    name VARCHAR(80) NOT NULL, 
+    mode VARCHAR(10) NULL, 
+    directory VARCHAR(255) NULL, 
+    application VARCHAR(255) NULL, 
+    digit VARCHAR(1) NULL, 
+    sort VARCHAR(10) NULL, 
+    format VARCHAR(10) NULL, 
+    stamp DATETIME NULL, 
+    PRIMARY KEY (name), 
+    CONSTRAINT moh_mode_values CHECK (mode IN ('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3'))
+);
+
+GO
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
+
+GO
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TABLE ps_endpoints (
+    id VARCHAR(40) NOT NULL, 
+    transport VARCHAR(40) NULL, 
+    aors VARCHAR(200) NULL, 
+    auth VARCHAR(40) NULL, 
+    context VARCHAR(40) NULL, 
+    disallow VARCHAR(200) NULL, 
+    allow VARCHAR(200) NULL, 
+    direct_media VARCHAR(3) NULL, 
+    connected_line_method VARCHAR(8) NULL, 
+    direct_media_method VARCHAR(8) NULL, 
+    direct_media_glare_mitigation VARCHAR(8) NULL, 
+    disable_direct_media_on_nat VARCHAR(3) NULL, 
+    dtmf_mode VARCHAR(7) NULL, 
+    external_media_address VARCHAR(40) NULL, 
+    force_rport VARCHAR(3) NULL, 
+    ice_support VARCHAR(3) NULL, 
+    identify_by VARCHAR(8) NULL, 
+    mailboxes VARCHAR(40) NULL, 
+    moh_suggest VARCHAR(40) NULL, 
+    outbound_auth VARCHAR(40) NULL, 
+    outbound_proxy VARCHAR(40) NULL, 
+    rewrite_contact VARCHAR(3) NULL, 
+    rtp_ipv6 VARCHAR(3) NULL, 
+    rtp_symmetric VARCHAR(3) NULL, 
+    send_diversion VARCHAR(3) NULL, 
+    send_pai VARCHAR(3) NULL, 
+    send_rpid VARCHAR(3) NULL, 
+    timers_min_se INTEGER NULL, 
+    timers VARCHAR(8) NULL, 
+    timers_sess_expires INTEGER NULL, 
+    callerid VARCHAR(40) NULL, 
+    callerid_privacy VARCHAR(23) NULL, 
+    callerid_tag VARCHAR(40) NULL, 
+    [100rel] VARCHAR(8) NULL, 
+    aggregate_mwi VARCHAR(3) NULL, 
+    trust_id_inbound VARCHAR(3) NULL, 
+    trust_id_outbound VARCHAR(3) NULL, 
+    use_ptime VARCHAR(3) NULL, 
+    use_avpf VARCHAR(3) NULL, 
+    media_encryption VARCHAR(4) NULL, 
+    inband_progress VARCHAR(3) NULL, 
+    call_group VARCHAR(40) NULL, 
+    pickup_group VARCHAR(40) NULL, 
+    named_call_group VARCHAR(40) NULL, 
+    named_pickup_group VARCHAR(40) NULL, 
+    device_state_busy_at INTEGER NULL, 
+    fax_detect VARCHAR(3) NULL, 
+    t38_udptl VARCHAR(3) NULL, 
+    t38_udptl_ec VARCHAR(10) NULL, 
+    t38_udptl_maxdatagram INTEGER NULL, 
+    t38_udptl_nat VARCHAR(3) NULL, 
+    t38_udptl_ipv6 VARCHAR(3) NULL, 
+    tone_zone VARCHAR(40) NULL, 
+    language VARCHAR(40) NULL, 
+    one_touch_recording VARCHAR(3) NULL, 
+    record_on_feature VARCHAR(40) NULL, 
+    record_off_feature VARCHAR(40) NULL, 
+    rtp_engine VARCHAR(40) NULL, 
+    allow_transfer VARCHAR(3) NULL, 
+    allow_subscribe VARCHAR(3) NULL, 
+    sdp_owner VARCHAR(40) NULL, 
+    sdp_session VARCHAR(40) NULL, 
+    tos_audio INTEGER NULL, 
+    tos_video INTEGER NULL, 
+    cos_audio INTEGER NULL, 
+    cos_video INTEGER NULL, 
+    sub_min_expiry INTEGER NULL, 
+    from_domain VARCHAR(40) NULL, 
+    from_user VARCHAR(40) NULL, 
+    mwi_fromuser VARCHAR(40) NULL, 
+    dtls_verify VARCHAR(40) NULL, 
+    dtls_rekey VARCHAR(40) NULL, 
+    dtls_cert_file VARCHAR(200) NULL, 
+    dtls_private_key VARCHAR(200) NULL, 
+    dtls_cipher VARCHAR(200) NULL, 
+    dtls_ca_file VARCHAR(200) NULL, 
+    dtls_ca_path VARCHAR(200) NULL, 
+    dtls_setup VARCHAR(7) NULL, 
+    srtp_tag_32 VARCHAR(3) NULL, 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (direct_media IN ('yes', 'no')), 
+    CONSTRAINT pjsip_connected_line_method_values CHECK (connected_line_method IN ('invite', 'reinvite', 'update')), 
+    CONSTRAINT pjsip_connected_line_method_values CHECK (direct_media_method IN ('invite', 'reinvite', 'update')), 
+    CONSTRAINT pjsip_direct_media_glare_mitigation_values CHECK (direct_media_glare_mitigation IN ('none', 'outgoing', 'incoming')), 
+    CONSTRAINT yesno_values CHECK (disable_direct_media_on_nat IN ('yes', 'no')), 
+    CONSTRAINT pjsip_dtmf_mode_values CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info')), 
+    CONSTRAINT yesno_values CHECK (force_rport IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (ice_support IN ('yes', 'no')), 
+    CONSTRAINT pjsip_identify_by_values CHECK (identify_by IN ('username')), 
+    CONSTRAINT yesno_values CHECK (rewrite_contact IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (rtp_ipv6 IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (rtp_symmetric IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (send_diversion IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (send_pai IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (send_rpid IN ('yes', 'no')), 
+    CONSTRAINT pjsip_timer_values CHECK (timers IN ('forced', 'no', 'required', 'yes')), 
+    CONSTRAINT pjsip_cid_privacy_values CHECK (callerid_privacy IN ('allowed_not_screened', 'allowed_passed_screened', 'allowed_failed_screened', 'allowed', 'prohib_not_screened', 'prohib_passed_screened', 'prohib_failed_screened', 'prohib', 'unavailable')), 
+    CONSTRAINT pjsip_100rel_values CHECK ([100rel] IN ('no', 'required', 'yes')), 
+    CONSTRAINT yesno_values CHECK (aggregate_mwi IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (trust_id_inbound IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (trust_id_outbound IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (use_ptime IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (use_avpf IN ('yes', 'no')), 
+    CONSTRAINT pjsip_media_encryption_values CHECK (media_encryption IN ('no', 'sdes', 'dtls')), 
+    CONSTRAINT yesno_values CHECK (inband_progress IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (fax_detect IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (t38_udptl IN ('yes', 'no')), 
+    CONSTRAINT pjsip_t38udptl_ec_values CHECK (t38_udptl_ec IN ('none', 'fec', 'redundancy')), 
+    CONSTRAINT yesno_values CHECK (t38_udptl_nat IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (t38_udptl_ipv6 IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (one_touch_recording IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (allow_transfer IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (allow_subscribe IN ('yes', 'no')), 
+    CONSTRAINT pjsip_dtls_setup_values CHECK (dtls_setup IN ('active', 'passive', 'actpass')), 
+    CONSTRAINT yesno_values CHECK (srtp_tag_32 IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id);
+
+GO
+
+CREATE TABLE ps_auths (
+    id VARCHAR(40) NOT NULL, 
+    auth_type VARCHAR(8) NULL, 
+    nonce_lifetime INTEGER NULL, 
+    md5_cred VARCHAR(40) NULL, 
+    password VARCHAR(80) NULL, 
+    realm VARCHAR(40) NULL, 
+    username VARCHAR(40) NULL, 
+    UNIQUE (id), 
+    CONSTRAINT pjsip_auth_type_values CHECK (auth_type IN ('md5', 'userpass'))
+);
+
+GO
+
+CREATE INDEX ps_auths_id ON ps_auths (id);
+
+GO
+
+CREATE TABLE ps_aors (
+    id VARCHAR(40) NOT NULL, 
+    contact VARCHAR(40) NULL, 
+    default_expiration INTEGER NULL, 
+    mailboxes VARCHAR(80) NULL, 
+    max_contacts INTEGER NULL, 
+    minimum_expiration INTEGER NULL, 
+    remove_existing VARCHAR(3) NULL, 
+    qualify_frequency INTEGER NULL, 
+    authenticate_qualify VARCHAR(3) NULL, 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (remove_existing IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (authenticate_qualify IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_aors_id ON ps_aors (id);
+
+GO
+
+CREATE TABLE ps_contacts (
+    id VARCHAR(40) NOT NULL, 
+    uri VARCHAR(40) NULL, 
+    expiration_time VARCHAR(40) NULL, 
+    qualify_frequency INTEGER NULL, 
+    UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id);
+
+GO
+
+CREATE TABLE ps_domain_aliases (
+    id VARCHAR(40) NOT NULL, 
+    domain VARCHAR(80) NULL, 
+    UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id);
+
+GO
+
+CREATE TABLE ps_endpoint_id_ips (
+    id VARCHAR(40) NOT NULL, 
+    endpoint VARCHAR(40) NULL, 
+    match VARCHAR(80) NULL, 
+    UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id);
+
+GO
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c';
+
+GO
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+    id BIGINT NOT NULL IDENTITY(1,1), 
+    context VARCHAR(40) NOT NULL, 
+    exten VARCHAR(40) NOT NULL, 
+    priority INTEGER NOT NULL, 
+    app VARCHAR(40) NOT NULL, 
+    appdata VARCHAR(256) NOT NULL, 
+    PRIMARY KEY (id, context, exten, priority), 
+    UNIQUE (id)
+);
+
+GO
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44';
+
+GO
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TABLE ps_systems (
+    id VARCHAR(40) NOT NULL, 
+    timer_t1 INTEGER NULL, 
+    timer_b INTEGER NULL, 
+    compact_headers VARCHAR(3) NULL, 
+    threadpool_initial_size INTEGER NULL, 
+    threadpool_auto_increment INTEGER NULL, 
+    threadpool_idle_timeout INTEGER NULL, 
+    threadpool_max_size INTEGER NULL, 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (compact_headers IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_systems_id ON ps_systems (id);
+
+GO
+
+CREATE TABLE ps_globals (
+    id VARCHAR(40) NOT NULL, 
+    max_forwards INTEGER NULL, 
+    user_agent VARCHAR(40) NULL, 
+    default_outbound_endpoint VARCHAR(40) NULL, 
+    UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_globals_id ON ps_globals (id);
+
+GO
+
+CREATE TABLE ps_transports (
+    id VARCHAR(40) NOT NULL, 
+    async_operations INTEGER NULL, 
+    bind VARCHAR(40) NULL, 
+    ca_list_file VARCHAR(200) NULL, 
+    cert_file VARCHAR(200) NULL, 
+    cipher VARCHAR(200) NULL, 
+    domain VARCHAR(40) NULL, 
+    external_media_address VARCHAR(40) NULL, 
+    external_signaling_address VARCHAR(40) NULL, 
+    external_signaling_port INTEGER NULL, 
+    method VARCHAR(11) NULL, 
+    local_net VARCHAR(40) NULL, 
+    password VARCHAR(40) NULL, 
+    priv_key_file VARCHAR(200) NULL, 
+    protocol VARCHAR(3) NULL, 
+    require_client_cert VARCHAR(3) NULL, 
+    verify_client VARCHAR(3) NULL, 
+    verifiy_server VARCHAR(3) NULL, 
+    tos VARCHAR(3) NULL, 
+    cos VARCHAR(3) NULL, 
+    UNIQUE (id), 
+    CONSTRAINT pjsip_transport_method_values CHECK (method IN ('default', 'unspecified', 'tlsv1', 'sslv2', 'sslv3', 'sslv23')), 
+    CONSTRAINT pjsip_transport_protocol_values CHECK (protocol IN ('udp', 'tcp', 'tls', 'ws', 'wss')), 
+    CONSTRAINT yesno_values CHECK (require_client_cert IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (verify_client IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (tos IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (cos IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_transports_id ON ps_transports (id);
+
+GO
+
+CREATE TABLE ps_registrations (
+    id VARCHAR(40) NOT NULL, 
+    auth_rejection_permanent VARCHAR(3) NULL, 
+    client_uri VARCHAR(40) NULL, 
+    contact_user VARCHAR(40) NULL, 
+    expiration INTEGER NULL, 
+    max_retries INTEGER NULL, 
+    outbound_auth VARCHAR(40) NULL, 
+    outbound_proxy VARCHAR(40) NULL, 
+    retry_interval INTEGER NULL, 
+    forbidden_retry_interval INTEGER NULL, 
+    server_uri VARCHAR(40) NULL, 
+    transport VARCHAR(40) NULL, 
+    support_path VARCHAR(3) NULL, 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (auth_rejection_permanent IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id);
+
+GO
+
+ALTER TABLE ps_endpoints ADD media_address VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD redirect_method VARCHAR(9) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_redirect_method_values CHECK (redirect_method IN ('user', 'uri_core', 'uri_pjsip'));
+
+GO
+
+ALTER TABLE ps_endpoints ADD set_var TEXT NULL;
+
+GO
+
+EXEC sp_rename 'ps_endpoints.mwi_fromuser', mwi_from_user, 'COLUMN';
+
+GO
+
+ALTER TABLE ps_contacts ADD outbound_proxy VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD path TEXT NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD maximum_expiration INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD outbound_proxy VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD support_path VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537';
+
+GO
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD debug VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3';
+
+GO
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TABLE queues (
+    name VARCHAR(128) NOT NULL, 
+    musiconhold VARCHAR(128) NULL, 
+    announce VARCHAR(128) NULL, 
+    context VARCHAR(128) NULL, 
+    timeout INTEGER NULL, 
+    ringinuse VARCHAR(3) NULL, 
+    setinterfacevar VARCHAR(3) NULL, 
+    setqueuevar VARCHAR(3) NULL, 
+    setqueueentryvar VARCHAR(3) NULL, 
+    monitor_format VARCHAR(8) NULL, 
+    membermacro VARCHAR(512) NULL, 
+    membergosub VARCHAR(512) NULL, 
+    queue_youarenext VARCHAR(128) NULL, 
+    queue_thereare VARCHAR(128) NULL, 
+    queue_callswaiting VARCHAR(128) NULL, 
+    queue_quantity1 VARCHAR(128) NULL, 
+    queue_quantity2 VARCHAR(128) NULL, 
+    queue_holdtime VARCHAR(128) NULL, 
+    queue_minutes VARCHAR(128) NULL, 
+    queue_minute VARCHAR(128) NULL, 
+    queue_seconds VARCHAR(128) NULL, 
+    queue_thankyou VARCHAR(128) NULL, 
+    queue_callerannounce VARCHAR(128) NULL, 
+    queue_reporthold VARCHAR(128) NULL, 
+    announce_frequency INTEGER NULL, 
+    announce_to_first_user VARCHAR(3) NULL, 
+    min_announce_frequency INTEGER NULL, 
+    announce_round_seconds INTEGER NULL, 
+    announce_holdtime VARCHAR(128) NULL, 
+    announce_position VARCHAR(128) NULL, 
+    announce_position_limit INTEGER NULL, 
+    periodic_announce VARCHAR(50) NULL, 
+    periodic_announce_frequency INTEGER NULL, 
+    relative_periodic_announce VARCHAR(3) NULL, 
+    random_periodic_announce VARCHAR(3) NULL, 
+    retry INTEGER NULL, 
+    wrapuptime INTEGER NULL, 
+    penaltymemberslimit INTEGER NULL, 
+    autofill VARCHAR(3) NULL, 
+    monitor_type VARCHAR(128) NULL, 
+    autopause VARCHAR(3) NULL, 
+    autopausedelay INTEGER NULL, 
+    autopausebusy VARCHAR(3) NULL, 
+    autopauseunavail VARCHAR(3) NULL, 
+    maxlen INTEGER NULL, 
+    servicelevel INTEGER NULL, 
+    strategy VARCHAR(11) NULL, 
+    joinempty VARCHAR(128) NULL, 
+    leavewhenempty VARCHAR(128) NULL, 
+    reportholdtime VARCHAR(3) NULL, 
+    memberdelay INTEGER NULL, 
+    weight INTEGER NULL, 
+    timeoutrestart VARCHAR(3) NULL, 
+    defaultrule VARCHAR(128) NULL, 
+    timeoutpriority VARCHAR(128) NULL, 
+    PRIMARY KEY (name), 
+    CONSTRAINT yesno_values CHECK (ringinuse IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (setinterfacevar IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (setqueuevar IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (setqueueentryvar IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (announce_to_first_user IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (relative_periodic_announce IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (random_periodic_announce IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (autofill IN ('yes', 'no')), 
+    CONSTRAINT queue_autopause_values CHECK (autopause IN ('yes', 'no', 'all')), 
+    CONSTRAINT yesno_values CHECK (autopausebusy IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (autopauseunavail IN ('yes', 'no')), 
+    CONSTRAINT queue_strategy_values CHECK (strategy IN ('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered')), 
+    CONSTRAINT yesno_values CHECK (reportholdtime IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (timeoutrestart IN ('yes', 'no'))
+);
+
+GO
+
+CREATE TABLE queue_members (
+    queue_name VARCHAR(80) NOT NULL, 
+    interface VARCHAR(80) NOT NULL, 
+    uniqueid VARCHAR(80) NOT NULL, 
+    membername VARCHAR(80) NULL, 
+    state_interface VARCHAR(80) NULL, 
+    penalty INTEGER NULL, 
+    paused INTEGER NULL, 
+    PRIMARY KEY (queue_name, interface)
+);
+
+GO
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040';
+
+GO
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_audio VARCHAR(10);
+
+GO
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_video VARCHAR(10);
+
+GO
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio;
+
+GO
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video;
+
+GO
+
+ALTER TABLE ps_endpoints ADD cos_audio INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD cos_video INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_transports ALTER COLUMN tos VARCHAR(10);
+
+GO
+
+ALTER TABLE ps_transports DROP COLUMN cos;
+
+GO
+
+ALTER TABLE ps_transports ADD cos INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f';
+
+GO
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD message_context VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD user_agent VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd';
+
+GO
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals ALTER COLUMN user_agent VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN id VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN uri VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN user_agent VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_registrations ALTER COLUMN client_uri VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_registrations ALTER COLUMN server_uri VARCHAR(255);
+
+GO
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85';
+
+GO
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+    id VARCHAR(40) NOT NULL, 
+    packet VARCHAR(2048) NULL, 
+    src_name VARCHAR(128) NULL, 
+    src_port INTEGER NULL, 
+    transport_key VARCHAR(64) NULL, 
+    local_name VARCHAR(128) NULL, 
+    local_port INTEGER NULL, 
+    cseq INTEGER NULL, 
+    tag VARCHAR(128) NULL, 
+    endpoint VARCHAR(40) NULL, 
+    expires INTEGER NULL, 
+    UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id);
+
+GO
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c';
+
+GO
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD force_avp VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (force_avp IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_endpoints ADD media_use_received_transport VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_use_received_transport IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8';
+
+GO
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD accountcode VARCHAR(20) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e';
+
+GO
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers ALTER COLUMN useragent VARCHAR(255);
+
+GO
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e';
+
+GO
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid;
+
+GO
+
+ALTER TABLE queue_members ADD uniqueid INTEGER NOT NULL;
+
+GO
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid);
+
+GO
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b';
+
+GO
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+    rule_name VARCHAR(80) NOT NULL, 
+    time VARCHAR(32) NOT NULL, 
+    min_penalty VARCHAR(32) NOT NULL, 
+    max_penalty VARCHAR(32) NOT NULL
+);
+
+GO
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423';
+
+GO
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports ALTER COLUMN verifiy_server VARCHAR(3);
+
+GO
+
+EXEC sp_rename 'ps_transports.verifiy_server', verify_server, 'COLUMN';
+
+GO
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8';
+
+GO
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+ALTER TABLE sippeers DROP CONSTRAINT sip_directmedia_values;
+
+GO
+
+ALTER TABLE sippeers ALTER COLUMN directmedia VARCHAR(8);
+
+GO
+
+ALTER TABLE sippeers ADD CONSTRAINT sip_directmedia_values_v2 CHECK (directmedia IN ('yes', 'no', 'nonat', 'update', 'outgoing'));
+
+GO
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead';
+
+GO
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD media_encryption_optimistic VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_encryption_optimistic IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32';
+
+GO
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD user_eq_phone VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (user_eq_phone IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a';
+
+GO
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD endpoint_identifier_order VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e';
+
+GO
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD rpid_immediate VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (rpid_immediate IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44';
+
+GO
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+ALTER TABLE ps_endpoints DROP CONSTRAINT pjsip_dtmf_mode_values;
+
+GO
+
+ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode VARCHAR(7);
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_dtmf_mode_values_v2 CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info', 'auto'));
+
+GO
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96';
+
+GO
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD qualify_timeout INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD qualify_timeout INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec';
+
+GO
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD max_initial_qualify_time INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209';
+
+GO
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD g726_non_standard VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (g726_non_standard IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89';
+
+GO
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD rtp_keepalive INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f';
+
+GO
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD rtp_timeout INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD rtp_timeout_hold INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae';
+
+GO
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD default_from_user VARCHAR(80) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157';
+
+GO
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD fatal_retry_interval INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065';
+
+GO
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD keep_alive_interval INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05';
+
+GO
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors ALTER COLUMN contact VARCHAR(255);
+
+GO
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7';
+
+GO
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD bind_rtp_to_media_address VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (bind_rtp_to_media_address IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7';
+
+GO
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD regcontext VARCHAR(80) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5';
+
+GO
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors ALTER COLUMN qualify_timeout FLOAT;
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN qualify_timeout FLOAT;
+
+GO
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223';
+
+GO
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD disable_tcp_switch VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_systems ADD CONSTRAINT yesno_values CHECK (disable_tcp_switch IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_registrations ADD line VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_registrations ADD CONSTRAINT yesno_values CHECK (line IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_registrations ADD endpoint VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2';
+
+GO
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD allow_reload VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (allow_reload IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908';
+
+GO
+
+COMMIT;
+
+GO
+
diff --git a/contrib/realtime/mssql/mssql_voicemail.sql b/contrib/realtime/mssql/mssql_voicemail.sql
new file mode 100644 (file)
index 0000000..75cf56a
--- /dev/null
@@ -0,0 +1,54 @@
+BEGIN TRANSACTION;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+GO
+
+-- Running upgrade  -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+    dir VARCHAR(255) NOT NULL, 
+    msgnum INTEGER NOT NULL, 
+    context VARCHAR(80) NULL, 
+    macrocontext VARCHAR(80) NULL, 
+    callerid VARCHAR(80) NULL, 
+    origtime INTEGER NULL, 
+    duration INTEGER NULL, 
+    recording IMAGE NULL, 
+    flag VARCHAR(30) NULL, 
+    category VARCHAR(30) NULL, 
+    mailboxuser VARCHAR(30) NULL, 
+    mailboxcontext VARCHAR(30) NULL, 
+    msg_id VARCHAR(40) NULL
+);
+
+GO
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
+
+GO
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
+
+GO
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
+
+GO
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages ALTER COLUMN recording IMAGE;
+
+GO
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
+
+GO
+
+COMMIT;
+
+GO
+
diff --git a/contrib/realtime/mysql/mysql_cdr.sql b/contrib/realtime/mysql/mysql_cdr.sql
new file mode 100644 (file)
index 0000000..972f69a
--- /dev/null
@@ -0,0 +1,32 @@
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade  -> 210693f3123d
+
+CREATE TABLE cdr (
+    accountcode VARCHAR(20), 
+    src VARCHAR(80), 
+    dst VARCHAR(80), 
+    dcontext VARCHAR(80), 
+    clid VARCHAR(80), 
+    channel VARCHAR(80), 
+    dstchannel VARCHAR(80), 
+    lastapp VARCHAR(80), 
+    lastdata VARCHAR(80), 
+    start DATETIME, 
+    answer DATETIME, 
+    end DATETIME, 
+    duration INTEGER, 
+    billsec INTEGER, 
+    disposition VARCHAR(45), 
+    amaflags VARCHAR(45), 
+    userfield VARCHAR(256), 
+    uniqueid VARCHAR(150), 
+    linkedid VARCHAR(150), 
+    peeraccount VARCHAR(20), 
+    sequence INTEGER
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
+
diff --git a/contrib/realtime/mysql/mysql_config.sql b/contrib/realtime/mysql/mysql_config.sql
new file mode 100644 (file)
index 0000000..b52cf94
--- /dev/null
@@ -0,0 +1,823 @@
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade  -> 4da0c5f79a9c
+
+CREATE TABLE sippeers (
+    id INTEGER NOT NULL AUTO_INCREMENT, 
+    name VARCHAR(40) NOT NULL, 
+    ipaddr VARCHAR(45), 
+    port INTEGER, 
+    regseconds INTEGER, 
+    defaultuser VARCHAR(40), 
+    fullcontact VARCHAR(80), 
+    regserver VARCHAR(20), 
+    useragent VARCHAR(20), 
+    lastms INTEGER, 
+    host VARCHAR(40), 
+    type ENUM('friend','user','peer'), 
+    context VARCHAR(40), 
+    permit VARCHAR(95), 
+    deny VARCHAR(95), 
+    secret VARCHAR(40), 
+    md5secret VARCHAR(40), 
+    remotesecret VARCHAR(40), 
+    transport ENUM('udp','tcp','tls','ws','wss','udp,tcp','tcp,udp'), 
+    dtmfmode ENUM('rfc2833','info','shortinfo','inband','auto'), 
+    directmedia ENUM('yes','no','nonat','update'), 
+    nat VARCHAR(29), 
+    callgroup VARCHAR(40), 
+    pickupgroup VARCHAR(40), 
+    language VARCHAR(40), 
+    disallow VARCHAR(200), 
+    allow VARCHAR(200), 
+    insecure VARCHAR(40), 
+    trustrpid ENUM('yes','no'), 
+    progressinband ENUM('yes','no','never'), 
+    promiscredir ENUM('yes','no'), 
+    useclientcode ENUM('yes','no'), 
+    accountcode VARCHAR(40), 
+    setvar VARCHAR(200), 
+    callerid VARCHAR(40), 
+    amaflags VARCHAR(40), 
+    callcounter ENUM('yes','no'), 
+    busylevel INTEGER, 
+    allowoverlap ENUM('yes','no'), 
+    allowsubscribe ENUM('yes','no'), 
+    videosupport ENUM('yes','no'), 
+    maxcallbitrate INTEGER, 
+    rfc2833compensate ENUM('yes','no'), 
+    mailbox VARCHAR(40), 
+    `session-timers` ENUM('accept','refuse','originate'), 
+    `session-expires` INTEGER, 
+    `session-minse` INTEGER, 
+    `session-refresher` ENUM('uac','uas'), 
+    t38pt_usertpsource VARCHAR(40), 
+    regexten VARCHAR(40), 
+    fromdomain VARCHAR(40), 
+    fromuser VARCHAR(40), 
+    qualify VARCHAR(40), 
+    defaultip VARCHAR(45), 
+    rtptimeout INTEGER, 
+    rtpholdtimeout INTEGER, 
+    sendrpid ENUM('yes','no'), 
+    outboundproxy VARCHAR(40), 
+    callbackextension VARCHAR(40), 
+    timert1 INTEGER, 
+    timerb INTEGER, 
+    qualifyfreq INTEGER, 
+    constantssrc ENUM('yes','no'), 
+    contactpermit VARCHAR(95), 
+    contactdeny VARCHAR(95), 
+    usereqphone ENUM('yes','no'), 
+    textsupport ENUM('yes','no'), 
+    faxdetect ENUM('yes','no'), 
+    buggymwi ENUM('yes','no'), 
+    auth VARCHAR(40), 
+    fullname VARCHAR(40), 
+    trunkname VARCHAR(40), 
+    cid_number VARCHAR(40), 
+    callingpres ENUM('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib'), 
+    mohinterpret VARCHAR(40), 
+    mohsuggest VARCHAR(40), 
+    parkinglot VARCHAR(40), 
+    hasvoicemail ENUM('yes','no'), 
+    subscribemwi ENUM('yes','no'), 
+    vmexten VARCHAR(40), 
+    autoframing ENUM('yes','no'), 
+    rtpkeepalive INTEGER, 
+    `call-limit` INTEGER, 
+    g726nonstandard ENUM('yes','no'), 
+    ignoresdpversion ENUM('yes','no'), 
+    allowtransfer ENUM('yes','no'), 
+    dynamic ENUM('yes','no'), 
+    path VARCHAR(256), 
+    supportpath ENUM('yes','no'), 
+    PRIMARY KEY (id), 
+    UNIQUE (name)
+);
+
+CREATE INDEX sippeers_name ON sippeers (name);
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host);
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port);
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port);
+
+CREATE TABLE iaxfriends (
+    id INTEGER NOT NULL AUTO_INCREMENT, 
+    name VARCHAR(40) NOT NULL, 
+    type ENUM('friend','user','peer'), 
+    username VARCHAR(40), 
+    mailbox VARCHAR(40), 
+    secret VARCHAR(40), 
+    dbsecret VARCHAR(40), 
+    context VARCHAR(40), 
+    regcontext VARCHAR(40), 
+    host VARCHAR(40), 
+    ipaddr VARCHAR(40), 
+    port INTEGER, 
+    defaultip VARCHAR(20), 
+    sourceaddress VARCHAR(20), 
+    mask VARCHAR(20), 
+    regexten VARCHAR(40), 
+    regseconds INTEGER, 
+    accountcode VARCHAR(20), 
+    mohinterpret VARCHAR(20), 
+    mohsuggest VARCHAR(20), 
+    inkeys VARCHAR(40), 
+    outkeys VARCHAR(40), 
+    language VARCHAR(10), 
+    callerid VARCHAR(100), 
+    cid_number VARCHAR(40), 
+    sendani ENUM('yes','no'), 
+    fullname VARCHAR(40), 
+    trunk ENUM('yes','no'), 
+    auth VARCHAR(20), 
+    maxauthreq INTEGER, 
+    requirecalltoken ENUM('yes','no','auto'), 
+    encryption ENUM('yes','no','aes128'), 
+    transfer ENUM('yes','no','mediaonly'), 
+    jitterbuffer ENUM('yes','no'), 
+    forcejitterbuffer ENUM('yes','no'), 
+    disallow VARCHAR(200), 
+    allow VARCHAR(200), 
+    codecpriority VARCHAR(40), 
+    qualify VARCHAR(10), 
+    qualifysmoothing ENUM('yes','no'), 
+    qualifyfreqok VARCHAR(10), 
+    qualifyfreqnotok VARCHAR(10), 
+    timezone VARCHAR(20), 
+    adsi ENUM('yes','no'), 
+    amaflags VARCHAR(20), 
+    setvar VARCHAR(200), 
+    PRIMARY KEY (id), 
+    UNIQUE (name)
+);
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name);
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host);
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port);
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port);
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port);
+
+CREATE TABLE voicemail (
+    uniqueid INTEGER NOT NULL AUTO_INCREMENT, 
+    context VARCHAR(80) NOT NULL, 
+    mailbox VARCHAR(80) NOT NULL, 
+    password VARCHAR(80) NOT NULL, 
+    fullname VARCHAR(80), 
+    alias VARCHAR(80), 
+    email VARCHAR(80), 
+    pager VARCHAR(80), 
+    attach ENUM('yes','no'), 
+    attachfmt VARCHAR(10), 
+    serveremail VARCHAR(80), 
+    language VARCHAR(20), 
+    tz VARCHAR(30), 
+    deletevoicemail ENUM('yes','no'), 
+    saycid ENUM('yes','no'), 
+    sendvoicemail ENUM('yes','no'), 
+    review ENUM('yes','no'), 
+    tempgreetwarn ENUM('yes','no'), 
+    operator ENUM('yes','no'), 
+    envelope ENUM('yes','no'), 
+    sayduration INTEGER, 
+    forcename ENUM('yes','no'), 
+    forcegreetings ENUM('yes','no'), 
+    callback VARCHAR(80), 
+    dialout VARCHAR(80), 
+    exitcontext VARCHAR(80), 
+    maxmsg INTEGER, 
+    volgain NUMERIC(5, 2), 
+    imapuser VARCHAR(80), 
+    imappassword VARCHAR(80), 
+    imapserver VARCHAR(80), 
+    imapport VARCHAR(8), 
+    imapflags VARCHAR(80), 
+    stamp DATETIME, 
+    PRIMARY KEY (uniqueid)
+);
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox);
+
+CREATE INDEX voicemail_context ON voicemail (context);
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context);
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser);
+
+CREATE TABLE meetme (
+    bookid INTEGER NOT NULL AUTO_INCREMENT, 
+    confno VARCHAR(80) NOT NULL, 
+    starttime DATETIME, 
+    endtime DATETIME, 
+    pin VARCHAR(20), 
+    adminpin VARCHAR(20), 
+    opts VARCHAR(20), 
+    adminopts VARCHAR(20), 
+    recordingfilename VARCHAR(80), 
+    recordingformat VARCHAR(10), 
+    maxusers INTEGER, 
+    members INTEGER NOT NULL, 
+    PRIMARY KEY (bookid)
+);
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime);
+
+CREATE TABLE musiconhold (
+    name VARCHAR(80) NOT NULL, 
+    mode ENUM('custom','files','mp3nb','quietmp3nb','quietmp3'), 
+    directory VARCHAR(255), 
+    application VARCHAR(255), 
+    digit VARCHAR(1), 
+    sort VARCHAR(10), 
+    format VARCHAR(10), 
+    stamp DATETIME, 
+    PRIMARY KEY (name)
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TABLE ps_endpoints (
+    id VARCHAR(40) NOT NULL, 
+    transport VARCHAR(40), 
+    aors VARCHAR(200), 
+    auth VARCHAR(40), 
+    context VARCHAR(40), 
+    disallow VARCHAR(200), 
+    allow VARCHAR(200), 
+    direct_media ENUM('yes','no'), 
+    connected_line_method ENUM('invite','reinvite','update'), 
+    direct_media_method ENUM('invite','reinvite','update'), 
+    direct_media_glare_mitigation ENUM('none','outgoing','incoming'), 
+    disable_direct_media_on_nat ENUM('yes','no'), 
+    dtmf_mode ENUM('rfc4733','inband','info'), 
+    external_media_address VARCHAR(40), 
+    force_rport ENUM('yes','no'), 
+    ice_support ENUM('yes','no'), 
+    identify_by ENUM('username'), 
+    mailboxes VARCHAR(40), 
+    moh_suggest VARCHAR(40), 
+    outbound_auth VARCHAR(40), 
+    outbound_proxy VARCHAR(40), 
+    rewrite_contact ENUM('yes','no'), 
+    rtp_ipv6 ENUM('yes','no'), 
+    rtp_symmetric ENUM('yes','no'), 
+    send_diversion ENUM('yes','no'), 
+    send_pai ENUM('yes','no'), 
+    send_rpid ENUM('yes','no'), 
+    timers_min_se INTEGER, 
+    timers ENUM('forced','no','required','yes'), 
+    timers_sess_expires INTEGER, 
+    callerid VARCHAR(40), 
+    callerid_privacy ENUM('allowed_not_screened','allowed_passed_screened','allowed_failed_screened','allowed','prohib_not_screened','prohib_passed_screened','prohib_failed_screened','prohib','unavailable'), 
+    callerid_tag VARCHAR(40), 
+    `100rel` ENUM('no','required','yes'), 
+    aggregate_mwi ENUM('yes','no'), 
+    trust_id_inbound ENUM('yes','no'), 
+    trust_id_outbound ENUM('yes','no'), 
+    use_ptime ENUM('yes','no'), 
+    use_avpf ENUM('yes','no'), 
+    media_encryption ENUM('no','sdes','dtls'), 
+    inband_progress ENUM('yes','no'), 
+    call_group VARCHAR(40), 
+    pickup_group VARCHAR(40), 
+    named_call_group VARCHAR(40), 
+    named_pickup_group VARCHAR(40), 
+    device_state_busy_at INTEGER, 
+    fax_detect ENUM('yes','no'), 
+    t38_udptl ENUM('yes','no'), 
+    t38_udptl_ec ENUM('none','fec','redundancy'), 
+    t38_udptl_maxdatagram INTEGER, 
+    t38_udptl_nat ENUM('yes','no'), 
+    t38_udptl_ipv6 ENUM('yes','no'), 
+    tone_zone VARCHAR(40), 
+    language VARCHAR(40), 
+    one_touch_recording ENUM('yes','no'), 
+    record_on_feature VARCHAR(40), 
+    record_off_feature VARCHAR(40), 
+    rtp_engine VARCHAR(40), 
+    allow_transfer ENUM('yes','no'), 
+    allow_subscribe ENUM('yes','no'), 
+    sdp_owner VARCHAR(40), 
+    sdp_session VARCHAR(40), 
+    tos_audio INTEGER, 
+    tos_video INTEGER, 
+    cos_audio INTEGER, 
+    cos_video INTEGER, 
+    sub_min_expiry INTEGER, 
+    from_domain VARCHAR(40), 
+    from_user VARCHAR(40), 
+    mwi_fromuser VARCHAR(40), 
+    dtls_verify VARCHAR(40), 
+    dtls_rekey VARCHAR(40), 
+    dtls_cert_file VARCHAR(200), 
+    dtls_private_key VARCHAR(200), 
+    dtls_cipher VARCHAR(200), 
+    dtls_ca_file VARCHAR(200), 
+    dtls_ca_path VARCHAR(200), 
+    dtls_setup ENUM('active','passive','actpass'), 
+    srtp_tag_32 ENUM('yes','no'), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id);
+
+CREATE TABLE ps_auths (
+    id VARCHAR(40) NOT NULL, 
+    auth_type ENUM('md5','userpass'), 
+    nonce_lifetime INTEGER, 
+    md5_cred VARCHAR(40), 
+    password VARCHAR(80), 
+    realm VARCHAR(40), 
+    username VARCHAR(40), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_auths_id ON ps_auths (id);
+
+CREATE TABLE ps_aors (
+    id VARCHAR(40) NOT NULL, 
+    contact VARCHAR(40), 
+    default_expiration INTEGER, 
+    mailboxes VARCHAR(80), 
+    max_contacts INTEGER, 
+    minimum_expiration INTEGER, 
+    remove_existing ENUM('yes','no'), 
+    qualify_frequency INTEGER, 
+    authenticate_qualify ENUM('yes','no'), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_aors_id ON ps_aors (id);
+
+CREATE TABLE ps_contacts (
+    id VARCHAR(40) NOT NULL, 
+    uri VARCHAR(40), 
+    expiration_time VARCHAR(40), 
+    qualify_frequency INTEGER, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id);
+
+CREATE TABLE ps_domain_aliases (
+    id VARCHAR(40) NOT NULL, 
+    domain VARCHAR(80), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id);
+
+CREATE TABLE ps_endpoint_id_ips (
+    id VARCHAR(40) NOT NULL, 
+    endpoint VARCHAR(40), 
+    `match` VARCHAR(80), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id);
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c';
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+    id BIGINT NOT NULL AUTO_INCREMENT, 
+    context VARCHAR(40) NOT NULL, 
+    exten VARCHAR(40) NOT NULL, 
+    priority INTEGER NOT NULL, 
+    app VARCHAR(40) NOT NULL, 
+    appdata VARCHAR(256) NOT NULL, 
+    PRIMARY KEY (id, context, exten, priority), 
+    UNIQUE (id)
+);
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44';
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TABLE ps_systems (
+    id VARCHAR(40) NOT NULL, 
+    timer_t1 INTEGER, 
+    timer_b INTEGER, 
+    compact_headers ENUM('yes','no'), 
+    threadpool_initial_size INTEGER, 
+    threadpool_auto_increment INTEGER, 
+    threadpool_idle_timeout INTEGER, 
+    threadpool_max_size INTEGER, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_systems_id ON ps_systems (id);
+
+CREATE TABLE ps_globals (
+    id VARCHAR(40) NOT NULL, 
+    max_forwards INTEGER, 
+    user_agent VARCHAR(40), 
+    default_outbound_endpoint VARCHAR(40), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_globals_id ON ps_globals (id);
+
+CREATE TABLE ps_transports (
+    id VARCHAR(40) NOT NULL, 
+    async_operations INTEGER, 
+    bind VARCHAR(40), 
+    ca_list_file VARCHAR(200), 
+    cert_file VARCHAR(200), 
+    cipher VARCHAR(200), 
+    domain VARCHAR(40), 
+    external_media_address VARCHAR(40), 
+    external_signaling_address VARCHAR(40), 
+    external_signaling_port INTEGER, 
+    method ENUM('default','unspecified','tlsv1','sslv2','sslv3','sslv23'), 
+    local_net VARCHAR(40), 
+    password VARCHAR(40), 
+    priv_key_file VARCHAR(200), 
+    protocol ENUM('udp','tcp','tls','ws','wss'), 
+    require_client_cert ENUM('yes','no'), 
+    verify_client ENUM('yes','no'), 
+    verifiy_server ENUM('yes','no'), 
+    tos ENUM('yes','no'), 
+    cos ENUM('yes','no'), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_transports_id ON ps_transports (id);
+
+CREATE TABLE ps_registrations (
+    id VARCHAR(40) NOT NULL, 
+    auth_rejection_permanent ENUM('yes','no'), 
+    client_uri VARCHAR(40), 
+    contact_user VARCHAR(40), 
+    expiration INTEGER, 
+    max_retries INTEGER, 
+    outbound_auth VARCHAR(40), 
+    outbound_proxy VARCHAR(40), 
+    retry_interval INTEGER, 
+    forbidden_retry_interval INTEGER, 
+    server_uri VARCHAR(40), 
+    transport VARCHAR(40), 
+    support_path ENUM('yes','no'), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id);
+
+ALTER TABLE ps_endpoints ADD COLUMN media_address VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN redirect_method ENUM('user','uri_core','uri_pjsip');
+
+ALTER TABLE ps_endpoints ADD COLUMN set_var TEXT;
+
+ALTER TABLE ps_endpoints CHANGE mwi_fromuser mwi_from_user VARCHAR(40) NULL;
+
+ALTER TABLE ps_contacts ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN path TEXT;
+
+ALTER TABLE ps_aors ADD COLUMN maximum_expiration INTEGER;
+
+ALTER TABLE ps_aors ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_aors ADD COLUMN support_path ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537';
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD COLUMN debug VARCHAR(40);
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3';
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TABLE queues (
+    name VARCHAR(128) NOT NULL, 
+    musiconhold VARCHAR(128), 
+    announce VARCHAR(128), 
+    context VARCHAR(128), 
+    timeout INTEGER, 
+    ringinuse ENUM('yes','no'), 
+    setinterfacevar ENUM('yes','no'), 
+    setqueuevar ENUM('yes','no'), 
+    setqueueentryvar ENUM('yes','no'), 
+    monitor_format VARCHAR(8), 
+    membermacro VARCHAR(512), 
+    membergosub VARCHAR(512), 
+    queue_youarenext VARCHAR(128), 
+    queue_thereare VARCHAR(128), 
+    queue_callswaiting VARCHAR(128), 
+    queue_quantity1 VARCHAR(128), 
+    queue_quantity2 VARCHAR(128), 
+    queue_holdtime VARCHAR(128), 
+    queue_minutes VARCHAR(128), 
+    queue_minute VARCHAR(128), 
+    queue_seconds VARCHAR(128), 
+    queue_thankyou VARCHAR(128), 
+    queue_callerannounce VARCHAR(128), 
+    queue_reporthold VARCHAR(128), 
+    announce_frequency INTEGER, 
+    announce_to_first_user ENUM('yes','no'), 
+    min_announce_frequency INTEGER, 
+    announce_round_seconds INTEGER, 
+    announce_holdtime VARCHAR(128), 
+    announce_position VARCHAR(128), 
+    announce_position_limit INTEGER, 
+    periodic_announce VARCHAR(50), 
+    periodic_announce_frequency INTEGER, 
+    relative_periodic_announce ENUM('yes','no'), 
+    random_periodic_announce ENUM('yes','no'), 
+    retry INTEGER, 
+    wrapuptime INTEGER, 
+    penaltymemberslimit INTEGER, 
+    autofill ENUM('yes','no'), 
+    monitor_type VARCHAR(128), 
+    autopause ENUM('yes','no','all'), 
+    autopausedelay INTEGER, 
+    autopausebusy ENUM('yes','no'), 
+    autopauseunavail ENUM('yes','no'), 
+    maxlen INTEGER, 
+    servicelevel INTEGER, 
+    strategy ENUM('ringall','leastrecent','fewestcalls','random','rrmemory','linear','wrandom','rrordered'), 
+    joinempty VARCHAR(128), 
+    leavewhenempty VARCHAR(128), 
+    reportholdtime ENUM('yes','no'), 
+    memberdelay INTEGER, 
+    weight INTEGER, 
+    timeoutrestart ENUM('yes','no'), 
+    defaultrule VARCHAR(128), 
+    timeoutpriority VARCHAR(128), 
+    PRIMARY KEY (name)
+);
+
+CREATE TABLE queue_members (
+    queue_name VARCHAR(80) NOT NULL, 
+    interface VARCHAR(80) NOT NULL, 
+    uniqueid VARCHAR(80) NOT NULL, 
+    membername VARCHAR(80), 
+    state_interface VARCHAR(80), 
+    penalty INTEGER, 
+    paused INTEGER, 
+    PRIMARY KEY (queue_name, interface)
+);
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040';
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints MODIFY tos_audio VARCHAR(10) NULL;
+
+ALTER TABLE ps_endpoints MODIFY tos_video VARCHAR(10) NULL;
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio;
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_audio INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_video INTEGER;
+
+ALTER TABLE ps_transports MODIFY tos VARCHAR(10) NULL;
+
+ALTER TABLE ps_transports DROP COLUMN cos;
+
+ALTER TABLE ps_transports ADD COLUMN cos INTEGER;
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f';
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD COLUMN message_context VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN user_agent VARCHAR(40);
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd';
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals MODIFY user_agent VARCHAR(255) NULL;
+
+ALTER TABLE ps_contacts MODIFY id VARCHAR(255) NULL;
+
+ALTER TABLE ps_contacts MODIFY uri VARCHAR(255) NULL;
+
+ALTER TABLE ps_contacts MODIFY user_agent VARCHAR(255) NULL;
+
+ALTER TABLE ps_registrations MODIFY client_uri VARCHAR(255) NULL;
+
+ALTER TABLE ps_registrations MODIFY server_uri VARCHAR(255) NULL;
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85';
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+    id VARCHAR(40) NOT NULL, 
+    packet VARCHAR(2048), 
+    src_name VARCHAR(128), 
+    src_port INTEGER, 
+    transport_key VARCHAR(64), 
+    local_name VARCHAR(128), 
+    local_port INTEGER, 
+    cseq INTEGER, 
+    tag VARCHAR(128), 
+    endpoint VARCHAR(40), 
+    expires INTEGER, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id);
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c';
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD COLUMN force_avp ENUM('yes','no');
+
+ALTER TABLE ps_endpoints ADD COLUMN media_use_received_transport ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8';
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD COLUMN accountcode VARCHAR(20);
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e';
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers MODIFY useragent VARCHAR(255) NULL;
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e';
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid;
+
+ALTER TABLE queue_members ADD COLUMN uniqueid INTEGER NOT NULL;
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid);
+
+ALTER TABLE queue_members MODIFY uniqueid INTEGER NOT NULL AUTO_INCREMENT;
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b';
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+    rule_name VARCHAR(80) NOT NULL, 
+    time VARCHAR(32) NOT NULL, 
+    min_penalty VARCHAR(32) NOT NULL, 
+    max_penalty VARCHAR(32) NOT NULL
+);
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423';
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports CHANGE verifiy_server verify_server ENUM('yes','no') NULL;
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8';
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+ALTER TABLE sippeers MODIFY directmedia ENUM('yes','no','nonat','update','outgoing') NULL;
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead';
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD COLUMN media_encryption_optimistic ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32';
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD COLUMN user_eq_phone ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a';
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD COLUMN endpoint_identifier_order VARCHAR(40);
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e';
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD COLUMN rpid_immediate ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44';
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+ALTER TABLE ps_endpoints MODIFY dtmf_mode ENUM('rfc4733','inband','info','auto') NULL;
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96';
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD COLUMN qualify_timeout INTEGER;
+
+ALTER TABLE ps_contacts ADD COLUMN qualify_timeout INTEGER;
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec';
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD COLUMN max_initial_qualify_time INTEGER;
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209';
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD COLUMN g726_non_standard ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89';
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_keepalive INTEGER;
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f';
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout_hold INTEGER;
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae';
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD COLUMN default_from_user VARCHAR(80);
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157';
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD COLUMN fatal_retry_interval INTEGER;
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065';
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD COLUMN keep_alive_interval INTEGER;
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05';
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors MODIFY contact VARCHAR(255) NULL;
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7';
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD COLUMN bind_rtp_to_media_address ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7';
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD COLUMN regcontext VARCHAR(80);
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5';
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors MODIFY qualify_timeout FLOAT NULL;
+
+ALTER TABLE ps_contacts MODIFY qualify_timeout FLOAT NULL;
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223';
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD COLUMN disable_tcp_switch ENUM('yes','no');
+
+ALTER TABLE ps_registrations ADD COLUMN line ENUM('yes','no');
+
+ALTER TABLE ps_registrations ADD COLUMN endpoint VARCHAR(40);
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2';
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD COLUMN allow_reload ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908';
+
diff --git a/contrib/realtime/mysql/mysql_voicemail.sql b/contrib/realtime/mysql/mysql_voicemail.sql
new file mode 100644 (file)
index 0000000..1ee25c2
--- /dev/null
@@ -0,0 +1,34 @@
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade  -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+    dir VARCHAR(255) NOT NULL, 
+    msgnum INTEGER NOT NULL, 
+    context VARCHAR(80), 
+    macrocontext VARCHAR(80), 
+    callerid VARCHAR(80), 
+    origtime INTEGER, 
+    duration INTEGER, 
+    recording BLOB, 
+    flag VARCHAR(30), 
+    category VARCHAR(30), 
+    mailboxuser VARCHAR(30), 
+    mailboxcontext VARCHAR(30), 
+    msg_id VARCHAR(40)
+);
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages MODIFY recording BLOB(4294967295) NULL;
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
+
diff --git a/contrib/realtime/oracle/oracle_cdr.sql b/contrib/realtime/oracle/oracle_cdr.sql
new file mode 100644 (file)
index 0000000..81d599a
--- /dev/null
@@ -0,0 +1,38 @@
+CREATE TABLE alembic_version (
+    version_num VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+-- Running upgrade  -> 210693f3123d
+
+CREATE TABLE cdr (
+    accountcode VARCHAR2(20 CHAR), 
+    src VARCHAR2(80 CHAR), 
+    dst VARCHAR2(80 CHAR), 
+    dcontext VARCHAR2(80 CHAR), 
+    clid VARCHAR2(80 CHAR), 
+    channel VARCHAR2(80 CHAR), 
+    dstchannel VARCHAR2(80 CHAR), 
+    lastapp VARCHAR2(80 CHAR), 
+    lastdata VARCHAR2(80 CHAR), 
+    "start" DATE, 
+    answer DATE, 
+    end DATE, 
+    duration INTEGER, 
+    billsec INTEGER, 
+    disposition VARCHAR2(45 CHAR), 
+    amaflags VARCHAR2(45 CHAR), 
+    userfield VARCHAR2(256 CHAR), 
+    uniqueid VARCHAR2(150 CHAR), 
+    linkedid VARCHAR2(150 CHAR), 
+    peeraccount VARCHAR2(20 CHAR), 
+    sequence INTEGER
+)
+
+/
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d')
+
+/
+
diff --git a/contrib/realtime/oracle/oracle_config.sql b/contrib/realtime/oracle/oracle_config.sql
new file mode 100644 (file)
index 0000000..5e89c15
--- /dev/null
@@ -0,0 +1,1290 @@
+CREATE TABLE alembic_version (
+    version_num VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+-- Running upgrade  -> 4da0c5f79a9c
+
+CREATE TABLE sippeers (
+    id INTEGER NOT NULL, 
+    name VARCHAR2(40 CHAR) NOT NULL, 
+    ipaddr VARCHAR2(45 CHAR), 
+    port INTEGER, 
+    regseconds INTEGER, 
+    defaultuser VARCHAR2(40 CHAR), 
+    fullcontact VARCHAR2(80 CHAR), 
+    regserver VARCHAR2(20 CHAR), 
+    useragent VARCHAR2(20 CHAR), 
+    lastms INTEGER, 
+    host VARCHAR2(40 CHAR), 
+    type VARCHAR(6 CHAR), 
+    context VARCHAR2(40 CHAR), 
+    permit VARCHAR2(95 CHAR), 
+    deny VARCHAR2(95 CHAR), 
+    secret VARCHAR2(40 CHAR), 
+    md5secret VARCHAR2(40 CHAR), 
+    remotesecret VARCHAR2(40 CHAR), 
+    transport VARCHAR(7 CHAR), 
+    dtmfmode VARCHAR(9 CHAR), 
+    directmedia VARCHAR(6 CHAR), 
+    nat VARCHAR2(29 CHAR), 
+    callgroup VARCHAR2(40 CHAR), 
+    pickupgroup VARCHAR2(40 CHAR), 
+    language VARCHAR2(40 CHAR), 
+    disallow VARCHAR2(200 CHAR), 
+    allow VARCHAR2(200 CHAR), 
+    insecure VARCHAR2(40 CHAR), 
+    trustrpid VARCHAR(3 CHAR), 
+    progressinband VARCHAR(5 CHAR), 
+    promiscredir VARCHAR(3 CHAR), 
+    useclientcode VARCHAR(3 CHAR), 
+    accountcode VARCHAR2(40 CHAR), 
+    setvar VARCHAR2(200 CHAR), 
+    callerid VARCHAR2(40 CHAR), 
+    amaflags VARCHAR2(40 CHAR), 
+    callcounter VARCHAR(3 CHAR), 
+    busylevel INTEGER, 
+    allowoverlap VARCHAR(3 CHAR), 
+    allowsubscribe VARCHAR(3 CHAR), 
+    videosupport VARCHAR(3 CHAR), 
+    maxcallbitrate INTEGER, 
+    rfc2833compensate VARCHAR(3 CHAR), 
+    mailbox VARCHAR2(40 CHAR), 
+    "session-timers" VARCHAR(9 CHAR), 
+    "session-expires" INTEGER, 
+    "session-minse" INTEGER, 
+    "session-refresher" VARCHAR(3 CHAR), 
+    t38pt_usertpsource VARCHAR2(40 CHAR), 
+    regexten VARCHAR2(40 CHAR), 
+    fromdomain VARCHAR2(40 CHAR), 
+    fromuser VARCHAR2(40 CHAR), 
+    qualify VARCHAR2(40 CHAR), 
+    defaultip VARCHAR2(45 CHAR), 
+    rtptimeout INTEGER, 
+    rtpholdtimeout INTEGER, 
+    sendrpid VARCHAR(3 CHAR), 
+    outboundproxy VARCHAR2(40 CHAR), 
+    callbackextension VARCHAR2(40 CHAR), 
+    timert1 INTEGER, 
+    timerb INTEGER, 
+    qualifyfreq INTEGER, 
+    constantssrc VARCHAR(3 CHAR), 
+    contactpermit VARCHAR2(95 CHAR), 
+    contactdeny VARCHAR2(95 CHAR), 
+    usereqphone VARCHAR(3 CHAR), 
+    textsupport VARCHAR(3 CHAR), 
+    faxdetect VARCHAR(3 CHAR), 
+    buggymwi VARCHAR(3 CHAR), 
+    auth VARCHAR2(40 CHAR), 
+    fullname VARCHAR2(40 CHAR), 
+    trunkname VARCHAR2(40 CHAR), 
+    cid_number VARCHAR2(40 CHAR), 
+    callingpres VARCHAR(21 CHAR), 
+    mohinterpret VARCHAR2(40 CHAR), 
+    mohsuggest VARCHAR2(40 CHAR), 
+    parkinglot VARCHAR2(40 CHAR), 
+    hasvoicemail VARCHAR(3 CHAR), 
+    subscribemwi VARCHAR(3 CHAR), 
+    vmexten VARCHAR2(40 CHAR), 
+    autoframing VARCHAR(3 CHAR), 
+    rtpkeepalive INTEGER, 
+    "call-limit" INTEGER, 
+    g726nonstandard VARCHAR(3 CHAR), 
+    ignoresdpversion VARCHAR(3 CHAR), 
+    allowtransfer VARCHAR(3 CHAR), 
+    dynamic VARCHAR(3 CHAR), 
+    path VARCHAR2(256 CHAR), 
+    supportpath VARCHAR(3 CHAR), 
+    PRIMARY KEY (id), 
+    UNIQUE (name), 
+    CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')), 
+    CONSTRAINT sip_transport_values CHECK (transport IN ('udp', 'tcp', 'tls', 'ws', 'wss', 'udp,tcp', 'tcp,udp')), 
+    CONSTRAINT sip_dtmfmode_values CHECK (dtmfmode IN ('rfc2833', 'info', 'shortinfo', 'inband', 'auto')), 
+    CONSTRAINT sip_directmedia_values CHECK (directmedia IN ('yes', 'no', 'nonat', 'update')), 
+    CONSTRAINT yes_no_values CHECK (trustrpid IN ('yes', 'no')), 
+    CONSTRAINT sip_progressinband_values CHECK (progressinband IN ('yes', 'no', 'never')), 
+    CONSTRAINT yes_no_values CHECK (promiscredir IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (useclientcode IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (callcounter IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (allowoverlap IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (allowsubscribe IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (videosupport IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (rfc2833compensate IN ('yes', 'no')), 
+    CONSTRAINT sip_session_timers_values CHECK ("session-timers" IN ('accept', 'refuse', 'originate')), 
+    CONSTRAINT sip_session_refresher_values CHECK ("session-refresher" IN ('uac', 'uas')), 
+    CONSTRAINT yes_no_values CHECK (sendrpid IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (constantssrc IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (usereqphone IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (textsupport IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (faxdetect IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (buggymwi IN ('yes', 'no')), 
+    CONSTRAINT sip_callingpres_values CHECK (callingpres IN ('allowed_not_screened', 'allowed_passed_screen', 'allowed_failed_screen', 'allowed', 'prohib_not_screened', 'prohib_passed_screen', 'prohib_failed_screen', 'prohib')), 
+    CONSTRAINT yes_no_values CHECK (hasvoicemail IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (subscribemwi IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (autoframing IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (g726nonstandard IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (ignoresdpversion IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (allowtransfer IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (dynamic IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (supportpath IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX sippeers_name ON sippeers (name)
+
+/
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host)
+
+/
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port)
+
+/
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port)
+
+/
+
+CREATE TABLE iaxfriends (
+    id INTEGER NOT NULL, 
+    name VARCHAR2(40 CHAR) NOT NULL, 
+    type VARCHAR(6 CHAR), 
+    username VARCHAR2(40 CHAR), 
+    mailbox VARCHAR2(40 CHAR), 
+    secret VARCHAR2(40 CHAR), 
+    dbsecret VARCHAR2(40 CHAR), 
+    context VARCHAR2(40 CHAR), 
+    regcontext VARCHAR2(40 CHAR), 
+    host VARCHAR2(40 CHAR), 
+    ipaddr VARCHAR2(40 CHAR), 
+    port INTEGER, 
+    defaultip VARCHAR2(20 CHAR), 
+    sourceaddress VARCHAR2(20 CHAR), 
+    mask VARCHAR2(20 CHAR), 
+    regexten VARCHAR2(40 CHAR), 
+    regseconds INTEGER, 
+    accountcode VARCHAR2(20 CHAR), 
+    mohinterpret VARCHAR2(20 CHAR), 
+    mohsuggest VARCHAR2(20 CHAR), 
+    inkeys VARCHAR2(40 CHAR), 
+    outkeys VARCHAR2(40 CHAR), 
+    language VARCHAR2(10 CHAR), 
+    callerid VARCHAR2(100 CHAR), 
+    cid_number VARCHAR2(40 CHAR), 
+    sendani VARCHAR(3 CHAR), 
+    fullname VARCHAR2(40 CHAR), 
+    trunk VARCHAR(3 CHAR), 
+    auth VARCHAR2(20 CHAR), 
+    maxauthreq INTEGER, 
+    requirecalltoken VARCHAR(4 CHAR), 
+    encryption VARCHAR(6 CHAR), 
+    transfer VARCHAR(9 CHAR), 
+    jitterbuffer VARCHAR(3 CHAR), 
+    forcejitterbuffer VARCHAR(3 CHAR), 
+    disallow VARCHAR2(200 CHAR), 
+    allow VARCHAR2(200 CHAR), 
+    codecpriority VARCHAR2(40 CHAR), 
+    qualify VARCHAR2(10 CHAR), 
+    qualifysmoothing VARCHAR(3 CHAR), 
+    qualifyfreqok VARCHAR2(10 CHAR), 
+    qualifyfreqnotok VARCHAR2(10 CHAR), 
+    timezone VARCHAR2(20 CHAR), 
+    adsi VARCHAR(3 CHAR), 
+    amaflags VARCHAR2(20 CHAR), 
+    setvar VARCHAR2(200 CHAR), 
+    PRIMARY KEY (id), 
+    UNIQUE (name), 
+    CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')), 
+    CONSTRAINT yes_no_values CHECK (sendani IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (trunk IN ('yes', 'no')), 
+    CONSTRAINT iax_requirecalltoken_values CHECK (requirecalltoken IN ('yes', 'no', 'auto')), 
+    CONSTRAINT iax_encryption_values CHECK (encryption IN ('yes', 'no', 'aes128')), 
+    CONSTRAINT iax_transfer_values CHECK (transfer IN ('yes', 'no', 'mediaonly')), 
+    CONSTRAINT yes_no_values CHECK (jitterbuffer IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (forcejitterbuffer IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (qualifysmoothing IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (adsi IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name)
+
+/
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host)
+
+/
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port)
+
+/
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port)
+
+/
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port)
+
+/
+
+CREATE TABLE voicemail (
+    uniqueid INTEGER NOT NULL, 
+    context VARCHAR2(80 CHAR) NOT NULL, 
+    mailbox VARCHAR2(80 CHAR) NOT NULL, 
+    password VARCHAR2(80 CHAR) NOT NULL, 
+    fullname VARCHAR2(80 CHAR), 
+    alias VARCHAR2(80 CHAR), 
+    email VARCHAR2(80 CHAR), 
+    pager VARCHAR2(80 CHAR), 
+    attach VARCHAR(3 CHAR), 
+    attachfmt VARCHAR2(10 CHAR), 
+    serveremail VARCHAR2(80 CHAR), 
+    language VARCHAR2(20 CHAR), 
+    tz VARCHAR2(30 CHAR), 
+    deletevoicemail VARCHAR(3 CHAR), 
+    saycid VARCHAR(3 CHAR), 
+    sendvoicemail VARCHAR(3 CHAR), 
+    review VARCHAR(3 CHAR), 
+    tempgreetwarn VARCHAR(3 CHAR), 
+    operator VARCHAR(3 CHAR), 
+    envelope VARCHAR(3 CHAR), 
+    sayduration INTEGER, 
+    forcename VARCHAR(3 CHAR), 
+    forcegreetings VARCHAR(3 CHAR), 
+    callback VARCHAR2(80 CHAR), 
+    dialout VARCHAR2(80 CHAR), 
+    exitcontext VARCHAR2(80 CHAR), 
+    maxmsg INTEGER, 
+    volgain NUMERIC(5, 2), 
+    imapuser VARCHAR2(80 CHAR), 
+    imappassword VARCHAR2(80 CHAR), 
+    imapserver VARCHAR2(80 CHAR), 
+    imapport VARCHAR2(8 CHAR), 
+    imapflags VARCHAR2(80 CHAR), 
+    stamp DATE, 
+    PRIMARY KEY (uniqueid), 
+    CONSTRAINT yes_no_values CHECK (attach IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (deletevoicemail IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (saycid IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (sendvoicemail IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (review IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (tempgreetwarn IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (operator IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (envelope IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (forcename IN ('yes', 'no')), 
+    CONSTRAINT yes_no_values CHECK (forcegreetings IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox)
+
+/
+
+CREATE INDEX voicemail_context ON voicemail (context)
+
+/
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context)
+
+/
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser)
+
+/
+
+CREATE TABLE meetme (
+    bookid INTEGER NOT NULL, 
+    confno VARCHAR2(80 CHAR) NOT NULL, 
+    starttime DATE, 
+    endtime DATE, 
+    pin VARCHAR2(20 CHAR), 
+    adminpin VARCHAR2(20 CHAR), 
+    opts VARCHAR2(20 CHAR), 
+    adminopts VARCHAR2(20 CHAR), 
+    recordingfilename VARCHAR2(80 CHAR), 
+    recordingformat VARCHAR2(10 CHAR), 
+    maxusers INTEGER, 
+    members INTEGER NOT NULL, 
+    PRIMARY KEY (bookid)
+)
+
+/
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime)
+
+/
+
+CREATE TABLE musiconhold (
+    name VARCHAR2(80 CHAR) NOT NULL, 
+    "mode" VARCHAR(10 CHAR), 
+    directory VARCHAR2(255 CHAR), 
+    application VARCHAR2(255 CHAR), 
+    digit VARCHAR2(1 CHAR), 
+    sort VARCHAR2(10 CHAR), 
+    format VARCHAR2(10 CHAR), 
+    stamp DATE, 
+    PRIMARY KEY (name), 
+    CONSTRAINT moh_mode_values CHECK ("mode" IN ('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3'))
+)
+
+/
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c')
+
+/
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TABLE ps_endpoints (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    transport VARCHAR2(40 CHAR), 
+    aors VARCHAR2(200 CHAR), 
+    auth VARCHAR2(40 CHAR), 
+    context VARCHAR2(40 CHAR), 
+    disallow VARCHAR2(200 CHAR), 
+    allow VARCHAR2(200 CHAR), 
+    direct_media VARCHAR(3 CHAR), 
+    connected_line_method VARCHAR(8 CHAR), 
+    direct_media_method VARCHAR(8 CHAR), 
+    direct_media_glare_mitigation VARCHAR(8 CHAR), 
+    disable_direct_media_on_nat VARCHAR(3 CHAR), 
+    dtmf_mode VARCHAR(7 CHAR), 
+    external_media_address VARCHAR2(40 CHAR), 
+    force_rport VARCHAR(3 CHAR), 
+    ice_support VARCHAR(3 CHAR), 
+    identify_by VARCHAR(8 CHAR), 
+    mailboxes VARCHAR2(40 CHAR), 
+    moh_suggest VARCHAR2(40 CHAR), 
+    outbound_auth VARCHAR2(40 CHAR), 
+    outbound_proxy VARCHAR2(40 CHAR), 
+    rewrite_contact VARCHAR(3 CHAR), 
+    rtp_ipv6 VARCHAR(3 CHAR), 
+    rtp_symmetric VARCHAR(3 CHAR), 
+    send_diversion VARCHAR(3 CHAR), 
+    send_pai VARCHAR(3 CHAR), 
+    send_rpid VARCHAR(3 CHAR), 
+    timers_min_se INTEGER, 
+    timers VARCHAR(8 CHAR), 
+    timers_sess_expires INTEGER, 
+    callerid VARCHAR2(40 CHAR), 
+    callerid_privacy VARCHAR(23 CHAR), 
+    callerid_tag VARCHAR2(40 CHAR), 
+    "100rel" VARCHAR(8 CHAR), 
+    aggregate_mwi VARCHAR(3 CHAR), 
+    trust_id_inbound VARCHAR(3 CHAR), 
+    trust_id_outbound VARCHAR(3 CHAR), 
+    use_ptime VARCHAR(3 CHAR), 
+    use_avpf VARCHAR(3 CHAR), 
+    media_encryption VARCHAR(4 CHAR), 
+    inband_progress VARCHAR(3 CHAR), 
+    call_group VARCHAR2(40 CHAR), 
+    pickup_group VARCHAR2(40 CHAR), 
+    named_call_group VARCHAR2(40 CHAR), 
+    named_pickup_group VARCHAR2(40 CHAR), 
+    device_state_busy_at INTEGER, 
+    fax_detect VARCHAR(3 CHAR), 
+    t38_udptl VARCHAR(3 CHAR), 
+    t38_udptl_ec VARCHAR(10 CHAR), 
+    t38_udptl_maxdatagram INTEGER, 
+    t38_udptl_nat VARCHAR(3 CHAR), 
+    t38_udptl_ipv6 VARCHAR(3 CHAR), 
+    tone_zone VARCHAR2(40 CHAR), 
+    language VARCHAR2(40 CHAR), 
+    one_touch_recording VARCHAR(3 CHAR), 
+    record_on_feature VARCHAR2(40 CHAR), 
+    record_off_feature VARCHAR2(40 CHAR), 
+    rtp_engine VARCHAR2(40 CHAR), 
+    allow_transfer VARCHAR(3 CHAR), 
+    allow_subscribe VARCHAR(3 CHAR), 
+    sdp_owner VARCHAR2(40 CHAR), 
+    sdp_session VARCHAR2(40 CHAR), 
+    tos_audio INTEGER, 
+    tos_video INTEGER, 
+    cos_audio INTEGER, 
+    cos_video INTEGER, 
+    sub_min_expiry INTEGER, 
+    from_domain VARCHAR2(40 CHAR), 
+    from_user VARCHAR2(40 CHAR), 
+    mwi_fromuser VARCHAR2(40 CHAR), 
+    dtls_verify VARCHAR2(40 CHAR), 
+    dtls_rekey VARCHAR2(40 CHAR), 
+    dtls_cert_file VARCHAR2(200 CHAR), 
+    dtls_private_key VARCHAR2(200 CHAR), 
+    dtls_cipher VARCHAR2(200 CHAR), 
+    dtls_ca_file VARCHAR2(200 CHAR), 
+    dtls_ca_path VARCHAR2(200 CHAR), 
+    dtls_setup VARCHAR(7 CHAR), 
+    srtp_tag_32 VARCHAR(3 CHAR), 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (direct_media IN ('yes', 'no')), 
+    CONSTRAINT pjsip_connected_line_method_values CHECK (connected_line_method IN ('invite', 'reinvite', 'update')), 
+    CONSTRAINT pjsip_connected_line_method_values CHECK (direct_media_method IN ('invite', 'reinvite', 'update')), 
+    CONSTRAINT pjsip_direct_media_glare_mitigation_values CHECK (direct_media_glare_mitigation IN ('none', 'outgoing', 'incoming')), 
+    CONSTRAINT yesno_values CHECK (disable_direct_media_on_nat IN ('yes', 'no')), 
+    CONSTRAINT pjsip_dtmf_mode_values CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info')), 
+    CONSTRAINT yesno_values CHECK (force_rport IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (ice_support IN ('yes', 'no')), 
+    CONSTRAINT pjsip_identify_by_values CHECK (identify_by IN ('username')), 
+    CONSTRAINT yesno_values CHECK (rewrite_contact IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (rtp_ipv6 IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (rtp_symmetric IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (send_diversion IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (send_pai IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (send_rpid IN ('yes', 'no')), 
+    CONSTRAINT pjsip_timer_values CHECK (timers IN ('forced', 'no', 'required', 'yes')), 
+    CONSTRAINT pjsip_cid_privacy_values CHECK (callerid_privacy IN ('allowed_not_screened', 'allowed_passed_screened', 'allowed_failed_screened', 'allowed', 'prohib_not_screened', 'prohib_passed_screened', 'prohib_failed_screened', 'prohib', 'unavailable')), 
+    CONSTRAINT pjsip_100rel_values CHECK ("100rel" IN ('no', 'required', 'yes')), 
+    CONSTRAINT yesno_values CHECK (aggregate_mwi IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (trust_id_inbound IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (trust_id_outbound IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (use_ptime IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (use_avpf IN ('yes', 'no')), 
+    CONSTRAINT pjsip_media_encryption_values CHECK (media_encryption IN ('no', 'sdes', 'dtls')), 
+    CONSTRAINT yesno_values CHECK (inband_progress IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (fax_detect IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (t38_udptl IN ('yes', 'no')), 
+    CONSTRAINT pjsip_t38udptl_ec_values CHECK (t38_udptl_ec IN ('none', 'fec', 'redundancy')), 
+    CONSTRAINT yesno_values CHECK (t38_udptl_nat IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (t38_udptl_ipv6 IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (one_touch_recording IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (allow_transfer IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (allow_subscribe IN ('yes', 'no')), 
+    CONSTRAINT pjsip_dtls_setup_values CHECK (dtls_setup IN ('active', 'passive', 'actpass')), 
+    CONSTRAINT yesno_values CHECK (srtp_tag_32 IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id)
+
+/
+
+CREATE TABLE ps_auths (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    auth_type VARCHAR(8 CHAR), 
+    nonce_lifetime INTEGER, 
+    md5_cred VARCHAR2(40 CHAR), 
+    password VARCHAR2(80 CHAR), 
+    realm VARCHAR2(40 CHAR), 
+    username VARCHAR2(40 CHAR), 
+    UNIQUE (id), 
+    CONSTRAINT pjsip_auth_type_values CHECK (auth_type IN ('md5', 'userpass'))
+)
+
+/
+
+CREATE INDEX ps_auths_id ON ps_auths (id)
+
+/
+
+CREATE TABLE ps_aors (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    contact VARCHAR2(40 CHAR), 
+    default_expiration INTEGER, 
+    mailboxes VARCHAR2(80 CHAR), 
+    max_contacts INTEGER, 
+    minimum_expiration INTEGER, 
+    remove_existing VARCHAR(3 CHAR), 
+    qualify_frequency INTEGER, 
+    authenticate_qualify VARCHAR(3 CHAR), 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (remove_existing IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (authenticate_qualify IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_aors_id ON ps_aors (id)
+
+/
+
+CREATE TABLE ps_contacts (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    uri VARCHAR2(40 CHAR), 
+    expiration_time VARCHAR2(40 CHAR), 
+    qualify_frequency INTEGER, 
+    UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id)
+
+/
+
+CREATE TABLE ps_domain_aliases (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    domain VARCHAR2(80 CHAR), 
+    UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id)
+
+/
+
+CREATE TABLE ps_endpoint_id_ips (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    endpoint VARCHAR2(40 CHAR), 
+    match VARCHAR2(80 CHAR), 
+    UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id)
+
+/
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c'
+
+/
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+    id NUMBER(19) NOT NULL, 
+    context VARCHAR2(40 CHAR) NOT NULL, 
+    exten VARCHAR2(40 CHAR) NOT NULL, 
+    priority INTEGER NOT NULL, 
+    app VARCHAR2(40 CHAR) NOT NULL, 
+    appdata VARCHAR2(256 CHAR) NOT NULL, 
+    PRIMARY KEY (id, context, exten, priority), 
+    UNIQUE (id)
+)
+
+/
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44'
+
+/
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TABLE ps_systems (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    timer_t1 INTEGER, 
+    timer_b INTEGER, 
+    compact_headers VARCHAR(3 CHAR), 
+    threadpool_initial_size INTEGER, 
+    threadpool_auto_increment INTEGER, 
+    threadpool_idle_timeout INTEGER, 
+    threadpool_max_size INTEGER, 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (compact_headers IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_systems_id ON ps_systems (id)
+
+/
+
+CREATE TABLE ps_globals (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    max_forwards INTEGER, 
+    user_agent VARCHAR2(40 CHAR), 
+    default_outbound_endpoint VARCHAR2(40 CHAR), 
+    UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_globals_id ON ps_globals (id)
+
+/
+
+CREATE TABLE ps_transports (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    async_operations INTEGER, 
+    bind VARCHAR2(40 CHAR), 
+    ca_list_file VARCHAR2(200 CHAR), 
+    cert_file VARCHAR2(200 CHAR), 
+    cipher VARCHAR2(200 CHAR), 
+    domain VARCHAR2(40 CHAR), 
+    external_media_address VARCHAR2(40 CHAR), 
+    external_signaling_address VARCHAR2(40 CHAR), 
+    external_signaling_port INTEGER, 
+    method VARCHAR(11 CHAR), 
+    local_net VARCHAR2(40 CHAR), 
+    password VARCHAR2(40 CHAR), 
+    priv_key_file VARCHAR2(200 CHAR), 
+    protocol VARCHAR(3 CHAR), 
+    require_client_cert VARCHAR(3 CHAR), 
+    verify_client VARCHAR(3 CHAR), 
+    verifiy_server VARCHAR(3 CHAR), 
+    tos VARCHAR(3 CHAR), 
+    cos VARCHAR(3 CHAR), 
+    UNIQUE (id), 
+    CONSTRAINT pjsip_transport_method_values CHECK (method IN ('default', 'unspecified', 'tlsv1', 'sslv2', 'sslv3', 'sslv23')), 
+    CONSTRAINT pjsip_transport_protocol_values CHECK (protocol IN ('udp', 'tcp', 'tls', 'ws', 'wss')), 
+    CONSTRAINT yesno_values CHECK (require_client_cert IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (verify_client IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (tos IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (cos IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_transports_id ON ps_transports (id)
+
+/
+
+CREATE TABLE ps_registrations (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    auth_rejection_permanent VARCHAR(3 CHAR), 
+    client_uri VARCHAR2(40 CHAR), 
+    contact_user VARCHAR2(40 CHAR), 
+    expiration INTEGER, 
+    max_retries INTEGER, 
+    outbound_auth VARCHAR2(40 CHAR), 
+    outbound_proxy VARCHAR2(40 CHAR), 
+    retry_interval INTEGER, 
+    forbidden_retry_interval INTEGER, 
+    server_uri VARCHAR2(40 CHAR), 
+    transport VARCHAR2(40 CHAR), 
+    support_path VARCHAR(3 CHAR), 
+    UNIQUE (id), 
+    CONSTRAINT yesno_values CHECK (auth_rejection_permanent IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id)
+
+/
+
+ALTER TABLE ps_endpoints ADD media_address VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD redirect_method VARCHAR(9 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_redirect_method_values CHECK (redirect_method IN ('user', 'uri_core', 'uri_pjsip'))
+
+/
+
+ALTER TABLE ps_endpoints ADD set_var CLOB
+
+/
+
+ALTER TABLE ps_endpoints RENAME COLUMN mwi_fromuser TO mwi_from_user
+
+/
+
+ALTER TABLE ps_contacts ADD outbound_proxy VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD path CLOB
+
+/
+
+ALTER TABLE ps_aors ADD maximum_expiration INTEGER
+
+/
+
+ALTER TABLE ps_aors ADD outbound_proxy VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_aors ADD support_path VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_aors ADD CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537'
+
+/
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD debug VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3'
+
+/
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TABLE queues (
+    name VARCHAR2(128 CHAR) NOT NULL, 
+    musiconhold VARCHAR2(128 CHAR), 
+    announce VARCHAR2(128 CHAR), 
+    context VARCHAR2(128 CHAR), 
+    timeout INTEGER, 
+    ringinuse VARCHAR(3 CHAR), 
+    setinterfacevar VARCHAR(3 CHAR), 
+    setqueuevar VARCHAR(3 CHAR), 
+    setqueueentryvar VARCHAR(3 CHAR), 
+    monitor_format VARCHAR2(8 CHAR), 
+    membermacro VARCHAR2(512 CHAR), 
+    membergosub VARCHAR2(512 CHAR), 
+    queue_youarenext VARCHAR2(128 CHAR), 
+    queue_thereare VARCHAR2(128 CHAR), 
+    queue_callswaiting VARCHAR2(128 CHAR), 
+    queue_quantity1 VARCHAR2(128 CHAR), 
+    queue_quantity2 VARCHAR2(128 CHAR), 
+    queue_holdtime VARCHAR2(128 CHAR), 
+    queue_minutes VARCHAR2(128 CHAR), 
+    queue_minute VARCHAR2(128 CHAR), 
+    queue_seconds VARCHAR2(128 CHAR), 
+    queue_thankyou VARCHAR2(128 CHAR), 
+    queue_callerannounce VARCHAR2(128 CHAR), 
+    queue_reporthold VARCHAR2(128 CHAR), 
+    announce_frequency INTEGER, 
+    announce_to_first_user VARCHAR(3 CHAR), 
+    min_announce_frequency INTEGER, 
+    announce_round_seconds INTEGER, 
+    announce_holdtime VARCHAR2(128 CHAR), 
+    announce_position VARCHAR2(128 CHAR), 
+    announce_position_limit INTEGER, 
+    periodic_announce VARCHAR2(50 CHAR), 
+    periodic_announce_frequency INTEGER, 
+    relative_periodic_announce VARCHAR(3 CHAR), 
+    random_periodic_announce VARCHAR(3 CHAR), 
+    retry INTEGER, 
+    wrapuptime INTEGER, 
+    penaltymemberslimit INTEGER, 
+    autofill VARCHAR(3 CHAR), 
+    monitor_type VARCHAR2(128 CHAR), 
+    autopause VARCHAR(3 CHAR), 
+    autopausedelay INTEGER, 
+    autopausebusy VARCHAR(3 CHAR), 
+    autopauseunavail VARCHAR(3 CHAR), 
+    maxlen INTEGER, 
+    servicelevel INTEGER, 
+    strategy VARCHAR(11 CHAR), 
+    joinempty VARCHAR2(128 CHAR), 
+    leavewhenempty VARCHAR2(128 CHAR), 
+    reportholdtime VARCHAR(3 CHAR), 
+    memberdelay INTEGER, 
+    weight INTEGER, 
+    timeoutrestart VARCHAR(3 CHAR), 
+    defaultrule VARCHAR2(128 CHAR), 
+    timeoutpriority VARCHAR2(128 CHAR), 
+    PRIMARY KEY (name), 
+    CONSTRAINT yesno_values CHECK (ringinuse IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (setinterfacevar IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (setqueuevar IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (setqueueentryvar IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (announce_to_first_user IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (relative_periodic_announce IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (random_periodic_announce IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (autofill IN ('yes', 'no')), 
+    CONSTRAINT queue_autopause_values CHECK (autopause IN ('yes', 'no', 'all')), 
+    CONSTRAINT yesno_values CHECK (autopausebusy IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (autopauseunavail IN ('yes', 'no')), 
+    CONSTRAINT queue_strategy_values CHECK (strategy IN ('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered')), 
+    CONSTRAINT yesno_values CHECK (reportholdtime IN ('yes', 'no')), 
+    CONSTRAINT yesno_values CHECK (timeoutrestart IN ('yes', 'no'))
+)
+
+/
+
+CREATE TABLE queue_members (
+    queue_name VARCHAR2(80 CHAR) NOT NULL, 
+    interface VARCHAR2(80 CHAR) NOT NULL, 
+    uniqueid VARCHAR2(80 CHAR) NOT NULL, 
+    membername VARCHAR2(80 CHAR), 
+    state_interface VARCHAR2(80 CHAR), 
+    penalty INTEGER, 
+    paused INTEGER, 
+    PRIMARY KEY (queue_name, interface)
+)
+
+/
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040'
+
+/
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints MODIFY tos_audio VARCHAR2(10 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints MODIFY tos_video VARCHAR2(10 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio
+
+/
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video
+
+/
+
+ALTER TABLE ps_endpoints ADD cos_audio INTEGER
+
+/
+
+ALTER TABLE ps_endpoints ADD cos_video INTEGER
+
+/
+
+ALTER TABLE ps_transports MODIFY tos VARCHAR2(10 CHAR)
+
+/
+
+ALTER TABLE ps_transports DROP COLUMN cos
+
+/
+
+ALTER TABLE ps_transports ADD cos INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f'
+
+/
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD message_context VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD user_agent VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd'
+
+/
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals MODIFY user_agent VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY id VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY uri VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY user_agent VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_registrations MODIFY client_uri VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_registrations MODIFY server_uri VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85'
+
+/
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+    id VARCHAR2(40 CHAR) NOT NULL, 
+    packet VARCHAR2(2048 CHAR), 
+    src_name VARCHAR2(128 CHAR), 
+    src_port INTEGER, 
+    transport_key VARCHAR2(64 CHAR), 
+    local_name VARCHAR2(128 CHAR), 
+    local_port INTEGER, 
+    cseq INTEGER, 
+    tag VARCHAR2(128 CHAR), 
+    endpoint VARCHAR2(40 CHAR), 
+    expires INTEGER, 
+    UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id)
+
+/
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c'
+
+/
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD force_avp VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (force_avp IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_endpoints ADD media_use_received_transport VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_use_received_transport IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8'
+
+/
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD accountcode VARCHAR2(20 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e'
+
+/
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers MODIFY useragent VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e'
+
+/
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid
+
+/
+
+ALTER TABLE queue_members ADD uniqueid INTEGER NOT NULL
+
+/
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid)
+
+/
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b'
+
+/
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+    rule_name VARCHAR2(80 CHAR) NOT NULL, 
+    time VARCHAR2(32 CHAR) NOT NULL, 
+    min_penalty VARCHAR2(32 CHAR) NOT NULL, 
+    max_penalty VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423'
+
+/
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports MODIFY verifiy_server VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_transports RENAME COLUMN verifiy_server TO verify_server
+
+/
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8'
+
+/
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+ALTER TABLE sippeers DROP CONSTRAINT sip_directmedia_values
+
+/
+
+ALTER TABLE sippeers MODIFY directmedia VARCHAR(8 CHAR)
+
+/
+
+ALTER TABLE sippeers ADD CONSTRAINT sip_directmedia_values_v2 CHECK (directmedia IN ('yes', 'no', 'nonat', 'update', 'outgoing'))
+
+/
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead'
+
+/
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD media_encryption_optimistic VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_encryption_optimistic IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32'
+
+/
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD user_eq_phone VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (user_eq_phone IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a'
+
+/
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD endpoint_identifier_order VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e'
+
+/
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD rpid_immediate VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (rpid_immediate IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44'
+
+/
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+ALTER TABLE ps_endpoints DROP CONSTRAINT pjsip_dtmf_mode_values
+
+/
+
+ALTER TABLE ps_endpoints MODIFY dtmf_mode VARCHAR(7 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_dtmf_mode_values_v2 CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info', 'auto'))
+
+/
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96'
+
+/
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD qualify_timeout INTEGER
+
+/
+
+ALTER TABLE ps_contacts ADD qualify_timeout INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec'
+
+/
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD max_initial_qualify_time INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209'
+
+/
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD g726_non_standard VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (g726_non_standard IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89'
+
+/
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD rtp_keepalive INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f'
+
+/
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD rtp_timeout INTEGER
+
+/
+
+ALTER TABLE ps_endpoints ADD rtp_timeout_hold INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae'
+
+/
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD default_from_user VARCHAR2(80 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157'
+
+/
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD fatal_retry_interval INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065'
+
+/
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD keep_alive_interval INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05'
+
+/
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors MODIFY contact VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7'
+
+/
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD bind_rtp_to_media_address VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (bind_rtp_to_media_address IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7'
+
+/
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD regcontext VARCHAR2(80 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5'
+
+/
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors MODIFY qualify_timeout FLOAT
+
+/
+
+ALTER TABLE ps_contacts MODIFY qualify_timeout FLOAT
+
+/
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223'
+
+/
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD disable_tcp_switch VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_systems ADD CONSTRAINT yesno_values CHECK (disable_tcp_switch IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_registrations ADD line VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_registrations ADD CONSTRAINT yesno_values CHECK (line IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_registrations ADD endpoint VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2'
+
+/
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD allow_reload VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (allow_reload IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908'
+
+/
+
diff --git a/contrib/realtime/oracle/oracle_voicemail.sql b/contrib/realtime/oracle/oracle_voicemail.sql
new file mode 100644 (file)
index 0000000..12133ea
--- /dev/null
@@ -0,0 +1,48 @@
+CREATE TABLE alembic_version (
+    version_num VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+-- Running upgrade  -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+    dir VARCHAR2(255 CHAR) NOT NULL, 
+    msgnum INTEGER NOT NULL, 
+    context VARCHAR2(80 CHAR), 
+    macrocontext VARCHAR2(80 CHAR), 
+    callerid VARCHAR2(80 CHAR), 
+    origtime INTEGER, 
+    duration INTEGER, 
+    recording BLOB, 
+    flag VARCHAR2(30 CHAR), 
+    category VARCHAR2(30 CHAR), 
+    mailboxuser VARCHAR2(30 CHAR), 
+    mailboxcontext VARCHAR2(30 CHAR), 
+    msg_id VARCHAR2(40 CHAR)
+)
+
+/
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum)
+
+/
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir)
+
+/
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e')
+
+/
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages MODIFY recording BLOB
+
+/
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e'
+
+/
+
diff --git a/contrib/realtime/postgresql/postgresql_cdr.sql b/contrib/realtime/postgresql/postgresql_cdr.sql
new file mode 100644 (file)
index 0000000..5f1ffa4
--- /dev/null
@@ -0,0 +1,36 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade  -> 210693f3123d
+
+CREATE TABLE cdr (
+    accountcode VARCHAR(20), 
+    src VARCHAR(80), 
+    dst VARCHAR(80), 
+    dcontext VARCHAR(80), 
+    clid VARCHAR(80), 
+    channel VARCHAR(80), 
+    dstchannel VARCHAR(80), 
+    lastapp VARCHAR(80), 
+    lastdata VARCHAR(80), 
+    start TIMESTAMP WITHOUT TIME ZONE, 
+    answer TIMESTAMP WITHOUT TIME ZONE, 
+    "end" TIMESTAMP WITHOUT TIME ZONE, 
+    duration INTEGER, 
+    billsec INTEGER, 
+    disposition VARCHAR(45), 
+    amaflags VARCHAR(45), 
+    userfield VARCHAR(256), 
+    uniqueid VARCHAR(150), 
+    linkedid VARCHAR(150), 
+    peeraccount VARCHAR(20), 
+    sequence INTEGER
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
+
+COMMIT;
+
diff --git a/contrib/realtime/postgresql/postgresql_config.sql b/contrib/realtime/postgresql/postgresql_config.sql
new file mode 100644 (file)
index 0000000..813fa14
--- /dev/null
@@ -0,0 +1,895 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade  -> 4da0c5f79a9c
+
+CREATE TYPE type_values AS ENUM ('friend', 'user', 'peer');
+
+CREATE TYPE sip_transport_values AS ENUM ('udp', 'tcp', 'tls', 'ws', 'wss', 'udp,tcp', 'tcp,udp');
+
+CREATE TYPE sip_dtmfmode_values AS ENUM ('rfc2833', 'info', 'shortinfo', 'inband', 'auto');
+
+CREATE TYPE sip_directmedia_values AS ENUM ('yes', 'no', 'nonat', 'update');
+
+CREATE TYPE yes_no_values AS ENUM ('yes', 'no');
+
+CREATE TYPE sip_progressinband_values AS ENUM ('yes', 'no', 'never');
+
+CREATE TYPE sip_session_timers_values AS ENUM ('accept', 'refuse', 'originate');
+
+CREATE TYPE sip_session_refresher_values AS ENUM ('uac', 'uas');
+
+CREATE TYPE sip_callingpres_values AS ENUM ('allowed_not_screened', 'allowed_passed_screen', 'allowed_failed_screen', 'allowed', 'prohib_not_screened', 'prohib_passed_screen', 'prohib_failed_screen', 'prohib');
+
+CREATE TABLE sippeers (
+    id SERIAL NOT NULL, 
+    name VARCHAR(40) NOT NULL, 
+    ipaddr VARCHAR(45), 
+    port INTEGER, 
+    regseconds INTEGER, 
+    defaultuser VARCHAR(40), 
+    fullcontact VARCHAR(80), 
+    regserver VARCHAR(20), 
+    useragent VARCHAR(20), 
+    lastms INTEGER, 
+    host VARCHAR(40), 
+    type type_values, 
+    context VARCHAR(40), 
+    permit VARCHAR(95), 
+    deny VARCHAR(95), 
+    secret VARCHAR(40), 
+    md5secret VARCHAR(40), 
+    remotesecret VARCHAR(40), 
+    transport sip_transport_values, 
+    dtmfmode sip_dtmfmode_values, 
+    directmedia sip_directmedia_values, 
+    nat VARCHAR(29), 
+    callgroup VARCHAR(40), 
+    pickupgroup VARCHAR(40), 
+    language VARCHAR(40), 
+    disallow VARCHAR(200), 
+    allow VARCHAR(200), 
+    insecure VARCHAR(40), 
+    trustrpid yes_no_values, 
+    progressinband sip_progressinband_values, 
+    promiscredir yes_no_values, 
+    useclientcode yes_no_values, 
+    accountcode VARCHAR(40), 
+    setvar VARCHAR(200), 
+    callerid VARCHAR(40), 
+    amaflags VARCHAR(40), 
+    callcounter yes_no_values, 
+    busylevel INTEGER, 
+    allowoverlap yes_no_values, 
+    allowsubscribe yes_no_values, 
+    videosupport yes_no_values, 
+    maxcallbitrate INTEGER, 
+    rfc2833compensate yes_no_values, 
+    mailbox VARCHAR(40), 
+    "session-timers" sip_session_timers_values, 
+    "session-expires" INTEGER, 
+    "session-minse" INTEGER, 
+    "session-refresher" sip_session_refresher_values, 
+    t38pt_usertpsource VARCHAR(40), 
+    regexten VARCHAR(40), 
+    fromdomain VARCHAR(40), 
+    fromuser VARCHAR(40), 
+    qualify VARCHAR(40), 
+    defaultip VARCHAR(45), 
+    rtptimeout INTEGER, 
+    rtpholdtimeout INTEGER, 
+    sendrpid yes_no_values, 
+    outboundproxy VARCHAR(40), 
+    callbackextension VARCHAR(40), 
+    timert1 INTEGER, 
+    timerb INTEGER, 
+    qualifyfreq INTEGER, 
+    constantssrc yes_no_values, 
+    contactpermit VARCHAR(95), 
+    contactdeny VARCHAR(95), 
+    usereqphone yes_no_values, 
+    textsupport yes_no_values, 
+    faxdetect yes_no_values, 
+    buggymwi yes_no_values, 
+    auth VARCHAR(40), 
+    fullname VARCHAR(40), 
+    trunkname VARCHAR(40), 
+    cid_number VARCHAR(40), 
+    callingpres sip_callingpres_values, 
+    mohinterpret VARCHAR(40), 
+    mohsuggest VARCHAR(40), 
+    parkinglot VARCHAR(40), 
+    hasvoicemail yes_no_values, 
+    subscribemwi yes_no_values, 
+    vmexten VARCHAR(40), 
+    autoframing yes_no_values, 
+    rtpkeepalive INTEGER, 
+    "call-limit" INTEGER, 
+    g726nonstandard yes_no_values, 
+    ignoresdpversion yes_no_values, 
+    allowtransfer yes_no_values, 
+    dynamic yes_no_values, 
+    path VARCHAR(256), 
+    supportpath yes_no_values, 
+    PRIMARY KEY (id), 
+    UNIQUE (name)
+);
+
+CREATE INDEX sippeers_name ON sippeers (name);
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host);
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port);
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port);
+
+CREATE TYPE iax_requirecalltoken_values AS ENUM ('yes', 'no', 'auto');
+
+CREATE TYPE iax_encryption_values AS ENUM ('yes', 'no', 'aes128');
+
+CREATE TYPE iax_transfer_values AS ENUM ('yes', 'no', 'mediaonly');
+
+CREATE TABLE iaxfriends (
+    id SERIAL NOT NULL, 
+    name VARCHAR(40) NOT NULL, 
+    type type_values, 
+    username VARCHAR(40), 
+    mailbox VARCHAR(40), 
+    secret VARCHAR(40), 
+    dbsecret VARCHAR(40), 
+    context VARCHAR(40), 
+    regcontext VARCHAR(40), 
+    host VARCHAR(40), 
+    ipaddr VARCHAR(40), 
+    port INTEGER, 
+    defaultip VARCHAR(20), 
+    sourceaddress VARCHAR(20), 
+    mask VARCHAR(20), 
+    regexten VARCHAR(40), 
+    regseconds INTEGER, 
+    accountcode VARCHAR(20), 
+    mohinterpret VARCHAR(20), 
+    mohsuggest VARCHAR(20), 
+    inkeys VARCHAR(40), 
+    outkeys VARCHAR(40), 
+    language VARCHAR(10), 
+    callerid VARCHAR(100), 
+    cid_number VARCHAR(40), 
+    sendani yes_no_values, 
+    fullname VARCHAR(40), 
+    trunk yes_no_values, 
+    auth VARCHAR(20), 
+    maxauthreq INTEGER, 
+    requirecalltoken iax_requirecalltoken_values, 
+    encryption iax_encryption_values, 
+    transfer iax_transfer_values, 
+    jitterbuffer yes_no_values, 
+    forcejitterbuffer yes_no_values, 
+    disallow VARCHAR(200), 
+    allow VARCHAR(200), 
+    codecpriority VARCHAR(40), 
+    qualify VARCHAR(10), 
+    qualifysmoothing yes_no_values, 
+    qualifyfreqok VARCHAR(10), 
+    qualifyfreqnotok VARCHAR(10), 
+    timezone VARCHAR(20), 
+    adsi yes_no_values, 
+    amaflags VARCHAR(20), 
+    setvar VARCHAR(200), 
+    PRIMARY KEY (id), 
+    UNIQUE (name)
+);
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name);
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host);
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port);
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port);
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port);
+
+CREATE TABLE voicemail (
+    uniqueid SERIAL NOT NULL, 
+    context VARCHAR(80) NOT NULL, 
+    mailbox VARCHAR(80) NOT NULL, 
+    password VARCHAR(80) NOT NULL, 
+    fullname VARCHAR(80), 
+    alias VARCHAR(80), 
+    email VARCHAR(80), 
+    pager VARCHAR(80), 
+    attach yes_no_values, 
+    attachfmt VARCHAR(10), 
+    serveremail VARCHAR(80), 
+    language VARCHAR(20), 
+    tz VARCHAR(30), 
+    deletevoicemail yes_no_values, 
+    saycid yes_no_values, 
+    sendvoicemail yes_no_values, 
+    review yes_no_values, 
+    tempgreetwarn yes_no_values, 
+    operator yes_no_values, 
+    envelope yes_no_values, 
+    sayduration INTEGER, 
+    forcename yes_no_values, 
+    forcegreetings yes_no_values, 
+    callback VARCHAR(80), 
+    dialout VARCHAR(80), 
+    exitcontext VARCHAR(80), 
+    maxmsg INTEGER, 
+    volgain NUMERIC(5, 2), 
+    imapuser VARCHAR(80), 
+    imappassword VARCHAR(80), 
+    imapserver VARCHAR(80), 
+    imapport VARCHAR(8), 
+    imapflags VARCHAR(80), 
+    stamp TIMESTAMP WITHOUT TIME ZONE, 
+    PRIMARY KEY (uniqueid)
+);
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox);
+
+CREATE INDEX voicemail_context ON voicemail (context);
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context);
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser);
+
+CREATE TABLE meetme (
+    bookid SERIAL NOT NULL, 
+    confno VARCHAR(80) NOT NULL, 
+    starttime TIMESTAMP WITHOUT TIME ZONE, 
+    endtime TIMESTAMP WITHOUT TIME ZONE, 
+    pin VARCHAR(20), 
+    adminpin VARCHAR(20), 
+    opts VARCHAR(20), 
+    adminopts VARCHAR(20), 
+    recordingfilename VARCHAR(80), 
+    recordingformat VARCHAR(10), 
+    maxusers INTEGER, 
+    members INTEGER NOT NULL, 
+    PRIMARY KEY (bookid)
+);
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime);
+
+CREATE TYPE moh_mode_values AS ENUM ('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3');
+
+CREATE TABLE musiconhold (
+    name VARCHAR(80) NOT NULL, 
+    mode moh_mode_values, 
+    directory VARCHAR(255), 
+    application VARCHAR(255), 
+    digit VARCHAR(1), 
+    sort VARCHAR(10), 
+    format VARCHAR(10), 
+    stamp TIMESTAMP WITHOUT TIME ZONE, 
+    PRIMARY KEY (name)
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TYPE yesno_values AS ENUM ('yes', 'no');
+
+CREATE TYPE pjsip_connected_line_method_values AS ENUM ('invite', 'reinvite', 'update');
+
+CREATE TYPE pjsip_direct_media_glare_mitigation_values AS ENUM ('none', 'outgoing', 'incoming');
+
+CREATE TYPE pjsip_dtmf_mode_values AS ENUM ('rfc4733', 'inband', 'info');
+
+CREATE TYPE pjsip_identify_by_values AS ENUM ('username');
+
+CREATE TYPE pjsip_timer_values AS ENUM ('forced', 'no', 'required', 'yes');
+
+CREATE TYPE pjsip_cid_privacy_values AS ENUM ('allowed_not_screened', 'allowed_passed_screened', 'allowed_failed_screened', 'allowed', 'prohib_not_screened', 'prohib_passed_screened', 'prohib_failed_screened', 'prohib', 'unavailable');
+
+CREATE TYPE pjsip_100rel_values AS ENUM ('no', 'required', 'yes');
+
+CREATE TYPE pjsip_media_encryption_values AS ENUM ('no', 'sdes', 'dtls');
+
+CREATE TYPE pjsip_t38udptl_ec_values AS ENUM ('none', 'fec', 'redundancy');
+
+CREATE TYPE pjsip_dtls_setup_values AS ENUM ('active', 'passive', 'actpass');
+
+CREATE TABLE ps_endpoints (
+    id VARCHAR(40) NOT NULL, 
+    transport VARCHAR(40), 
+    aors VARCHAR(200), 
+    auth VARCHAR(40), 
+    context VARCHAR(40), 
+    disallow VARCHAR(200), 
+    allow VARCHAR(200), 
+    direct_media yesno_values, 
+    connected_line_method pjsip_connected_line_method_values, 
+    direct_media_method pjsip_connected_line_method_values, 
+    direct_media_glare_mitigation pjsip_direct_media_glare_mitigation_values, 
+    disable_direct_media_on_nat yesno_values, 
+    dtmf_mode pjsip_dtmf_mode_values, 
+    external_media_address VARCHAR(40), 
+    force_rport yesno_values, 
+    ice_support yesno_values, 
+    identify_by pjsip_identify_by_values, 
+    mailboxes VARCHAR(40), 
+    moh_suggest VARCHAR(40), 
+    outbound_auth VARCHAR(40), 
+    outbound_proxy VARCHAR(40), 
+    rewrite_contact yesno_values, 
+    rtp_ipv6 yesno_values, 
+    rtp_symmetric yesno_values, 
+    send_diversion yesno_values, 
+    send_pai yesno_values, 
+    send_rpid yesno_values, 
+    timers_min_se INTEGER, 
+    timers pjsip_timer_values, 
+    timers_sess_expires INTEGER, 
+    callerid VARCHAR(40), 
+    callerid_privacy pjsip_cid_privacy_values, 
+    callerid_tag VARCHAR(40), 
+    "100rel" pjsip_100rel_values, 
+    aggregate_mwi yesno_values, 
+    trust_id_inbound yesno_values, 
+    trust_id_outbound yesno_values, 
+    use_ptime yesno_values, 
+    use_avpf yesno_values, 
+    media_encryption pjsip_media_encryption_values, 
+    inband_progress yesno_values, 
+    call_group VARCHAR(40), 
+    pickup_group VARCHAR(40), 
+    named_call_group VARCHAR(40), 
+    named_pickup_group VARCHAR(40), 
+    device_state_busy_at INTEGER, 
+    fax_detect yesno_values, 
+    t38_udptl yesno_values, 
+    t38_udptl_ec pjsip_t38udptl_ec_values, 
+    t38_udptl_maxdatagram INTEGER, 
+    t38_udptl_nat yesno_values, 
+    t38_udptl_ipv6 yesno_values, 
+    tone_zone VARCHAR(40), 
+    language VARCHAR(40), 
+    one_touch_recording yesno_values, 
+    record_on_feature VARCHAR(40), 
+    record_off_feature VARCHAR(40), 
+    rtp_engine VARCHAR(40), 
+    allow_transfer yesno_values, 
+    allow_subscribe yesno_values, 
+    sdp_owner VARCHAR(40), 
+    sdp_session VARCHAR(40), 
+    tos_audio INTEGER, 
+    tos_video INTEGER, 
+    cos_audio INTEGER, 
+    cos_video INTEGER, 
+    sub_min_expiry INTEGER, 
+    from_domain VARCHAR(40), 
+    from_user VARCHAR(40), 
+    mwi_fromuser VARCHAR(40), 
+    dtls_verify VARCHAR(40), 
+    dtls_rekey VARCHAR(40), 
+    dtls_cert_file VARCHAR(200), 
+    dtls_private_key VARCHAR(200), 
+    dtls_cipher VARCHAR(200), 
+    dtls_ca_file VARCHAR(200), 
+    dtls_ca_path VARCHAR(200), 
+    dtls_setup pjsip_dtls_setup_values, 
+    srtp_tag_32 yesno_values, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id);
+
+CREATE TYPE pjsip_auth_type_values AS ENUM ('md5', 'userpass');
+
+CREATE TABLE ps_auths (
+    id VARCHAR(40) NOT NULL, 
+    auth_type pjsip_auth_type_values, 
+    nonce_lifetime INTEGER, 
+    md5_cred VARCHAR(40), 
+    password VARCHAR(80), 
+    realm VARCHAR(40), 
+    username VARCHAR(40), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_auths_id ON ps_auths (id);
+
+CREATE TABLE ps_aors (
+    id VARCHAR(40) NOT NULL, 
+    contact VARCHAR(40), 
+    default_expiration INTEGER, 
+    mailboxes VARCHAR(80), 
+    max_contacts INTEGER, 
+    minimum_expiration INTEGER, 
+    remove_existing yesno_values, 
+    qualify_frequency INTEGER, 
+    authenticate_qualify yesno_values, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_aors_id ON ps_aors (id);
+
+CREATE TABLE ps_contacts (
+    id VARCHAR(40) NOT NULL, 
+    uri VARCHAR(40), 
+    expiration_time VARCHAR(40), 
+    qualify_frequency INTEGER, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id);
+
+CREATE TABLE ps_domain_aliases (
+    id VARCHAR(40) NOT NULL, 
+    domain VARCHAR(80), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id);
+
+CREATE TABLE ps_endpoint_id_ips (
+    id VARCHAR(40) NOT NULL, 
+    endpoint VARCHAR(40), 
+    match VARCHAR(80), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id);
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c';
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+    id BIGSERIAL NOT NULL, 
+    context VARCHAR(40) NOT NULL, 
+    exten VARCHAR(40) NOT NULL, 
+    priority INTEGER NOT NULL, 
+    app VARCHAR(40) NOT NULL, 
+    appdata VARCHAR(256) NOT NULL, 
+    PRIMARY KEY (id, context, exten, priority), 
+    UNIQUE (id)
+);
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44';
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TYPE pjsip_redirect_method_values AS ENUM ('user', 'uri_core', 'uri_pjsip');
+
+CREATE TABLE ps_systems (
+    id VARCHAR(40) NOT NULL, 
+    timer_t1 INTEGER, 
+    timer_b INTEGER, 
+    compact_headers yesno_values, 
+    threadpool_initial_size INTEGER, 
+    threadpool_auto_increment INTEGER, 
+    threadpool_idle_timeout INTEGER, 
+    threadpool_max_size INTEGER, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_systems_id ON ps_systems (id);
+
+CREATE TABLE ps_globals (
+    id VARCHAR(40) NOT NULL, 
+    max_forwards INTEGER, 
+    user_agent VARCHAR(40), 
+    default_outbound_endpoint VARCHAR(40), 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_globals_id ON ps_globals (id);
+
+CREATE TYPE pjsip_transport_method_values AS ENUM ('default', 'unspecified', 'tlsv1', 'sslv2', 'sslv3', 'sslv23');
+
+CREATE TYPE pjsip_transport_protocol_values AS ENUM ('udp', 'tcp', 'tls', 'ws', 'wss');
+
+CREATE TABLE ps_transports (
+    id VARCHAR(40) NOT NULL, 
+    async_operations INTEGER, 
+    bind VARCHAR(40), 
+    ca_list_file VARCHAR(200), 
+    cert_file VARCHAR(200), 
+    cipher VARCHAR(200), 
+    domain VARCHAR(40), 
+    external_media_address VARCHAR(40), 
+    external_signaling_address VARCHAR(40), 
+    external_signaling_port INTEGER, 
+    method pjsip_transport_method_values, 
+    local_net VARCHAR(40), 
+    password VARCHAR(40), 
+    priv_key_file VARCHAR(200), 
+    protocol pjsip_transport_protocol_values, 
+    require_client_cert yesno_values, 
+    verify_client yesno_values, 
+    verifiy_server yesno_values, 
+    tos yesno_values, 
+    cos yesno_values, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_transports_id ON ps_transports (id);
+
+CREATE TABLE ps_registrations (
+    id VARCHAR(40) NOT NULL, 
+    auth_rejection_permanent yesno_values, 
+    client_uri VARCHAR(40), 
+    contact_user VARCHAR(40), 
+    expiration INTEGER, 
+    max_retries INTEGER, 
+    outbound_auth VARCHAR(40), 
+    outbound_proxy VARCHAR(40), 
+    retry_interval INTEGER, 
+    forbidden_retry_interval INTEGER, 
+    server_uri VARCHAR(40), 
+    transport VARCHAR(40), 
+    support_path yesno_values, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id);
+
+ALTER TABLE ps_endpoints ADD COLUMN media_address VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN redirect_method pjsip_redirect_method_values;
+
+ALTER TABLE ps_endpoints ADD COLUMN set_var TEXT;
+
+ALTER TABLE ps_endpoints RENAME mwi_fromuser TO mwi_from_user;
+
+ALTER TABLE ps_contacts ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN path TEXT;
+
+ALTER TABLE ps_aors ADD COLUMN maximum_expiration INTEGER;
+
+ALTER TABLE ps_aors ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_aors ADD COLUMN support_path yesno_values;
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537';
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD COLUMN debug VARCHAR(40);
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3';
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TYPE queue_autopause_values AS ENUM ('yes', 'no', 'all');
+
+CREATE TYPE queue_strategy_values AS ENUM ('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered');
+
+CREATE TABLE queues (
+    name VARCHAR(128) NOT NULL, 
+    musiconhold VARCHAR(128), 
+    announce VARCHAR(128), 
+    context VARCHAR(128), 
+    timeout INTEGER, 
+    ringinuse yesno_values, 
+    setinterfacevar yesno_values, 
+    setqueuevar yesno_values, 
+    setqueueentryvar yesno_values, 
+    monitor_format VARCHAR(8), 
+    membermacro VARCHAR(512), 
+    membergosub VARCHAR(512), 
+    queue_youarenext VARCHAR(128), 
+    queue_thereare VARCHAR(128), 
+    queue_callswaiting VARCHAR(128), 
+    queue_quantity1 VARCHAR(128), 
+    queue_quantity2 VARCHAR(128), 
+    queue_holdtime VARCHAR(128), 
+    queue_minutes VARCHAR(128), 
+    queue_minute VARCHAR(128), 
+    queue_seconds VARCHAR(128), 
+    queue_thankyou VARCHAR(128), 
+    queue_callerannounce VARCHAR(128), 
+    queue_reporthold VARCHAR(128), 
+    announce_frequency INTEGER, 
+    announce_to_first_user yesno_values, 
+    min_announce_frequency INTEGER, 
+    announce_round_seconds INTEGER, 
+    announce_holdtime VARCHAR(128), 
+    announce_position VARCHAR(128), 
+    announce_position_limit INTEGER, 
+    periodic_announce VARCHAR(50), 
+    periodic_announce_frequency INTEGER, 
+    relative_periodic_announce yesno_values, 
+    random_periodic_announce yesno_values, 
+    retry INTEGER, 
+    wrapuptime INTEGER, 
+    penaltymemberslimit INTEGER, 
+    autofill yesno_values, 
+    monitor_type VARCHAR(128), 
+    autopause queue_autopause_values, 
+    autopausedelay INTEGER, 
+    autopausebusy yesno_values, 
+    autopauseunavail yesno_values, 
+    maxlen INTEGER, 
+    servicelevel INTEGER, 
+    strategy queue_strategy_values, 
+    joinempty VARCHAR(128), 
+    leavewhenempty VARCHAR(128), 
+    reportholdtime yesno_values, 
+    memberdelay INTEGER, 
+    weight INTEGER, 
+    timeoutrestart yesno_values, 
+    defaultrule VARCHAR(128), 
+    timeoutpriority VARCHAR(128), 
+    PRIMARY KEY (name)
+);
+
+CREATE TABLE queue_members (
+    queue_name VARCHAR(80) NOT NULL, 
+    interface VARCHAR(80) NOT NULL, 
+    uniqueid VARCHAR(80) NOT NULL, 
+    membername VARCHAR(80), 
+    state_interface VARCHAR(80), 
+    penalty INTEGER, 
+    paused INTEGER, 
+    PRIMARY KEY (queue_name, interface)
+);
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040';
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_audio TYPE VARCHAR(10);
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_video TYPE VARCHAR(10);
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio;
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_audio INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_video INTEGER;
+
+ALTER TABLE ps_transports ALTER COLUMN tos TYPE VARCHAR(10);
+
+ALTER TABLE ps_transports DROP COLUMN cos;
+
+ALTER TABLE ps_transports ADD COLUMN cos INTEGER;
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f';
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD COLUMN message_context VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN user_agent VARCHAR(40);
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd';
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals ALTER COLUMN user_agent TYPE VARCHAR(255);
+
+ALTER TABLE ps_contacts ALTER COLUMN id TYPE VARCHAR(255);
+
+ALTER TABLE ps_contacts ALTER COLUMN uri TYPE VARCHAR(255);
+
+ALTER TABLE ps_contacts ALTER COLUMN user_agent TYPE VARCHAR(255);
+
+ALTER TABLE ps_registrations ALTER COLUMN client_uri TYPE VARCHAR(255);
+
+ALTER TABLE ps_registrations ALTER COLUMN server_uri TYPE VARCHAR(255);
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85';
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+    id VARCHAR(40) NOT NULL, 
+    packet VARCHAR(2048), 
+    src_name VARCHAR(128), 
+    src_port INTEGER, 
+    transport_key VARCHAR(64), 
+    local_name VARCHAR(128), 
+    local_port INTEGER, 
+    cseq INTEGER, 
+    tag VARCHAR(128), 
+    endpoint VARCHAR(40), 
+    expires INTEGER, 
+    UNIQUE (id)
+);
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id);
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c';
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD COLUMN force_avp yesno_values;
+
+ALTER TABLE ps_endpoints ADD COLUMN media_use_received_transport yesno_values;
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8';
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD COLUMN accountcode VARCHAR(20);
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e';
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers ALTER COLUMN useragent TYPE VARCHAR(255);
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e';
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid;
+
+ALTER TABLE queue_members ADD COLUMN uniqueid INTEGER NOT NULL;
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid);
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b';
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+    rule_name VARCHAR(80) NOT NULL, 
+    time VARCHAR(32) NOT NULL, 
+    min_penalty VARCHAR(32) NOT NULL, 
+    max_penalty VARCHAR(32) NOT NULL
+);
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423';
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports ALTER COLUMN verifiy_server TYPE yesno_values;
+
+ALTER TABLE ps_transports RENAME verifiy_server TO verify_server;
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8';
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+CREATE TYPE sip_directmedia_values_v2 AS ENUM ('yes', 'no', 'nonat', 'update', 'outgoing');
+
+ALTER TABLE sippeers ALTER COLUMN directmedia TYPE sip_directmedia_values_v2 USING directmedia::text::sip_directmedia_values_v2;
+
+DROP TYPE sip_directmedia_values;
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead';
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD COLUMN media_encryption_optimistic yesno_values;
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32';
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD COLUMN user_eq_phone yesno_values;
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a';
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD COLUMN endpoint_identifier_order VARCHAR(40);
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e';
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD COLUMN rpid_immediate yesno_values;
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44';
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+CREATE TYPE pjsip_dtmf_mode_values_v2 AS ENUM ('rfc4733', 'inband', 'info', 'auto');
+
+ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE pjsip_dtmf_mode_values_v2 USING dtmf_mode::text::pjsip_dtmf_mode_values_v2;
+
+DROP TYPE pjsip_dtmf_mode_values;
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96';
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD COLUMN qualify_timeout INTEGER;
+
+ALTER TABLE ps_contacts ADD COLUMN qualify_timeout INTEGER;
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec';
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD COLUMN max_initial_qualify_time INTEGER;
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209';
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD COLUMN g726_non_standard yesno_values;
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89';
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_keepalive INTEGER;
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f';
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout_hold INTEGER;
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae';
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD COLUMN default_from_user VARCHAR(80);
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157';
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD COLUMN fatal_retry_interval INTEGER;
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065';
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD COLUMN keep_alive_interval INTEGER;
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05';
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors ALTER COLUMN contact TYPE VARCHAR(255);
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7';
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD COLUMN bind_rtp_to_media_address yesno_values;
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7';
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD COLUMN regcontext VARCHAR(80);
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5';
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors ALTER COLUMN qualify_timeout TYPE FLOAT;
+
+ALTER TABLE ps_contacts ALTER COLUMN qualify_timeout TYPE FLOAT;
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223';
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD COLUMN disable_tcp_switch yesno_values;
+
+ALTER TABLE ps_registrations ADD COLUMN line yesno_values;
+
+ALTER TABLE ps_registrations ADD COLUMN endpoint VARCHAR(40);
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2';
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD COLUMN allow_reload yesno_values;
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908';
+
+COMMIT;
+
diff --git a/contrib/realtime/postgresql/postgresql_voicemail.sql b/contrib/realtime/postgresql/postgresql_voicemail.sql
new file mode 100644 (file)
index 0000000..f925784
--- /dev/null
@@ -0,0 +1,38 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+    version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade  -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+    dir VARCHAR(255) NOT NULL, 
+    msgnum INTEGER NOT NULL, 
+    context VARCHAR(80), 
+    macrocontext VARCHAR(80), 
+    callerid VARCHAR(80), 
+    origtime INTEGER, 
+    duration INTEGER, 
+    recording BYTEA, 
+    flag VARCHAR(30), 
+    category VARCHAR(30), 
+    mailboxuser VARCHAR(30), 
+    mailboxcontext VARCHAR(30), 
+    msg_id VARCHAR(40)
+);
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages ALTER COLUMN recording TYPE BYTEA;
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
+
+COMMIT;
+