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/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@282468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/1.8.6
Terry Wilson 15 years ago
parent 3c0616589e
commit e3075ea015

@ -5863,6 +5863,7 @@ int ast_do_masquerade(struct ast_channel *original)
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 @@ int ast_do_masquerade(struct ast_channel *original)
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 @@ done:
ast_channel_unlock(original);
ao2_link(channels, original);
}
return 0;
}

Loading…
Cancel
Save