FS-6637 try this instead

This commit is contained in:
Anthony Minessale 2014-07-01 23:59:40 +05:00
parent 0f017814dd
commit 1518240bab

View File

@ -1119,19 +1119,22 @@ static switch_status_t signal_bridge_on_hangup(switch_core_session_t *session)
const char *var;
if (!zstr(sbv) && !strcmp(sbv, switch_core_session_get_uuid(session))) {
int hup = 1;
switch_channel_set_variable(other_channel, SWITCH_SIGNAL_BRIDGE_VARIABLE, NULL);
switch_channel_set_variable(other_channel, SWITCH_BRIDGE_VARIABLE, NULL);
switch_channel_set_variable(other_channel, "call_uuid", switch_core_session_get_uuid(other_session));
if (switch_channel_up_nosig(other_channel)) {
if (switch_true(switch_channel_get_variable(other_channel, SWITCH_PARK_AFTER_BRIDGE_VARIABLE))) {
switch_ivr_park_session(other_session);
hup = 0;
} else if ((var = switch_channel_get_variable(other_channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE))) {
transfer_after_bridge(other_session, var);
hup = 0;
}
if (hup) {
if (switch_channel_test_flag(other_channel, CF_BRIDGE_ORIGINATOR)) {
if (switch_channel_test_flag(channel, CF_ANSWERED) &&
switch_true(switch_channel_get_variable(other_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE))) {
@ -1151,6 +1154,7 @@ static switch_status_t signal_bridge_on_hangup(switch_core_session_t *session)
}
}
}
}
if (switch_channel_test_flag(channel, CF_BRIDGE_ORIGINATOR)) {
switch_channel_clear_flag_recursive(channel, CF_BRIDGE_ORIGINATOR);