core_unreal: Only block media frames when a generator is on both ends of an unreal...
authorRichard Mudgett <rmudgett@digium.com>
Wed, 21 May 2014 22:24:40 +0000 (22:24 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 21 May 2014 22:24:40 +0000 (22:24 +0000)
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
........

Merged revisions 414270 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 414272 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@414297 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/core_unreal.c

index bf6b527..ae7f9d2 100644 (file)
@@ -211,8 +211,11 @@ static int unreal_queue_frame(struct ast_unreal_pvt *p, int isoutbound, struct a
                return 0;
        }
 
-       /* do not queue frame if generator is on both unreal channels */
-       if (us && ast_channel_generator(us) && ast_channel_generator(other)) {
+       /* do not queue media frames if a generator is on both unreal channels */
+       if (us
+               && (f->frametype == AST_FRAME_VOICE || f->frametype == AST_FRAME_VIDEO)
+               && ast_channel_generator(us)
+               && ast_channel_generator(other)) {
                return 0;
        }