From 50c27075ec73cec278738943359edccaa68a67f6 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 27 May 2014 20:39:53 +0500 Subject: [PATCH] FS-6446 --resolve Conflicts: src/mod/endpoints/mod_sofia/sofia.c --- src/mod/endpoints/mod_sofia/sofia.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index fb862b90d6..fbbf8d9be3 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -5071,8 +5071,9 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status caller_profile->network_addr = switch_core_strdup(caller_profile->pool, network_ip); } + tech_pvt->last_sdp_str = NULL; - if (!sofia_use_soa(tech_pvt) && sip->sip_payload && sip->sip_payload->pl_data) { + if (sip->sip_payload && sip->sip_payload->pl_data) { tech_pvt->last_sdp_str = switch_core_session_strdup(session, sip->sip_payload->pl_data); } @@ -5786,7 +5787,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, } } - if (status > 100 && status < 300 && tech_pvt && !sofia_use_soa(tech_pvt) && !r_sdp && tech_pvt->last_sdp_str) { + if (tech_pvt && (status > 100 || switch_channel_test_flag(channel, CF_ANSWERED)) && status < 300 && !r_sdp && tech_pvt->last_sdp_str) { r_sdp = tech_pvt->last_sdp_str; } @@ -7780,9 +7781,11 @@ void sofia_handle_sip_i_reinvite(switch_core_session_t *session, { char *call_info = NULL; switch_channel_t *channel = NULL; + private_object_t *tech_pvt = NULL; if (session) { channel = switch_core_session_get_channel(session); + tech_pvt = switch_core_session_get_private(session); } if (session && profile && sip && sofia_test_pflag(profile, PFLAG_TRACK_CALLS)) { @@ -7823,8 +7826,10 @@ void sofia_handle_sip_i_reinvite(switch_core_session_t *session, } if (channel) { + tech_pvt->last_sdp_str = NULL; if (sip->sip_payload && sip->sip_payload->pl_data) { switch_channel_set_variable(channel, "sip_reinvite_sdp", sip->sip_payload->pl_data); + tech_pvt->last_sdp_str = switch_core_session_strdup(session, sip->sip_payload->pl_data); } switch_channel_execute_on(channel, "execute_on_sip_reinvite"); }