summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorJonathan Rose <jrose@digium.com>2014-03-06 19:04:58 +0000
committerJonathan Rose <jrose@digium.com>2014-03-06 19:04:58 +0000
commitf0b8590c14d9f5b899f5edc1158ee90200ace6dc (patch)
tree063c716258cf99944cc6c5eedefda5f2a909da17 /contrib
parent3f730662f7906027c302896abd549a32123ec848 (diff)
pjsip configuration: Make transport TOS values consistent with endpoints
Transport TOS values were interpreted as DSCP values without being documented as such. Endpoint TOS values (tos_audio/tos_video) behaved normally as TOS values have historically. This patch makes the transport TOS values behave as TOS values and makes all TOS values readable as string values (e.g. AF11). In addition, alembic scripts have been updated to use the proper field types for all TOS/COS values. (issue ASTERISK-23235) Reported by: George Joseph Review: https://reviewboard.asterisk.org/r/3304/ ........ Merged revisions 410028 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py b/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py
new file mode 100755
index 000000000..51e8fa9ca
--- /dev/null
+++ b/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py
@@ -0,0 +1,61 @@
+"""Fix tos and cos field types
+
+Revision ID: 4c573e7135bd
+Revises: 21e526ad3040
+Create Date: 2014-03-05 12:16:56.618630
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '4c573e7135bd'
+down_revision = '21e526ad3040'
+
+from alembic import op
+from alembic import context
+import sqlalchemy as sa
+from sqlalchemy.dialects.postgresql import ENUM
+
+YESNO_NAME = 'yesno_values'
+YESNO_VALUES = ['yes', 'no']
+
+def upgrade():
+ op.alter_column('ps_endpoints', 'tos_audio',
+ type_=sa.String(10))
+ op.alter_column('ps_endpoints', 'tos_video',
+ type_=sa.String(10))
+ op.alter_column('ps_transports', 'tos',
+ type_=sa.String(10))
+
+ # Can't cast YENO_VALUES to Integers, so dropping and adding is required
+ op.drop_column('ps_endpoints', 'cos_audio')
+ op.drop_column('ps_endpoints', 'cos_video')
+ op.drop_column('ps_transports', 'cos')
+
+ op.add_column('ps_endpoints', sa.Column('cos_audio', sa.Integer))
+ op.add_column('ps_endpoints', sa.Column('cos_video', sa.Integer))
+ op.add_column('ps_transports', sa.Column('cos', sa.Integer))
+ pass
+
+
+def downgrade():
+
+ yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False)
+
+ # Can't cast string to YESNO_VALUES, so dropping and adding is required
+ op.drop_column('ps_endpoints', 'tos_audio')
+ op.drop_column('ps_endpoints', 'tos_video')
+ op.drop_column('ps_transports', 'tos')
+
+ op.add_column('ps_endpoints', sa.Column('tos_audio', yesno_values))
+ op.add_column('ps_endpoints', sa.Column('tos_video', yesno_values))
+ op.add_column('ps_transports', sa.Column('tos', yesno_values))
+
+ # Can't cast integers to YESNO_VALUES, so dropping and adding is required
+ op.drop_column('ps_endpoints', 'cos_audio')
+ op.drop_column('ps_endpoints', 'cos_video')
+ op.drop_column('ps_transports', 'cos')
+
+ op.add_column('ps_endpoints', sa.Column('cos_audio', yesno_values))
+ op.add_column('ps_endpoints', sa.Column('cos_video', yesno_values))
+ op.add_column('ps_transports', sa.Column('cos', yesno_values))
+ pass