From: Richard Mudgett Date: Wed, 21 May 2014 22:05:53 +0000 (+0000) Subject: chan_local: Only block media frames when a generator is on both ends of a local channel. X-Git-Tag: 11.10.0-rc1~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5843ab97dee3340429927a82cea03d3b3da4ad9;p=thirdparty%2Fasterisk.git 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 --- diff --git a/channels/chan_local.c b/channels/chan_local.c index 251465012f..d57df1b8f7 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -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; }