aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/channel.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/main/channel.c b/main/channel.c
index ac258dd34..b6e62deb8 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -2332,6 +2332,8 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
struct timeval now = ast_tvnow();
if (ast_tvdiff_ms(now, chan->dtmf_tv) >= chan->emulate_dtmf_duration) {
chan->emulate_dtmf_duration = 0;
+ ast_frfree(f);
+ f = &chan->dtmff;
f->frametype = AST_FRAME_DTMF_END;
f->subclass = chan->emulate_dtmf_digit;
f->len = ast_tvdiff_ms(now, chan->dtmf_tv);
@@ -2358,6 +2360,8 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
struct timeval now = ast_tvnow();
if (ast_tvdiff_ms(now, chan->dtmf_tv) >= chan->emulate_dtmf_duration) {
chan->emulate_dtmf_duration = 0;
+ ast_frfree(f);
+ f = &chan->dtmff;
f->frametype = AST_FRAME_DTMF_END;
f->subclass = chan->emulate_dtmf_digit;
f->len = ast_tvdiff_ms(now, chan->dtmf_tv);