[Asterisk-code-review] res pjsip sdp rtp: RTP instance does not use same IP as expl... (asterisk[14])

Richard Begg asteriskteam at digium.com
Tue Mar 14 16:34:40 CDT 2017


Richard Begg has uploaded a new change for review. ( https://gerrit.asterisk.org/5198 )

Change subject: res_pjsip_sdp_rtp: RTP instance does not use same IP as explicit transport
......................................................................

res_pjsip_sdp_rtp: RTP instance does not use same IP as explicit transport

Currently a wildcard address is used for the local RTP socket, which
will not always result in the same address as used by the SIP socket
(e.g. if explicit transport addresses are configured).
Use the transport's host address when binding new local RTP sockets if
available.

ASTERISK-26851

Change-Id: I098c29c9d1f79a4f970d72ba894874ac75954f1a
---
M res/res_pjsip_sdp_rtp.c
1 file changed, 8 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/98/5198/1

diff --git a/res/res_pjsip_sdp_rtp.c b/res/res_pjsip_sdp_rtp.c
index 8afa75d..f06c023 100644
--- a/res/res_pjsip_sdp_rtp.c
+++ b/res/res_pjsip_sdp_rtp.c
@@ -180,6 +180,14 @@
 	if (session->endpoint->media.bind_rtp_to_media_address && !ast_strlen_zero(session->endpoint->media.address)) {
 		ast_sockaddr_parse(&temp_media_address, session->endpoint->media.address, 0);
 		media_address = &temp_media_address;
+	} else {
+		struct ast_sip_transport *transport = ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "transport", session->endpoint->transport);
+		if (transport && transport->state) {
+			char hoststr[PJ_INET6_ADDRSTRLEN];
+			pj_sockaddr_print(&transport->state->host, hoststr, sizeof(hoststr), 0);
+			ast_debug(1, "Transport: %s bound to host: %s, using this for media.\n", session->endpoint->transport, hoststr);
+			ast_sockaddr_parse(media_address, hoststr, 0);
+		}
 	}
 
 	if (!(session_media->rtp = ast_rtp_instance_new(session->endpoint->media.rtp.engine, sched, media_address, NULL))) {

-- 
To view, visit https://gerrit.asterisk.org/5198
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I098c29c9d1f79a4f970d72ba894874ac75954f1a
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 14
Gerrit-Owner: Richard Begg <asterisk at meric.id.au>



More information about the asterisk-code-review mailing list