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;