[svn-commits] twilson: trunk r282502 - in /trunk: ./ main/channel.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Aug 16 15:41:00 CDT 2010


Author: twilson
Date: Mon Aug 16 15:40:55 2010
New Revision: 282502

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

................
  r282468 | twilson | 2010-08-16 12:53:44 -0500 (Mon, 16 Aug 2010) | 30 lines
  
  Merged revisions 282467 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r282467 | twilson | 2010-08-16 12:32:01 -0500 (Mon, 16 Aug 2010) | 23 lines
    
    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:
    trunk/   (props changed)
    trunk/main/channel.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: trunk/main/channel.c
URL: http://svnview.digium.com/svn/asterisk/trunk/main/channel.c?view=diff&rev=282502&r1=282501&r2=282502
==============================================================================
--- trunk/main/channel.c (original)
+++ trunk/main/channel.c Mon Aug 16 15:40:55 2010
@@ -5863,6 +5863,7 @@
 		struct ast_party_redirecting redirecting;
 	} exchange;
 	struct ast_channel *clonechan, *chans[2];
+	struct ast_channel *bridged;
 	struct ast_cdr *cdr;
 	format_t rformat = original->readformat;
 	format_t wformat = original->writeformat;
@@ -6185,6 +6186,14 @@
 		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);
+
 done:
 	/* it is possible for the clone channel to disappear during this */
 	if (clonechan) {
@@ -6196,6 +6205,7 @@
 		ast_channel_unlock(original);
 		ao2_link(channels, original);
 	}
+
 	return 0;
 }
 




More information about the svn-commits mailing list