chan_local: Only block media frames when a generator is on both ends of a local channel.

The fix for ASTERISK-12292 was a bit too aggressive.  You could have
generators pointed at each other on local channels but need to get other
kinds of frames such as DTMF or CONNECTED_LINE frames accross.
........

Merged revisions 414269 from http://svn.asterisk.org/svn/asterisk/branches/1.8


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@414270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2014-05-21 22:05:53 +00:00
parent 7d1a06a5dd
commit e5843ab97d

View File

@@ -429,8 +429,11 @@ static int local_queue_frame(struct local_pvt *p, int isoutbound, struct ast_fra
return 0;
}
/* do not queue frame if generator is on both local channels */
if (us && ast_channel_generator(us) && ast_channel_generator(other)) {
/* do not queue media frames if a generator is on both local channels */
if (us
&& (f->frametype == AST_FRAME_VOICE || f->frametype == AST_FRAME_VIDEO)
&& ast_channel_generator(us)
&& ast_channel_generator(other)) {
return 0;
}