aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-09 16:37:36 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-09 16:37:36 +0000
commit96103d064116649eaa50661493f9d0ab19bc4dbe (patch)
tree0a2c749439ba3a4e2c3dcce27bb7ea5302af9b26 /main
parentc237684b0e6bd637af04b877cb6ce3cd599bbcf2 (diff)
Merged revisions 121282 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r121282 | russell | 2008-06-09 11:37:08 -0500 (Mon, 09 Jun 2008) | 18 lines Merged revisions 121280 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r121280 | russell | 2008-06-09 11:35:40 -0500 (Mon, 09 Jun 2008) | 10 lines Do not attempt to do emulation if an END digit is received and the length is less than the defined minimum digit length, and the other end only wants END digits (SIP INFO, for example). (closes issue #12778) Reported by: tsearle Patches: 12778.rev1.txt uploaded by russell (license 2) Tested by: tsearle ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@121283 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/channel.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/main/channel.c b/main/channel.c
index a6f353d2e..21d6b6f6e 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -2538,7 +2538,7 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
ast_log(LOG_DTMF, "DTMF end accepted without begin '%c' on %s\n", f->subclass, chan->name);
f->len = AST_MIN_DTMF_DURATION;
}
- if (f->len < AST_MIN_DTMF_DURATION) {
+ if (f->len < AST_MIN_DTMF_DURATION && !ast_test_flag(chan, AST_FLAG_END_DTMF_ONLY)) {
ast_log(LOG_DTMF, "DTMF end '%c' has duration %ld but want minimum %d, emulating on %s\n", f->subclass, f->len, AST_MIN_DTMF_DURATION, chan->name);
ast_set_flag(chan, AST_FLAG_EMULATE_DTMF);
chan->emulate_dtmf_digit = f->subclass;
@@ -2547,6 +2547,9 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
f = &ast_null_frame;
} else {
ast_log(LOG_DTMF, "DTMF end passthrough '%c' on %s\n", f->subclass, chan->name);
+ if (f->len < AST_MIN_DTMF_DURATION) {
+ f->len = AST_MIN_DTMF_DURATION;
+ }
chan->dtmf_tv = now;
}
if (chan->audiohooks) {