Author: stkn Date: Tue Dec 18 17:06:20 2007 New Revision: 6883 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Log: Correctly handle a transport= parameter passed via destination url to mod_sofia Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Tue Dec 18 17:06:20 2007 @@ -701,18 +701,19 @@ rpid_domain = "cluecon.com"; } - if (switch_stristr("port=tcp", url)) { - transport = SOFIA_TRANSPORT_TCP; + if ((p = (char *)switch_stristr("port=", url))) { + p += 5; + transport = sofia_glue_str2transport( p ); } else { if ((t_var = switch_channel_get_variable(channel, "sip_transport"))) { - sofia_transport_t t_val; - - if ((t_val = sofia_glue_str2transport(t_var)) != SOFIA_TRANSPORT_UNKNOWN) { - transport = t_val; - } + transport = sofia_glue_str2transport(t_var); } } + if (transport == SOFIA_TRANSPORT_UNKNOWN) { + transport = SOFIA_TRANSPORT_UDP; + } + if (switch_strlen_zero(tech_pvt->invite_contact)) { if (sofia_glue_transport_has_tls(transport)) tech_pvt->invite_contact = tech_pvt->profile->tls_url;