diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 739b17b7783832fd7fbf6fde420159a01c50a3be..4fc42177ceae2d1946ae48a0ef8a4143a666aadc 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -5492,7 +5492,7 @@ static void process_dtmf_rfc2833(struct ast_rtp_instance *instance, unsigned cha if (event_end & 0x80) { /* End event */ - if ((rtp->last_seqno != seqno) && (timestamp > rtp->last_end_timestamp)) { + if ((rtp->last_seqno != seqno) && ((timestamp > rtp->last_end_timestamp) || ((timestamp == 0) && (rtp->last_end_timestamp == 0)))) { rtp->last_end_timestamp = timestamp; rtp->dtmf_duration = new_duration; rtp->resp = resp;