]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Ensure SSRC is changed when media source is changed to resolve audio delay.
authorJeff Peeler <jpeeler@digium.com>
Thu, 12 Aug 2010 03:00:14 +0000 (03:00 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 12 Aug 2010 03:00:14 +0000 (03:00 +0000)
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

main/channel.c

index 1d28515c64b7b8c911d782a3a99064de109915aa..06f15d176386f0afa7d2b9e89099aa2c4737ffd7 100644 (file)
@@ -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, };