]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
0a63cdc4b2b35bb001513578beff0af431249b4a this might help
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 13 Feb 2014 00:50:39 +0000 (05:50 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 13 Feb 2014 00:50:39 +0000 (05:50 +0500)
src/mod/endpoints/mod_sofia/sofia.c

index 0024a61e0b46b8fd4c6785aa8d4cb09ae4a1f46d..f10d4ea9db22438f948890cac47b68251ff06a97 100644 (file)
@@ -6088,6 +6088,11 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                                        switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "DELAYED NEGOTIATION");
                                } else if (switch_channel_test_flag(channel, CF_PROXY_MEDIA)) {
                                        switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "PROXY MEDIA");
+                                       switch_core_media_patch_sdp(tech_pvt->session);
+                                       if (sofia_media_activate_rtp(tech_pvt) != SWITCH_STATUS_SUCCESS) {
+                                               nua_respond(nh, SIP_488_NOT_ACCEPTABLE, TAG_END());
+                                               switch_channel_hangup(channel, SWITCH_CAUSE_INCOMPATIBLE_DESTINATION);
+                                       }
                                } else {
                                        if (sofia_media_tech_media(tech_pvt, (char *) r_sdp) != SWITCH_STATUS_SUCCESS) {
                                                switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "CODEC NEGOTIATION ERROR");