From 0b9c7c678b395b45976c336f8b5d154903bf1f8b Mon Sep 17 00:00:00 2001 From: Dragos Oancea Date: Wed, 10 Jun 2020 12:17:27 +0000 Subject: [PATCH] [mod_amrwb] add cfg setting to switch between OA/BE when originating --- src/mod/codecs/mod_amrwb/mod_amrwb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mod/codecs/mod_amrwb/mod_amrwb.c b/src/mod/codecs/mod_amrwb/mod_amrwb.c index 19cde02adf..4f12c27f0b 100644 --- a/src/mod/codecs/mod_amrwb/mod_amrwb.c +++ b/src/mod/codecs/mod_amrwb/mod_amrwb.c @@ -87,6 +87,7 @@ static struct { switch_byte_t default_bitrate; switch_byte_t volte; switch_byte_t adjust_bitrate; + switch_byte_t force_oa; /*force OA when originating*/ int debug; } globals; @@ -209,7 +210,11 @@ static switch_status_t switch_amrwb_init(switch_codec_t *codec, switch_codec_fla context->enc_mode = globals.default_bitrate; /* octet-align = 0 - per RFC - if there's no `octet-align` FMTP value then BE is employed */ - switch_clear_flag(context, AMRWB_OPT_OCTET_ALIGN); + if (!globals.force_oa) { + switch_clear_flag(context, AMRWB_OPT_OCTET_ALIGN); + } else { + switch_set_flag(context, AMRWB_OPT_OCTET_ALIGN); + } if (codec->fmtp_in) { argc = switch_separate_string(codec->fmtp_in, ';', argv, (sizeof(argv) / sizeof(argv[0]))); @@ -548,6 +553,9 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_amrwb_load) if (!strcasecmp(var, "adjust-bitrate")) { globals.adjust_bitrate = (switch_byte_t) atoi(val); } + if (!strcasecmp(var, "force-oa")) { + globals.force_oa = (switch_byte_t) atoi(val); + } } } }