diff options
Diffstat (limited to 'apps/app_record.c')
-rw-r--r-- | apps/app_record.c | 9 |
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); } |