Merged revisions 85559 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Mon, 15 Oct 2007 16:23:41 +0000 (16:23 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 15 Oct 2007 16:23:41 +0000 (16:23 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r85559 | file | 2007-10-15 13:22:02 -0300 (Mon, 15 Oct 2007) | 4 lines

Bring both DTMF begin and end frames up through to the core for DTMF feature handling.
(closes issue #10826)
Reported by: dimas

........

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

main/rtp.c

index 3c33d82..3d2d826 100644 (file)
@@ -3308,7 +3308,7 @@ static enum ast_bridge_result bridge_native_loop(struct ast_channel *c0, struct
                }
                fr = ast_read(who);
                other = (who == c0) ? c1 : c0;
-               if (!fr || ((fr->frametype == AST_FRAME_DTMF) &&
+               if (!fr || ((fr->frametype == AST_FRAME_DTMF_BEGIN || fr->frametype == AST_FRAME_DTMF_END) &&
                            (((who == c0) && (flags & AST_BRIDGE_DTMF_CHANNEL_0)) ||
                             ((who == c1) && (flags & AST_BRIDGE_DTMF_CHANNEL_1))))) {
                        /* Break out of bridge */
@@ -3360,7 +3360,7 @@ static enum ast_bridge_result bridge_native_loop(struct ast_channel *c0, struct
                        }
                } else {
                        if ((fr->frametype == AST_FRAME_DTMF_BEGIN) ||
-                           (fr->frametype == AST_FRAME_DTMF) ||
+                           (fr->frametype == AST_FRAME_DTMF_END) ||
                            (fr->frametype == AST_FRAME_VOICE) ||
                            (fr->frametype == AST_FRAME_VIDEO) ||
                            (fr->frametype == AST_FRAME_IMAGE) ||
@@ -3548,7 +3548,7 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
                fr = ast_read(who);
                other = (who == c0) ? c1 : c0;
                /* Depending on the frame we may need to break out of our bridge */
-               if (!fr || ((fr->frametype == AST_FRAME_DTMF) &&
+               if (!fr || ((fr->frametype == AST_FRAME_DTMF_BEGIN || fr->frametype == AST_FRAME_DTMF_END) &&
                            ((who == c0) && (flags & AST_BRIDGE_DTMF_CHANNEL_0)) |
                            ((who == c1) && (flags & AST_BRIDGE_DTMF_CHANNEL_1)))) {
                        /* Record received frame and who */
@@ -3589,7 +3589,7 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
                        }
                } else {
                        if ((fr->frametype == AST_FRAME_DTMF_BEGIN) ||
-                           (fr->frametype == AST_FRAME_DTMF) ||
+                           (fr->frametype == AST_FRAME_DTMF_END) ||
                            (fr->frametype == AST_FRAME_VOICE) ||
                            (fr->frametype == AST_FRAME_VIDEO) ||
                            (fr->frametype == AST_FRAME_IMAGE) ||