From 34bdc9f8fe3862ce3213820d356a8ebbc45b7362 Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Thu, 19 Dec 2013 18:25:54 +0100 Subject: mgcp/rtp: Send dummy packet to the RTCP destination, too Currently a dummy packet is only sent to the RTP port. This is not enough if RTCP must also cross the SNAT. This patch sends an additional dummy packet to the RTCP net destination if omit_rtcp is not set. Sponsored-by: On-Waves ehf --- openbsc/src/libmgcp/mgcp_network.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'openbsc') diff --git a/openbsc/src/libmgcp/mgcp_network.c b/openbsc/src/libmgcp/mgcp_network.c index 04e6cbef8..0cc20416b 100644 --- a/openbsc/src/libmgcp/mgcp_network.c +++ b/openbsc/src/libmgcp/mgcp_network.c @@ -129,9 +129,16 @@ static int mgcp_udp_send(int fd, struct in_addr *addr, int port, char *buf, int mgcp_send_dummy(struct mgcp_endpoint *endp) { static char buf[] = { MGCP_DUMMY_LOAD }; + int rc; + + rc = mgcp_udp_send(endp->net_end.rtp.fd, &endp->net_end.addr, + endp->net_end.rtp_port, buf, 1); + + if (rc == -1 || endp->tcfg->omit_rtcp) + return rc; - return mgcp_udp_send(endp->net_end.rtp.fd, &endp->net_end.addr, - endp->net_end.rtp_port, buf, 1); + return mgcp_udp_send(endp->net_end.rtcp.fd, &endp->net_end.addr, + endp->net_end.rtcp_port, buf, 1); } static int32_t compute_timestamp_aligment_error(struct mgcp_rtp_stream_state *sstate, -- cgit v1.2.3