From 724b9ab28fecd06b0a1c13e0b71024728336bfe8 Mon Sep 17 00:00:00 2001 From: George Joseph Date: Wed, 30 Mar 2016 08:46:32 -0600 Subject: res_rtp_asterisk: Fix placement of txcount increment Commit 1bce690ccb36a4744a327c07af23a9a3a0fa20cd was incrementing txcount for rtcp packets as well as rtp packets and that was causing sender reports to be generated instead of receiver reports in cases where no rtp was actually being sent. Moved the txcount increment from __rtp_sento, which handles both rtp and rtcp, to rtp_sento which only handles rtp packets. Discovered by the hep/rtcp-receiver test. Change-Id: Ie442e4bb947a68847a676497021ba10ffaf376d5 --- res/res_rtp_asterisk.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'res/res_rtp_asterisk.c') diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 45bc3103a..9cc9f92a9 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -2252,7 +2252,6 @@ static int __rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t siz struct ast_rtp *rtp = ast_rtp_instance_get_data(instance); struct ast_srtp *srtp = ast_rtp_instance_get_srtp(instance); int res; - int hdrlen = 12; *ice = 0; @@ -2260,9 +2259,6 @@ static int __rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t siz return -1; } - rtp->txcount++; - rtp->txoctetcount += (len - hdrlen); - #ifdef HAVE_PJPROJECT if (rtp->ice) { pj_thread_register_check(); @@ -2289,7 +2285,16 @@ static int rtcp_sendto(struct ast_rtp_instance *instance, void *buf, size_t size static int rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t size, int flags, struct ast_sockaddr *sa, int *ice) { - return __rtp_sendto(instance, buf, size, flags, sa, 0, ice, 1); + struct ast_rtp *rtp = ast_rtp_instance_get_data(instance); + int hdrlen = 12; + int res; + + if ((res = __rtp_sendto(instance, buf, size, flags, sa, 0, ice, 1)) > 0) { + rtp->txcount++; + rtp->txoctetcount += (res - hdrlen); + } + + return res; } static int rtp_get_rate(struct ast_format *format) -- cgit v1.2.3