]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7135: [mod_sofia] fix response to re-invite with duplicate sdp (such as we get...
authorMike Jerris <mike@jerris.com>
Thu, 27 Aug 2015 16:42:29 +0000 (11:42 -0500)
committerMichael Jerris <mike@jerris.com>
Tue, 1 Sep 2015 20:26:22 +0000 (15:26 -0500)
src/mod/endpoints/mod_sofia/sofia.c

index eca43106cb21c3473c7b740ab43314d1cd2bb1b8..9d60d0b38619889ed1a2c64f52bcae63dbb43ad2 100644 (file)
@@ -6926,6 +6926,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                                                su_home_t *home = NULL;
                                                switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "RECEIVED");
                                                sofia_set_flag_locked(tech_pvt, TFLAG_READY);
+
                                                if (switch_channel_get_state(channel) == CS_NEW) {
                                                        switch_channel_set_state(channel, CS_INIT);
                                                } else {
@@ -7053,6 +7054,11 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                        }
                        nua_respond(tech_pvt->nh, SIP_200_OK, TAG_END());
                        goto done;
+               } else if (r_sdp && !sofia_use_soa(tech_pvt)) {
+                       nua_respond(tech_pvt->nh, SIP_200_OK,
+                                               NUTAG_MEDIA_ENABLE(0),
+                                               SIPTAG_CONTACT_STR(tech_pvt->profile->url),
+                                               SIPTAG_CONTENT_TYPE_STR("application/sdp"), SIPTAG_PAYLOAD_STR(tech_pvt->mparams.local_sdp_str), TAG_END());
                } else {
                        ss_state = nua_callstate_completed;
                        goto state_process;