mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
chan_sip: externhost/externaddr with non-default TCP/TLS ports.
ASTERISK-28372 Reported by: Anton Satskiy ASTERISK-24428 Reported by: sstream Change-Id: I2b7432a9bf3b09dc8515297ff955636db7a6224c
This commit is contained in:
@@ -3864,9 +3864,21 @@ static void ast_sip_ouraddrfor(const struct ast_sockaddr *them, struct ast_socka
|
|||||||
/* for consistency, default to the externaddr port */
|
/* for consistency, default to the externaddr port */
|
||||||
externtcpport = ast_sockaddr_port(&externaddr);
|
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);
|
ast_sockaddr_set_port(us, externtcpport);
|
||||||
break;
|
break;
|
||||||
case AST_TRANSPORT_TLS:
|
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);
|
ast_sockaddr_set_port(us, externtlsport);
|
||||||
break;
|
break;
|
||||||
case AST_TRANSPORT_UDP:
|
case AST_TRANSPORT_UDP:
|
||||||
@@ -32386,8 +32398,8 @@ static int reload_config(enum channelreloadreason reason)
|
|||||||
default_primary_transport = AST_TRANSPORT_UDP;
|
default_primary_transport = AST_TRANSPORT_UDP;
|
||||||
ourport_tcp = STANDARD_SIP_PORT;
|
ourport_tcp = STANDARD_SIP_PORT;
|
||||||
ourport_tls = STANDARD_TLS_PORT;
|
ourport_tls = STANDARD_TLS_PORT;
|
||||||
externtcpport = STANDARD_SIP_PORT;
|
externtcpport = 0;
|
||||||
externtlsport = STANDARD_TLS_PORT;
|
externtlsport = 0;
|
||||||
sip_cfg.srvlookup = DEFAULT_SRVLOOKUP;
|
sip_cfg.srvlookup = DEFAULT_SRVLOOKUP;
|
||||||
global_tos_sip = DEFAULT_TOS_SIP;
|
global_tos_sip = DEFAULT_TOS_SIP;
|
||||||
global_tos_audio = DEFAULT_TOS_AUDIO;
|
global_tos_audio = DEFAULT_TOS_AUDIO;
|
||||||
@@ -32866,10 +32878,9 @@ static int reload_config(enum channelreloadreason reason)
|
|||||||
} else if (!strcasecmp(v->name, "externtcpport")) {
|
} else if (!strcasecmp(v->name, "externtcpport")) {
|
||||||
if (!(externtcpport = port_str2int(v->value, 0))) {
|
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);
|
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")) {
|
} 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);
|
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")) {
|
} else if (!strcasecmp(v->name, "allow")) {
|
||||||
|
Reference in New Issue
Block a user