mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-24 13:12:03 +00:00
FS-4779 I don't have this labbed up to try so can you try this patch and repost logs if it doesn't work
This commit is contained in:
@@ -1155,6 +1155,7 @@ static void our_sofia_event_callback(nua_event_t event,
|
||||
switch_core_recovery_track(session);
|
||||
sofia_set_flag(tech_pvt, TFLAG_GOT_ACK);
|
||||
|
||||
|
||||
if (sofia_test_flag(tech_pvt, TFLAG_PASS_ACK)) {
|
||||
switch_core_session_t *other_session;
|
||||
|
||||
@@ -5750,13 +5751,23 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
if (r_sdp && sofia_test_flag(tech_pvt, TFLAG_3PCC_INVITE) && !sofia_test_flag(tech_pvt, TFLAG_SDP)) {
|
||||
sofia_set_flag(tech_pvt, TFLAG_SDP);
|
||||
if (switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) {
|
||||
switch_core_session_message_t *msg;
|
||||
|
||||
other_channel = switch_core_session_get_channel(other_session);
|
||||
//other_tech_pvt = switch_core_session_get_private(other_session);
|
||||
|
||||
if (!switch_channel_get_variable(other_channel, SWITCH_B_SDP_VARIABLE)) {
|
||||
switch_channel_set_variable(other_channel, SWITCH_B_SDP_VARIABLE, r_sdp);
|
||||
}
|
||||
switch_core_session_queue_indication(other_session, SWITCH_MESSAGE_INDICATE_ANSWER);
|
||||
|
||||
msg = switch_core_session_alloc(other_session, sizeof(*msg));
|
||||
msg->message_id = SWITCH_MESSAGE_INDICATE_MEDIA_REDIRECT;
|
||||
msg->from = __FILE__;
|
||||
msg->string_arg = switch_core_session_strdup(other_session, r_sdp);
|
||||
msg->numeric_arg = 1; // send ack
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Passing SDP ACK to other leg.\n%s\n", r_sdp);
|
||||
|
||||
switch_core_session_queue_message(other_session, msg);
|
||||
|
||||
switch_core_session_rwunlock(other_session);
|
||||
}
|
||||
goto done;
|
||||
|
||||
Reference in New Issue
Block a user