From: Anthony Minessale Date: Thu, 19 Jul 2012 03:01:41 +0000 (-0500) Subject: FS-4382 reverse this so you have to enable instead of disable, this patch has been... X-Git-Tag: v1.2.0~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f4715781dc60293f89027ddf5ae4cc41badb5979;p=thirdparty%2Ffreeswitch.git FS-4382 reverse this so you have to enable instead of disable, this patch has been causing srtp issues because the change in ssrc --- diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 86c7ab2f06..20ee478bf5 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -727,7 +727,7 @@ typedef enum { */ - RTP_BUG_NEVER_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. diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 78beb73624..878bf73a7f 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -7021,12 +7021,12 @@ void sofia_glue_parse_rtp_bugs(switch_rtp_bug_flag_t *flag_pole, const char *str *flag_pole &= ~RTP_BUG_GEN_ONE_GEN_ALL; } - if (switch_stristr("NEVER_CHANGE_SSRC_ON_MARKER", str)) { - *flag_pole |= RTP_BUG_NEVER_CHANGE_SSRC_ON_MARKER; + if (switch_stristr("CHANGE_SSRC_ON_MARKER", str)) { + *flag_pole |= RTP_BUG_CHANGE_SSRC_ON_MARKER; } - if (switch_stristr("~NEVER_CHANGE_SSRC_ON_MARKER", str)) { - *flag_pole &= ~RTP_BUG_NEVER_CHANGE_SSRC_ON_MARKER; + if (switch_stristr("~CHANGE_SSRC_ON_MARKER", str)) { + *flag_pole &= ~RTP_BUG_CHANGE_SSRC_ON_MARKER; } } diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 16b5d6d38c..f6bc364773 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -4130,7 +4130,8 @@ static int rtp_common_write(switch_rtp_t *rtp_session, send_msg->header.m = (m && !(rtp_session->rtp_bugs & RTP_BUG_NEVER_SEND_MARKER)) ? 1 : 0; /* If the marker was set, and the timestamp seems to have started over - set a new SSRC, to indicate this is a new stream */ - if (send_msg->header.m && !(rtp_session->rtp_bugs & RTP_BUG_NEVER_CHANGE_SSRC_ON_MARKER) && (rtp_session->last_write_ts == RTP_TS_RESET || + if (send_msg->header.m && switch_test_flag(rtp_session, SWITCH_RTP_FLAG_SECURE_SEND) && + (rtp_session->rtp_bugs & RTP_BUG_CHANGE_SSRC_ON_MARKER) && (rtp_session->last_write_ts == RTP_TS_RESET || (rtp_session->ts <= rtp_session->last_write_ts && rtp_session->last_write_ts > 0))) { switch_rtp_set_ssrc(rtp_session, (uint32_t) ((intptr_t) rtp_session + (uint32_t) switch_epoch_time_now(NULL))); }