diff --git a/include/asterisk/rtp.h b/include/asterisk/rtp.h
index b8436578cb324be1312de1d4b374da04c8c8c13b..6b2df7c02fc155bd3d78e5356fb7404de2a97bf7 100755
--- a/include/asterisk/rtp.h
+++ b/include/asterisk/rtp.h
@@ -3,9 +3,9 @@
  *
  * Real-time Transport Protocol support
  * 
- * Copyright (C) 1999, Mark Spencer
+ * Copyright (C) 1999-2005, Digium
  *
- * Mark Spencer <markster@linux-support.net>
+ * Mark Spencer <markster@digium.com>
  *
  * This program is free software, distributed under the terms of
  * the GNU General Public License
@@ -60,6 +60,8 @@ void ast_rtp_get_us(struct ast_rtp *rtp, struct sockaddr_in *us);
 
 void ast_rtp_destroy(struct ast_rtp *rtp);
 
+void ast_rtp_reset(struct ast_rtp *rtp);
+
 void ast_rtp_set_callback(struct ast_rtp *rtp, ast_rtp_callback callback);
 
 void ast_rtp_set_data(struct ast_rtp *rtp, void *data);
diff --git a/rtp.c b/rtp.c
index 92dea1dcaa43a4a936784b3abee8ddd3d30940f8..7793054ccddfda8122be7dca97118e1983b7fabd 100755
--- a/rtp.c
+++ b/rtp.c
@@ -976,6 +976,24 @@ void ast_rtp_stop(struct ast_rtp *rtp)
 	}
 }
 
+void ast_rtp_reset(struct ast_rtp *rtp)
+{
+	memset(&rtp->rxcore, 0, sizeof(rtp->rxcore));
+	memset(&rtp->txcore, 0, sizeof(rtp->txcore));
+	memset(&rtp->dtmfmute, 0, sizeof(rtp->dtmfmute));
+	rtp->lastts = 0;
+	rtp->lastrxts = 0;
+	rtp->lastividtimestamp = 0;
+	rtp->lastovidtimestamp = 0;
+	rtp->lasteventseqn = 0;
+	rtp->lasttxformat = 0;
+	rtp->lastrxformat = 0;
+	rtp->dtmfcount = 0;
+	rtp->dtmfduration = 0;
+	rtp->seqno = 0;
+	rtp->rxseqno = 0;
+}
+
 void ast_rtp_destroy(struct ast_rtp *rtp)
 {
 	if (rtp->smoother)