diff --git a/include/asterisk/rtp.h b/include/asterisk/rtp.h index b8436578cb..6b2df7c02f 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 + * Mark Spencer * * 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 92dea1dcaa..7793054ccd 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)