Author: brian Date: Wed Jun 3 12:30:49 2009 New Revision: 13577 Log: cleanup by mike and bkw Modified: freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia.c freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Modified: freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia.c ============================================================================== --- freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia.c (original) +++ freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia.c Wed Jun 3 12:30:49 2009 @@ -4491,8 +4491,8 @@ if (sofia_test_pflag(profile, PFLAG_AUTO_NAT) && profile->local_network && !switch_check_network_list_ip(tech_pvt->remote_ip, profile->local_network)) { - sofia_transport_t transport = sofia_glue_url2transport(sip->sip_contact->m_url); - tech_pvt->user_via = switch_core_session_sprintf(session, "SIP/2.0/%s %s;rport", sofia_glue_transport2str(transport), + tech_pvt->user_via = switch_core_session_sprintf(session, "SIP/2.0/%s %s;rport", + sofia_glue_transport2str(sofia_glue_url2transport(sip->sip_contact->m_url)), profile->extsipip); } @@ -4690,17 +4690,17 @@ if (sofia_test_pflag(profile, PFLAG_MANAGE_SHARED_APPEARANCE)) { tech_pvt->reply_contact = switch_core_session_sprintf(session, "<sip:%s@%s>", user, host); } else { - const char *url; + const char *url = NULL; if (sofia_test_pflag(profile, PFLAG_AUTO_NAT) && profile->local_network && !switch_check_network_list_ip(tech_pvt->remote_ip, profile->local_network)) { - - if (sofia_glue_transport_has_tls(transport)) { - url = profile->tls_public_url; - } else { - url = profile->public_url; - } + url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_public_url : profile->public_url; + } else { + url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_url : profile->url; + } + + if (url) { if (strchr(url, '>')) { tech_pvt->reply_contact = switch_core_session_sprintf(session, "%s;transport=%s", url, sofia_glue_transport2str(transport)); @@ -4708,42 +4708,30 @@ tech_pvt->reply_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", profile->url, sofia_glue_transport2str(transport)); } - } else if ((url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_url : profile->url)) { - if (strchr(url, '>')) { - tech_pvt->reply_contact = switch_core_session_sprintf(session, "%s;transport=%s", url, sofia_glue_transport2str(transport)); - } else { - tech_pvt->reply_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", url, sofia_glue_transport2str(transport)); - } } else { switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); } } } } else { - const char *url; - + const char *url = NULL; + if (sofia_test_pflag(profile, PFLAG_AUTO_NAT) && profile->local_network && !switch_check_network_list_ip(tech_pvt->remote_ip, profile->local_network)) { - if (sofia_glue_transport_has_tls(transport)) { - url = profile->tls_public_url; - } else { - url = profile->public_url; - } - + url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_public_url : profile->public_url; + } else { + url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_url : profile->url; + } + + if (url) { if (strchr(url, '>')) { tech_pvt->reply_contact = switch_core_session_sprintf(session, "%s;transport=%s", url, sofia_glue_transport2str(transport)); } else { - tech_pvt->reply_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", url, + tech_pvt->reply_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", profile->url, sofia_glue_transport2str(transport)); } - } else if ((url = (sofia_glue_transport_has_tls(transport)) ? profile->tls_url : profile->url)) { - if (strchr(url, '>')) { - tech_pvt->reply_contact = switch_core_session_sprintf(session, "%s;transport=%s", url, sofia_glue_transport2str(transport)); - } else { - tech_pvt->reply_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", url, sofia_glue_transport2str(transport)); - } } else { switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); } Modified: freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c ============================================================================== --- freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original) +++ freeswitch/branches/brian/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Wed Jun 3 12:30:49 2009 @@ -665,28 +665,16 @@ } } - if (switch_channel_direction(tech_pvt->channel) == SWITCH_CALL_DIRECTION_OUTBOUND) { - if (tech_pvt->remote_ip && sofia_test_pflag(tech_pvt->profile, PFLAG_AUTO_NAT) && tech_pvt->profile->local_network && - !switch_check_network_list_ip(tech_pvt->remote_ip, tech_pvt->profile->local_network)) { - tech_pvt->adv_sdp_audio_ip = switch_core_session_strdup(tech_pvt->session, tech_pvt->profile->extrtpip); - } else { - tech_pvt->adv_sdp_audio_ip = switch_core_session_strdup(tech_pvt->session, ip); - } + if (tech_pvt->remote_ip && sofia_test_pflag(tech_pvt->profile, PFLAG_AUTO_NAT) && tech_pvt->profile->local_network && + !switch_check_network_list_ip(tech_pvt->remote_ip, tech_pvt->profile->local_network)) { + tech_pvt->adv_sdp_audio_ip = switch_core_session_strdup(tech_pvt->session, tech_pvt->profile->extrtpip); + switch_nat_add_mapping((switch_port_t)sdp_port, SWITCH_NAT_UDP); } else { - if (tech_pvt->remote_ip && sofia_test_pflag(tech_pvt->profile, PFLAG_AUTO_NAT) && tech_pvt->profile->local_network && - !switch_check_network_list_ip(tech_pvt->remote_ip, tech_pvt->profile->local_network)) { - tech_pvt->adv_sdp_audio_ip = switch_core_session_strdup(tech_pvt->session, tech_pvt->profile->extrtpip); - } else { - tech_pvt->adv_sdp_audio_ip = switch_core_session_strdup(tech_pvt->session, ip); - } + tech_pvt->adv_sdp_audio_ip = switch_core_session_strdup(tech_pvt->session, ip); } - + tech_pvt->adv_sdp_audio_port = sdp_port; - if (sofia_test_pflag(tech_pvt->profile, PFLAG_AUTO_NAT) && !switch_check_network_list_ip(tech_pvt->remote_ip, tech_pvt->profile->local_network)) { - switch_nat_add_mapping((switch_port_t)sdp_port, SWITCH_NAT_UDP); - } - switch_snprintf(tmp, sizeof(tmp), "%d", sdp_port); switch_channel_set_variable(tech_pvt->channel, SWITCH_LOCAL_MEDIA_IP_VARIABLE, tech_pvt->adv_sdp_audio_ip); switch_channel_set_variable(tech_pvt->channel, SWITCH_LOCAL_MEDIA_PORT_VARIABLE, tmp);