From 0c886c21c21eaa05154fd0b01970eddbe108609c Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Tue, 4 Oct 2005 22:35:43 +0000
Subject: [PATCH] truncate last 200ms of DTMF-terminated recording to eliminate
 inband DTMF (issue #5383)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 res/res_agi.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/res/res_agi.c b/res/res_agi.c
index c13eab760d..5645b79cbc 100755
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -962,7 +962,11 @@ static int handle_recordfile(struct ast_channel *chan, AGI *agi, int argc, char
 			switch(f->frametype) {
 			case AST_FRAME_DTMF:
 				if (strchr(argv[4], f->subclass)) {
-					/* This is an interrupting chracter */
+					/* This is an interrupting chracter, so rewind to chop off any small
+					   amount of DTMF that may have been recorded
+					*/
+					ast_stream_rewind(fs, 200);
+					ast_truncstream(fs);
 					sample_offset = ast_tellstream(fs);
 					fdprintf(agi->fd, "200 result=%d (dtmf) endpos=%ld\n", f->subclass, sample_offset);
 					ast_closestream(fs);
-- 
GitLab