- Fixing issues with "sip show settings"
- Adding IP address for TCP and/or TLS too if auto-domain is enabled and binding to a different IP address - Fixing documentation in sip.conf.sample git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@128524 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
3586b6212d
commit
638234f146
|
@ -13472,13 +13472,14 @@ static char *sip_show_settings(struct ast_cli_entry *e, int cmd, struct ast_cli_
|
||||||
ast_cli(a->fd, "%d\n", ntohs(sip_tcp_desc.sin.sin_port));
|
ast_cli(a->fd, "%d\n", ntohs(sip_tcp_desc.sin.sin_port));
|
||||||
ast_cli(a->fd, " TCP Bindaddress: %s\n", ast_inet_ntoa(sip_tcp_desc.sin.sin_addr));
|
ast_cli(a->fd, " TCP Bindaddress: %s\n", ast_inet_ntoa(sip_tcp_desc.sin.sin_addr));
|
||||||
} else {
|
} else {
|
||||||
ast_cli(a->fd, "Disabled");
|
ast_cli(a->fd, "Disabled\n");
|
||||||
}
|
}
|
||||||
|
ast_cli(a->fd, " TLS SIP Port: ");
|
||||||
if (default_tls_cfg.enabled != FALSE) {
|
if (default_tls_cfg.enabled != FALSE) {
|
||||||
ast_cli(a->fd, "%d\n", ntohs(sip_tls_desc.sin.sin_port));
|
ast_cli(a->fd, "%d\n", ntohs(sip_tls_desc.sin.sin_port));
|
||||||
ast_cli(a->fd, " TLS Bindaddress: %s\n", ast_inet_ntoa(sip_tls_desc.sin.sin_addr));
|
ast_cli(a->fd, " TLS Bindaddress: %s\n", ast_inet_ntoa(sip_tls_desc.sin.sin_addr));
|
||||||
} else {
|
} else {
|
||||||
ast_cli(a->fd, "Disabled");
|
ast_cli(a->fd, "Disabled\n");
|
||||||
}
|
}
|
||||||
ast_cli(a->fd, " Videosupport: %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_VIDEOSUPPORT)));
|
ast_cli(a->fd, " Videosupport: %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_VIDEOSUPPORT)));
|
||||||
ast_cli(a->fd, " Textsupport: %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT)));
|
ast_cli(a->fd, " Textsupport: %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT)));
|
||||||
|
@ -20754,7 +20755,7 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
time_t run_start, run_end;
|
time_t run_start, run_end;
|
||||||
|
|
||||||
run_start = time(0);
|
run_start = time(0);
|
||||||
ast_unload_realtime("sipregs");
|
ast_unload_realtime("sipregs");
|
||||||
ast_unload_realtime("sippeers");
|
ast_unload_realtime("sippeers");
|
||||||
cfg = ast_config_load(config, config_flags);
|
cfg = ast_config_load(config, config_flags);
|
||||||
|
|
||||||
|
@ -20948,7 +20949,6 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
if (!ast_jb_read_conf(&global_jbconf, v->name, v->value))
|
if (!ast_jb_read_conf(&global_jbconf, v->name, v->value))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* Create the dialogs list */
|
|
||||||
if (!strcasecmp(v->name, "context")) {
|
if (!strcasecmp(v->name, "context")) {
|
||||||
ast_copy_string(default_context, v->value, sizeof(default_context));
|
ast_copy_string(default_context, v->value, sizeof(default_context));
|
||||||
} else if (!strcasecmp(v->name, "subscribecontext")) {
|
} else if (!strcasecmp(v->name, "subscribecontext")) {
|
||||||
|
@ -20991,9 +20991,11 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
global_t1min = atoi(v->value);
|
global_t1min = atoi(v->value);
|
||||||
} else if (!strcasecmp(v->name, "tcpenable")) {
|
} else if (!strcasecmp(v->name, "tcpenable")) {
|
||||||
sip_tcp_desc.sin.sin_family = ast_false(v->value) ? 0 : AF_INET;
|
sip_tcp_desc.sin.sin_family = ast_false(v->value) ? 0 : AF_INET;
|
||||||
|
ast_debug(2, "Enabling TCP socket for listening\n");
|
||||||
} else if (!strcasecmp(v->name, "tcpbindaddr")) {
|
} else if (!strcasecmp(v->name, "tcpbindaddr")) {
|
||||||
if (ast_parse_arg(v->value, PARSE_INADDR, &sip_tcp_desc.sin))
|
if (ast_parse_arg(v->value, PARSE_INADDR, &sip_tcp_desc.sin))
|
||||||
ast_log(LOG_WARNING, "Invalid %s '%s' at line %d of %s\n", v->name, v->value, v->lineno, config);
|
ast_log(LOG_WARNING, "Invalid %s '%s' at line %d of %s\n", v->name, v->value, v->lineno, config);
|
||||||
|
ast_debug(2, "Setting TCP socket address to %s\n", v->value);
|
||||||
} else if (!strcasecmp(v->name, "tlsenable")) {
|
} else if (!strcasecmp(v->name, "tlsenable")) {
|
||||||
default_tls_cfg.enabled = ast_true(v->value) ? TRUE : FALSE;
|
default_tls_cfg.enabled = ast_true(v->value) ? TRUE : FALSE;
|
||||||
sip_tls_desc.sin.sin_family = AF_INET;
|
sip_tls_desc.sin.sin_family = AF_INET;
|
||||||
|
@ -21420,6 +21422,7 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set UDP address and open socket */
|
||||||
bindaddr.sin_family = AF_INET;
|
bindaddr.sin_family = AF_INET;
|
||||||
internip = bindaddr;
|
internip = bindaddr;
|
||||||
if (ast_find_ourip(&internip.sin_addr, bindaddr)) {
|
if (ast_find_ourip(&internip.sin_addr, bindaddr)) {
|
||||||
|
@ -21471,6 +21474,20 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
}
|
}
|
||||||
ast_mutex_unlock(&netlock);
|
ast_mutex_unlock(&netlock);
|
||||||
|
|
||||||
|
/* Start TCP server */
|
||||||
|
ast_tcptls_server_start(&sip_tcp_desc);
|
||||||
|
|
||||||
|
/* Start TLS server if needed */
|
||||||
|
memcpy(sip_tls_desc.tls_cfg, &default_tls_cfg, sizeof(default_tls_cfg));
|
||||||
|
|
||||||
|
if (ast_ssl_setup(sip_tls_desc.tls_cfg))
|
||||||
|
ast_tcptls_server_start(&sip_tls_desc);
|
||||||
|
else if (sip_tls_desc.tls_cfg->enabled) {
|
||||||
|
sip_tls_desc.tls_cfg = NULL;
|
||||||
|
ast_log(LOG_WARNING, "SIP TLS server did not load because of errors.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Add default domains - host name, IP address and IP:port
|
/* Add default domains - host name, IP address and IP:port
|
||||||
* Only do this if user added any sip domain with "localdomains"
|
* Only do this if user added any sip domain with "localdomains"
|
||||||
* In order to *not* break backwards compatibility
|
* In order to *not* break backwards compatibility
|
||||||
|
@ -21485,6 +21502,14 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
else
|
else
|
||||||
ast_log(LOG_NOTICE, "Can't add wildcard IP address to domain list, please add IP address to domain manually.\n");
|
ast_log(LOG_NOTICE, "Can't add wildcard IP address to domain list, please add IP address to domain manually.\n");
|
||||||
|
|
||||||
|
/* If TCP is running on a different IP than UDP, then add it too */
|
||||||
|
if (sip_tcp_desc.sin.sin_addr.s_addr && !inaddrcmp(&bindaddr, &sip_tcp_desc.sin))
|
||||||
|
add_sip_domain(ast_inet_ntoa(sip_tcp_desc.sin.sin_addr), SIP_DOMAIN_AUTO, NULL);
|
||||||
|
|
||||||
|
/* If TLS is running on a differen IP than UDP and TCP, then add that too */
|
||||||
|
if (sip_tls_desc.sin.sin_addr.s_addr && !inaddrcmp(&bindaddr, &sip_tls_desc.sin) && inaddrcmp(&sip_tcp_desc.sin, &sip_tls_desc.sin))
|
||||||
|
add_sip_domain(ast_inet_ntoa(sip_tls_desc.sin.sin_addr), SIP_DOMAIN_AUTO, NULL);
|
||||||
|
|
||||||
/* Our extern IP address, if configured */
|
/* Our extern IP address, if configured */
|
||||||
if (externip.sin_addr.s_addr)
|
if (externip.sin_addr.s_addr)
|
||||||
add_sip_domain(ast_inet_ntoa(externip.sin_addr), SIP_DOMAIN_AUTO, NULL);
|
add_sip_domain(ast_inet_ntoa(externip.sin_addr), SIP_DOMAIN_AUTO, NULL);
|
||||||
|
@ -21506,20 +21531,10 @@ static int reload_config(enum channelreloadreason reason)
|
||||||
ast_config_destroy(notify_types);
|
ast_config_destroy(notify_types);
|
||||||
notify_types = ast_config_load(notify_config, config_flags);
|
notify_types = ast_config_load(notify_config, config_flags);
|
||||||
|
|
||||||
memcpy(sip_tls_desc.tls_cfg, &default_tls_cfg, sizeof(default_tls_cfg));
|
|
||||||
ast_tcptls_server_start(&sip_tcp_desc);
|
|
||||||
|
|
||||||
if (ast_ssl_setup(sip_tls_desc.tls_cfg))
|
|
||||||
ast_tcptls_server_start(&sip_tls_desc);
|
|
||||||
else if (sip_tls_desc.tls_cfg->enabled) {
|
|
||||||
sip_tls_desc.tls_cfg = NULL;
|
|
||||||
ast_log(LOG_WARNING, "SIP TLS server did not load because of errors.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Done, tell the manager */
|
/* Done, tell the manager */
|
||||||
manager_event(EVENT_FLAG_SYSTEM, "ChannelReload", "ChannelType: SIP\r\nReloadReason: %s\r\nRegistry_Count: %d\r\nPeer_Count: %d\r\n", channelreloadreason2txt(reason), registry_count, peer_count);
|
manager_event(EVENT_FLAG_SYSTEM, "ChannelReload", "ChannelType: SIP\r\nReloadReason: %s\r\nRegistry_Count: %d\r\nPeer_Count: %d\r\n", channelreloadreason2txt(reason), registry_count, peer_count);
|
||||||
run_end = time(0);
|
run_end = time(0);
|
||||||
ast_debug(4, "reload_config done...Runtime= %d sec\n", (int)(run_end-run_start));
|
ast_debug(4, "SIP reload_config done...Runtime= %d sec\n", (int)(run_end-run_start));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,6 +79,7 @@ bindport=5060 ; UDP Port to bind to (SIP standard port for unencrypted UDP
|
||||||
; and TCP sessions is 5060)
|
; and TCP sessions is 5060)
|
||||||
; bindport is the local UDP port that Asterisk will listen on
|
; bindport is the local UDP port that Asterisk will listen on
|
||||||
bindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
|
bindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
|
||||||
|
; You can specify port here too, like 123.123.123.123:5080
|
||||||
|
|
||||||
;
|
;
|
||||||
; Note that the TCP and TLS support for chan_sip is currently considered
|
; Note that the TCP and TLS support for chan_sip is currently considered
|
||||||
|
@ -86,7 +87,7 @@ bindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to al
|
||||||
; subject to change in any release. If they are changed, the changes will
|
; subject to change in any release. If they are changed, the changes will
|
||||||
; be reflected in this sample configuration file, as well as in the UPGRADE.txt file.
|
; be reflected in this sample configuration file, as well as in the UPGRADE.txt file.
|
||||||
;
|
;
|
||||||
tcpenable=no ; Enable server for incoming TCP connections (default is yes)
|
tcpenable=no ; Enable server for incoming TCP connections (default is no)
|
||||||
tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
|
tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
|
||||||
; Optionally add a port number, 192.168.1.1:5062 (default is port 5060)
|
; Optionally add a port number, 192.168.1.1:5062 (default is port 5060)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue