diff --git a/src/include/switch_types.h b/src/include/switch_types.h index c6dfb4376c..56df24a743 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -736,13 +736,18 @@ typedef enum { */ - RTP_BUG_CHANGE_SSRC_ON_MARKER = (1 << 9) + RTP_BUG_CHANGE_SSRC_ON_MARKER = (1 << 9), /* By default FS will change the SSRC when the marker is set and it detects a timestamp reset. If this setting is enabled it will NOT do this (old behaviour). */ + RTP_BUG_FLUSH_JB_ON_DTMF = (1 << 10) + + /* FLUSH JITTERBUFFER When getting RFC2833 to reduce bleed through */ + + } switch_rtp_bug_flag_t; #ifdef _MSC_VER diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 4ba22c25dd..0c8bc11180 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -6975,6 +6975,14 @@ void sofia_glue_parse_rtp_bugs(switch_rtp_bug_flag_t *flag_pole, const char *str if (switch_stristr("~CHANGE_SSRC_ON_MARKER", str)) { *flag_pole &= ~RTP_BUG_CHANGE_SSRC_ON_MARKER; } + + if (switch_stristr("FLUSH_JB_ON_DTMF", str)) { + *flag_pole |= RTP_BUG_FLUSH_JB_ON_DTMF; + } + + if (switch_stristr("~FLUSH_JB_ON_DTMF", str)) { + *flag_pole &= ~RTP_BUG_FLUSH_JB_ON_DTMF; + } } char *sofia_glue_gen_contact_str(sofia_profile_t *profile, sip_t const *sip, nua_handle_t *nh, sofia_dispatch_event_t *de, sofia_nat_parse_t *np)