From 521b6fed12b7466a63bee5956e112de96824b1a8 Mon Sep 17 00:00:00 2001 From: Kevin Harwell Date: Wed, 2 Aug 2017 09:43:56 -0500 Subject: [PATCH] alembic/res_pjsip: Add "webrtc" configuration option When the "webrtc" option was added in res_pjsip it was not added to the alembic scripts. This patch adds the option for alembic. Also, changed the sorcery configuration type to an OPT_YESNO_T value instead of an OPT_BOOL_T so if this field is ever written to a database it will write out the correct value. ASTERISK-27119 #close Change-Id: I3e199f060aea25e193c439fc5cf96be4d3ed1c7b --- .../versions/44ccced114ce_add_webrtc.py | 31 +++++++++++++++++++ res/res_pjsip/pjsip_configuration.c | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 contrib/ast-db-manage/config/versions/44ccced114ce_add_webrtc.py diff --git a/contrib/ast-db-manage/config/versions/44ccced114ce_add_webrtc.py b/contrib/ast-db-manage/config/versions/44ccced114ce_add_webrtc.py new file mode 100644 index 0000000000..fdeb058da4 --- /dev/null +++ b/contrib/ast-db-manage/config/versions/44ccced114ce_add_webrtc.py @@ -0,0 +1,31 @@ +"""add webrtc option to ps_endpoints + +Revision ID: 44ccced114ce +Revises: 164abbd708c +Create Date: 2017-07-10 17:07:25.926150 + +""" + +# revision identifiers, used by Alembic. +revision = '44ccced114ce' +down_revision = '164abbd708c' + +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.add_column('ps_endpoints', sa.Column('webrtc', yesno_values)) + + +def downgrade(): + op.drop_column('ps_endpoints', 'webrtc') diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c index 4e12b04cca..d3ff1f32bc 100644 --- a/res/res_pjsip/pjsip_configuration.c +++ b/res/res_pjsip/pjsip_configuration.c @@ -1994,7 +1994,7 @@ int ast_res_pjsip_initialize_configuration(void) ast_sorcery_object_field_register(sip_sorcery, "endpoint", "max_audio_streams", "1", OPT_UINT_T, 0, FLDSET(struct ast_sip_endpoint, media.max_audio_streams)); ast_sorcery_object_field_register(sip_sorcery, "endpoint", "max_video_streams", "1", OPT_UINT_T, 0, FLDSET(struct ast_sip_endpoint, media.max_video_streams)); ast_sorcery_object_field_register(sip_sorcery, "endpoint", "bundle", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.bundle)); - ast_sorcery_object_field_register(sip_sorcery, "endpoint", "webrtc", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.webrtc)); + ast_sorcery_object_field_register(sip_sorcery, "endpoint", "webrtc", "no", OPT_YESNO_T, 1, FLDSET(struct ast_sip_endpoint, media.webrtc)); if (ast_sip_initialize_sorcery_transport()) { ast_log(LOG_ERROR, "Failed to register SIP transport support with sorcery\n");