chan_sip: externhost/externaddr with non-default TCP/TLS ports.

ASTERISK-28372
Reported by: Anton Satskiy

ASTERISK-24428
Reported by: sstream

Change-Id: I2b7432a9bf3b09dc8515297ff955636db7a6224c
13.33
Alexander Traud 5 years ago
parent f91dc188dd
commit 91ce91dbc6

@ -3864,9 +3864,21 @@ static void ast_sip_ouraddrfor(const struct ast_sockaddr *them, struct ast_socka
/* for consistency, default to the externaddr port */
externtcpport = ast_sockaddr_port(&externaddr);
}
if (!externtcpport) {
externtcpport = ast_sockaddr_port(&sip_tcp_desc.local_address);
}
if (!externtcpport) {
externtcpport = STANDARD_SIP_PORT;
}
ast_sockaddr_set_port(us, externtcpport);
break;
case AST_TRANSPORT_TLS:
if (!externtlsport) {
externtlsport = ast_sockaddr_port(&sip_tls_desc.local_address);
}
if (!externtlsport) {
externtlsport = STANDARD_TLS_PORT;
}
ast_sockaddr_set_port(us, externtlsport);
break;
case AST_TRANSPORT_UDP:
@ -32386,8 +32398,8 @@ static int reload_config(enum channelreloadreason reason)
default_primary_transport = AST_TRANSPORT_UDP;
ourport_tcp = STANDARD_SIP_PORT;
ourport_tls = STANDARD_TLS_PORT;
externtcpport = STANDARD_SIP_PORT;
externtlsport = STANDARD_TLS_PORT;
externtcpport = 0;
externtlsport = 0;
sip_cfg.srvlookup = DEFAULT_SRVLOOKUP;
global_tos_sip = DEFAULT_TOS_SIP;
global_tos_audio = DEFAULT_TOS_AUDIO;
@ -32866,10 +32878,9 @@ static int reload_config(enum channelreloadreason reason)
} else if (!strcasecmp(v->name, "externtcpport")) {
if (!(externtcpport = port_str2int(v->value, 0))) {
ast_log(LOG_WARNING, "Invalid externtcpport value, must be a positive integer between 1 and 65535 at line %d\n", v->lineno);
externtcpport = 0;
}
} else if (!strcasecmp(v->name, "externtlsport")) {
if (!(externtlsport = port_str2int(v->value, STANDARD_TLS_PORT))) {
if (!(externtlsport = port_str2int(v->value, 0))) {
ast_log(LOG_WARNING, "Invalid externtlsport value, must be a positive integer between 1 and 65535 at line %d\n", v->lineno);
}
} else if (!strcasecmp(v->name, "allow")) {

Loading…
Cancel
Save