[asterisk-commits] twilson: branch 1.6.2 r282467 - in /branches/1.6.2: ./ main/channel.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Aug 16 12:32:12 CDT 2010


Author: twilson
Date: Mon Aug 16 12:32:01 2010
New Revision: 282467

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=282467
Log:
Merged revisions 282430 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r282430 | twilson | 2010-08-16 12:06:37 -0500 (Mon, 16 Aug 2010) | 16 lines
  
  Send a SRCCHANGE indication when we masquerade
  
  Masquerading a channel means that the src of the audio is potentially
  changing, so send a SRCCHANGE so that RTP-based media streams can get
  a new SSRC generated to reflect the change. Original patch by addix
  (along with lots of testing--thanks!).
  
  (closes issue #17007)
  Reported by: addix
  Patches: 
        1001-reset-SSRC-original-channel.diff uploaded by addix (license 1006)
        srcchange.diff uploaded by twilson (license 396)
  Tested by: addix, twilson
  
  Review: https://reviewboard.asterisk.org/r/862/
........

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/main/channel.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
--- branch-1.4-merged (original)
+++ branch-1.4-merged Mon Aug 16 12:32:01 2010
@@ -1,1 +1,1 @@
-/branches/1.4:1-279056,279206,279945,280088,280341,280448,280811,280982,281390,281566,281762,281819,281911,282129
+/branches/1.4:1-279056,279206,279945,280088,280341,280448,280811,280982,281390,281566,281762,281819,281911,282129,282430

Modified: branches/1.6.2/main/channel.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/main/channel.c?view=diff&rev=282467&r1=282466&r2=282467
==============================================================================
--- branches/1.6.2/main/channel.c (original)
+++ branches/1.6.2/main/channel.c Mon Aug 16 12:32:01 2010
@@ -4613,6 +4613,7 @@
 	void *t_pvt;
 	struct ast_callerid tmpcid;
 	struct ast_channel *clonechan = original->masq;
+	struct ast_channel *bridged;
 	struct ast_cdr *cdr;
 	int rformat = original->readformat;
 	int wformat = original->writeformat;
@@ -4877,6 +4878,15 @@
 	if (ast_test_flag(original, AST_FLAG_BLOCKING))
 		pthread_kill(original->blocker, SIGURG);
 	ast_debug(1, "Done Masquerading %s (%d)\n", original->name, original->_state);
+
+	if ((bridged = ast_bridged_channel(original))) {
+		ast_channel_lock(bridged);
+		ast_indicate(bridged, AST_CONTROL_SRCCHANGE);
+		ast_channel_unlock(bridged);
+	}
+
+	ast_indicate(original, AST_CONTROL_SRCCHANGE);
+
 	return 0;
 }
 




More information about the asterisk-commits mailing list