diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 465f9bc23ac51e381bf88d74feb00d1fb700243c..ff8e453055a774f2a0b5d18d9e444b9993b7629e 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -6438,6 +6438,16 @@ static struct ast_frame *ast_rtp_interpret(struct ast_rtp_instance *instance, st switch (ast_format_get_type(rtp->f.subclass.format)) { case AST_MEDIA_TYPE_AUDIO: rtp->f.frametype = AST_FRAME_VOICE; + + /* The marker bit set on the voice packet indicates the start + * of a new stream and a new time stamp. Need to reset the DTMF + * last sequence number and the timestamp of the last END packet. + */ + if (mark) { + rtp->last_seqno = 0; + rtp->last_end_timestamp = 0; + } + break; case AST_MEDIA_TYPE_VIDEO: rtp->f.frametype = AST_FRAME_VIDEO;