From: Jeff Peeler Date: Thu, 12 Aug 2010 03:00:14 +0000 (+0000) Subject: Ensure SSRC is changed when media source is changed to resolve audio delay. X-Git-Tag: 1.4.36-rc1~3^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e90fb11e61080288d8d7ee5ac2ca05913106e0ee;p=thirdparty%2Fasterisk.git Ensure SSRC is changed when media source is changed to resolve audio delay. This change causes the SSRC to change right before the channels are bridged, which is what used to happen. It seems that fixes were made to attempt limiting SSRC changes, targeted mainly at sending DTMF. DTMF is not affecting the SSRC with this change. There are two other control frames sent in ast_channel_bridge that probably should also be changed to AST_CONTROL_SRCCHANGE as well, but I'm going to leave this change up to the discretion of resolving issue #17007. For reference - old review implementing new control frame SRCCHANGE: https://reviewboard.asterisk.org/r/540 (closes issue #17404) Reported by: sdolloff Patches: bug17404.patch uploaded by jpeeler (license 325) Tested by: sdolloff git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@281911 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/channel.c b/main/channel.c index 1d28515c64..06f15d1763 100644 --- a/main/channel.c +++ b/main/channel.c @@ -4679,8 +4679,8 @@ enum ast_bridge_result ast_channel_bridge(struct ast_channel *c0, struct ast_cha ast_set_flag(c0, AST_FLAG_END_DTMF_ONLY); /* Before we enter in and bridge these two together tell them both the source of audio has changed */ - ast_indicate(c0, AST_CONTROL_SRCUPDATE); - ast_indicate(c1, AST_CONTROL_SRCUPDATE); + ast_indicate(c0, AST_CONTROL_SRCCHANGE); + ast_indicate(c1, AST_CONTROL_SRCCHANGE); for (/* ever */;;) { struct timeval now = { 0, };