]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Bring both DTMF begin and end frames up through to the core for DTMF feature handling.
authorJoshua Colp <jcolp@digium.com>
Mon, 15 Oct 2007 16:22:02 +0000 (16:22 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 15 Oct 2007 16:22:02 +0000 (16:22 +0000)
(closes issue #10826)
Reported by: dimas

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

main/rtp.c

index 91d0965aa3ba8a86a4a61ae076cb85994a1d3a98..624f1673dd9ca2f4abb27c0169f84de1434a470a 100644 (file)
@@ -2913,7 +2913,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 */
@@ -2965,7 +2965,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) ||
@@ -3143,7 +3143,7 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast
                fr = ast_read(who);
                other = (who == c0) ? c1 : c0;
                /* Dependong 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 */
@@ -3185,7 +3185,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) ||