diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index ac22a23544..a04b564184 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2989,6 +2989,9 @@ switch_status_t config_sofia(int reload, char *profile_name) if (ip) { if (!strncasecmp(ip, "autonat:", 8)) { profile->extrtpip = switch_core_strdup(profile->pool, ip + 8); + if (zstr(profile->extsipip)) { + profile->extsipip = switch_core_strdup(profile->pool, profile->extrtpip); + } sofia_set_pflag(profile, PFLAG_AUTO_NAT); } else { profile->extrtpip = switch_core_strdup(profile->pool, ip); diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 29690fe80c..442a15a8e8 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1744,18 +1744,18 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) } } - if (!rpid_domain) { - rpid_domain = "cluecon.com"; - } - if (sofia_test_pflag(tech_pvt->profile, PFLAG_AUTO_NAT)) { - if (!zstr(tech_pvt->remote_ip) && sofia_glue_check_nat(tech_pvt->profile, tech_pvt->remote_ip)) { + if (!zstr(tech_pvt->remote_ip) && !zstr(profile->extsipip) && sofia_glue_check_nat(tech_pvt->profile, tech_pvt->remote_ip)) { rpid_domain = tech_pvt->profile->extsipip; } else { rpid_domain = tech_pvt->profile->sipip; } } + if (zstr(rpid_domain)) { + rpid_domain = "cluecon.com"; + } + /* * Ignore transport chanvar and uri parameter for gateway connections * since all of them have been already taken care of in mod_sofia.c:sofia_outgoing_channel()