diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index cd6dada731..1aa681b472 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -2674,7 +2674,8 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_ transport_url = sip->sip_contact->m_url; } - transport = sofia_glue_url2transport(transport_url); + transport = sofia_glue_url2transport(transport_url); + tech_pvt->transport = transport; url_set_chanvars(session, sip->sip_to->a_url, sip_to); if (switch_channel_get_variable(channel, "sip_to_uri")) { diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 1cc43f6365..ed2969eab4 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -952,7 +952,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) * 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() */ - if (switch_strlen_zero(tech_pvt->gateway_name)) { + if (tech_pvt->transport == SOFIA_TRANSPORT_UNKNOWN && switch_strlen_zero(tech_pvt->gateway_name)) { if ((p = (char *)switch_stristr("port=", url))) { p += 5; tech_pvt->transport = sofia_glue_str2transport( p );