From 270b485f047d7efaa5f10163ba26a55f1bd02bdf Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Fri, 7 Apr 2017 13:35:33 +0000 Subject: pjsip: Add Alembic for PUBLISH support. This change adds database tables for the PUBLISH support so it can be configured using realtime. A minor fix to the res_pjsip_publish_asterisk module was done so that it read the sorcery configuration from the correct section. Finally the sample configuration files have been updated. ASTERISK-26928 Change-Id: I81991ae5c75af98d247f7eacd1c0b0a763675952 --- .../versions/2da192dbbc65_add_publish_tables.py | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 contrib/ast-db-manage/config/versions/2da192dbbc65_add_publish_tables.py (limited to 'contrib/ast-db-manage/config/versions/2da192dbbc65_add_publish_tables.py') diff --git a/contrib/ast-db-manage/config/versions/2da192dbbc65_add_publish_tables.py b/contrib/ast-db-manage/config/versions/2da192dbbc65_add_publish_tables.py new file mode 100644 index 000000000..affdc29fe --- /dev/null +++ b/contrib/ast-db-manage/config/versions/2da192dbbc65_add_publish_tables.py @@ -0,0 +1,73 @@ +"""add publish tables + +Revision ID: 2da192dbbc65 +Revises: 8fce4c573e15 +Create Date: 2017-04-05 10:16:52.504699 + +""" + +# revision identifiers, used by Alembic. +revision = '2da192dbbc65' +down_revision = '8fce4c573e15' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects.postgresql import ENUM + +YESNO_NAME = 'yesno_values' +YESNO_VALUES = ['yes', 'no'] + +def upgrade(): + ############################# Enums ############################## + + # yesno_values have already been created, so use postgres enum object + # type to get around "already created" issue - works okay with mysql + yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False) + + op.create_table( + 'ps_outbound_publishes', + sa.Column('id', sa.String(40), nullable=False, unique=True), + sa.Column('expiration', sa.Integer), + sa.Column('outbound_auth', sa.String(40)), + sa.Column('outbound_proxy', sa.String(256)), + sa.Column('server_uri', sa.String(256)), + sa.Column('from_uri', sa.String(256)), + sa.Column('to_uri', sa.String(256)), + sa.Column('event', sa.String(40)), + sa.Column('max_auth_attempts', sa.Integer), + sa.Column('transport', sa.String(40)), + sa.Column('multi_user', yesno_values), + sa.Column('@body', sa.String(40)), + sa.Column('@context', sa.String(256)), + sa.Column('@exten', sa.String(256)), + ) + + op.create_index('ps_outbound_publishes_id', 'ps_outbound_publishes', ['id']) + + op.create_table( + 'ps_inbound_publications', + sa.Column('id', sa.String(40), nullable=False, unique=True), + sa.Column('endpoint', sa.String(40)), + sa.Column('event_asterisk-devicestate', sa.String(40)), + sa.Column('event_asterisk-mwi', sa.String(40)), + ) + + op.create_index('ps_inbound_publications_id', 'ps_inbound_publications', ['id']) + + op.create_table( + 'ps_asterisk_publications', + sa.Column('id', sa.String(40), nullable=False, unique=True), + sa.Column('devicestate_publish', sa.String(40)), + sa.Column('mailboxstate_publish', sa.String(40)), + sa.Column('device_state', yesno_values), + sa.Column('device_state_filter', sa.String(256)), + sa.Column('mailbox_state', yesno_values), + sa.Column('mailbox_state_filter', sa.String(256)), + ) + + op.create_index('ps_asterisk_publications_id', 'ps_asterisk_publications', ['id']) + +def downgrade(): + op.drop_table('ps_outbound_publishes') + op.drop_table('ps_inbound_publications') + op.drop_table('ps_asterisk_publications') -- cgit v1.2.3