diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index de2fc9941e..60c7a56338 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -1943,7 +1943,8 @@ static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t if (strcasecmp(argv[1], profile->name)) { stream->write_function(stream, "Alias Of \t%s\n", switch_str_nil(profile->name)); } - stream->write_function(stream, "DBName \t%s\n", switch_str_nil(profile->dbname)); + stream->write_function(stream, "Auto-NAT \t%s\n", sofia_test_pflag(profile, PFLAG_AUTO_NAT) ? "true" : "false"); + stream->write_function(stream, "DBName \t%s\n", profile->dbname ? profile->dbname : switch_str_nil(profile->odbc_dsn)); stream->write_function(stream, "Pres Hosts \t%s\n", switch_str_nil(profile->presence_hosts)); stream->write_function(stream, "Dialplan \t%s\n", switch_str_nil(profile->dialplan)); stream->write_function(stream, "Context \t%s\n", switch_str_nil(profile->context)); @@ -2172,7 +2173,8 @@ static switch_status_t cmd_xml_status(char **argv, int argc, switch_stream_handl if (strcasecmp(argv[1], profile->name)) { stream->write_function(stream, " %s\n", switch_str_nil(profile->name)); } - stream->write_function(stream, " %s\n", switch_str_nil(profile->dbname)); + stream->write_function(stream, " %s\n", sofia_test_pflag(profile, PFLAG_AUTO_NAT) ? "true" : "false"); + stream->write_function(stream, " %s\n", profile->dbname ? profile->dbname : switch_str_nil(profile->odbc_dsn)); stream->write_function(stream, " %s\n", switch_str_nil(profile->presence_hosts)); stream->write_function(stream, " %s\n", switch_str_nil(profile->dialplan)); stream->write_function(stream, " %s\n", switch_str_nil(profile->context)); diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 75ca4249ad..41203ffc54 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -3025,7 +3025,7 @@ switch_status_t config_sofia(int reload, char *profile_name) if (!profile->sipdomain) { profile->sipdomain = switch_core_strdup(profile->pool, profile->sipip); } - if (profile->extsipip && sofia_test_pflag(profile, PFLAG_AUTO_NAT)) { + if (profile->extsipip) { char *ipv6 = strchr(profile->extsipip, ':'); profile->public_url = switch_core_sprintf(profile->pool, "sip:%s@%s%s%s:%d", @@ -3036,7 +3036,7 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->sip_port); } - if (profile->extsipip && !sofia_test_pflag(profile, PFLAG_AUTO_NAT)) { + if (profile->extsipip) { char *ipv6 = strchr(profile->extsipip, ':'); profile->url = switch_core_sprintf(profile->pool, "sip:%s@%s%s%s:%d", @@ -3060,7 +3060,7 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->tcp_contact = switch_core_sprintf(profile->pool, "%s;transport=tcp", profile->url); - if (sofia_test_pflag(profile, PFLAG_AUTO_NAT)) { + if (profile->public_url) { profile->tcp_public_contact = switch_core_sprintf(profile->pool, "%s;transport=tcp", profile->public_url); } @@ -3077,7 +3077,7 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->tls_sip_port = (switch_port_t)atoi(SOFIA_DEFAULT_TLS_PORT); } - if (profile->extsipip && sofia_test_pflag(profile, PFLAG_AUTO_NAT)) { + if (profile->extsipip) { char *ipv6 = strchr(profile->extsipip, ':'); profile->tls_public_url = switch_core_sprintf(profile->pool, "sip:%s@%s%s%s:%d", @@ -3088,7 +3088,7 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->tls_sip_port); } - if (profile->extsipip && !sofia_test_pflag(profile, PFLAG_AUTO_NAT)) { + if (profile->extsipip) { char *ipv6 = strchr(profile->extsipip, ':'); profile->tls_url = switch_core_sprintf(profile->pool, @@ -3135,7 +3135,7 @@ switch_status_t config_sofia(int reload, char *profile_name) profile->tls_cert_dir = switch_core_sprintf(profile->pool, "%s/ssl", SWITCH_GLOBAL_dirs.conf_dir); } profile->tls_contact = switch_core_sprintf(profile->pool, "%s;transport=tls", profile->tls_url); - if (sofia_test_pflag(profile, PFLAG_AUTO_NAT)) { + if (profile->tls_public_url) { profile->tls_public_contact = switch_core_sprintf(profile->pool, "%s;transport=tls", profile->tls_public_url); } } diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 1146367382..0ae8ca6a65 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -933,10 +933,7 @@ char *sofia_glue_strip_uri(const char *str) int sofia_glue_check_nat(sofia_profile_t *profile, const char *network_ip) { - return (network_ip && - profile->local_network && - sofia_test_pflag(profile, PFLAG_AUTO_NAT) && - !switch_check_network_list_ip(network_ip, profile->local_network)); + return (profile->extsipip && !switch_check_network_list_ip(network_ip, profile->local_network)); } int sofia_glue_transport_has_tls(const sofia_transport_t tp) diff --git a/src/mod/endpoints/mod_sofia/sofia_sla.c b/src/mod/endpoints/mod_sofia/sofia_sla.c index bbd7e85439..5f2494335a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_sla.c +++ b/src/mod/endpoints/mod_sofia/sofia_sla.c @@ -383,7 +383,7 @@ static int sofia_sla_sub_callback(void *pArg, int argc, char **argv, char **colu } } - if (sofia_test_pflag(helper->profile, PFLAG_AUTO_NAT)) { + if (helper->profile->extsipip) { if (sofia_glue_check_nat(helper->profile, network_ip)) { fixup = switch_string_replace(helper->payload, helper->profile->sipip, helper->profile->extsipip); } else {