From dd30ae97fab449f99580681a806b8eaff4cd2516 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 21 May 2007 21:44:35 +0000 Subject: [PATCH] make contact: match the to: in 200OK for the sake of interop git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5208 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 4 ++-- src/mod/endpoints/mod_sofia/sofia.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index d1cb37d901..98271d3d95 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -317,7 +317,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) } nua_respond(tech_pvt->nh, SIP_200_OK, - SIPTAG_CONTACT_STR(tech_pvt->profile->url), + SIPTAG_CONTACT_STR(tech_pvt->to_uri), SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str), SOATAG_AUDIO_AUX("cn telephone-event"), NUTAG_INCLUDE_EXTRA_SDP(1), TAG_END()); } @@ -680,7 +680,7 @@ static switch_status_t sofia_receive_message(switch_core_session_t *session, swi sofia_glue_set_local_sdp(tech_pvt, ip, atoi(port), msg->string_arg, 1); } nua_respond(tech_pvt->nh, SIP_200_OK, - SIPTAG_CONTACT_STR(tech_pvt->profile->url), + SIPTAG_CONTACT_STR(tech_pvt->to_uri), SOATAG_USER_SDP_STR(tech_pvt->local_sdp_str), SOATAG_AUDIO_AUX("cn telephone-event"), NUTAG_INCLUDE_EXTRA_SDP(1), TAG_END()); switch_channel_mark_answered(channel); } diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index 09c2c665ac..b1b4521a99 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -1812,7 +1812,13 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_ } if (sip->sip_to && sip->sip_to->a_url) { + char *val; url_set_chanvars(session, sip->sip_to->a_url, sip_to); + if ((val = switch_channel_get_variable(channel, "sip_to_uri"))) { + tech_pvt->to_uri = switch_core_session_sprintf(session, "sip:%s", val); + } else { + tech_pvt->to_uri = tech_pvt->profile->url; + } } if (sip->sip_contact && sip->sip_contact->m_url) {