From 8a8e98da619fec4e4ab822f4ac769cc43a0429ee Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Thu, 20 Mar 2003 23:33:45 +0000 Subject: [PATCH] Moving from one digit to another digit is still okay git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@670 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- dsp.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/dsp.c b/dsp.c index 6af5d307fa..d349a7db99 100755 --- a/dsp.c +++ b/dsp.c @@ -1141,8 +1141,22 @@ struct ast_frame *ast_dsp_process(struct ast_channel *chan, struct ast_dsp *dsp, } else { if (digit) { /* Thought we saw one last time. Pretty sure we really have now */ - if (dsp->thinkdigit) + if (dsp->thinkdigit) { + if (dsp->thinkdigit != 'x') { + /* If we found a digit, and we're changing digits, go + ahead and send this one, but DON'T stop confmute because + we're detecting something else, too... */ + memset(&dsp->f, 0, sizeof(dsp->f)); + dsp->f.frametype = AST_FRAME_DTMF; + dsp->f.subclass = dsp->thinkdigit; + FIX_INF(af); + if (chan) + ast_queue_frame(chan, af, needlock); + ast_frfree(af); + } dsp->thinkdigit = digit; + return &dsp->f; + } } else { if (dsp->thinkdigit) { memset(&dsp->f, 0, sizeof(dsp->f));