summaryrefslogtreecommitdiff
path: root/apps/app_record.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/app_record.c')
-rw-r--r--apps/app_record.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/app_record.c b/apps/app_record.c
index 4008fc012..43a1e490f 100644
--- a/apps/app_record.c
+++ b/apps/app_record.c
@@ -447,8 +447,13 @@ static int record_exec(struct ast_channel *chan, const char *data)
if (gotsilence) {
ast_stream_rewind(s, silence - 1000);
ast_truncstream(s);
- } else if (!gottimeout) {
- /* Strip off the last 1/4 second of it */
+ } else if (!gottimeout && f) {
+ /*
+ * Strip off the last 1/4 second of it, if we didn't end because of a timeout,
+ * or a hangup. This must mean we ended because of a DTMF tone and while this
+ * 1/4 second stripping is very old code the most likely explanation is that it
+ * relates to stripping a partial DTMF tone.
+ */
ast_stream_rewind(s, 250);
ast_truncstream(s);
}