[Asterisk-code-review] channels/chan sip.c: use binding IP address for outgoing TCP... (asterisk[14])

Thierry Magnien asteriskteam at digium.com
Tue May 2 05:58:34 CDT 2017


Thierry Magnien has uploaded a new change for review. ( https://gerrit.asterisk.org/5571 )

Change subject: channels/chan_sip.c: use binding IP address for outgoing TCP SIP connections
......................................................................

channels/chan_sip.c: use binding IP address for outgoing TCP SIP connections

For outgoing TCP connections, Asterisk uses the first IP address of the
interface instead of the IP address we asked him to bind to.

ASTERISK-26922 #close
Reported-by: Ksenia

Change-Id: I43c71ca89211dbf1838e5bcdb9be8d06d98e54eb
---
M channels/chan_sip.c
1 file changed, 11 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/71/5571/1

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index c8e2fa7..2e386dd 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -29275,6 +29275,17 @@
 		}
 	}
 
+	/* If a bind address has been specified, use it */
+	if ((s->type == AST_TRANSPORT_TLS) && !ast_sockaddr_isnull(&sip_tls_desc.local_address)) {
+		ca->local_address = sip_tls_desc.local_address;
+	}
+	else if ((s->type == AST_TRANSPORT_TCP) && !ast_sockaddr_isnull(&sip_tcp_desc.local_address)) {
+		ca->local_address = sip_tcp_desc.local_address;
+	}
+	/* Reset tcp source port to zero to let system pick a random one */
+	if (!ast_sockaddr_isnull(&ca->local_address)) {
+		ast_sockaddr_set_port(&ca->local_address, 0);
+	}
 	/* Create a client connection for address, this does not start the connection, just sets it up. */
 	if (!(s->tcptls_session = ast_tcptls_client_create(ca))) {
 		goto create_tcptls_session_fail;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I43c71ca89211dbf1838e5bcdb9be8d06d98e54eb
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 14
Gerrit-Owner: Thierry Magnien <thierry.magnien at gmail.com>



More information about the asterisk-code-review mailing list