mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-06 18:30:01 +00:00
FS-6272 --resolve
Conflicts: src/include/switch_types.h
This commit is contained in:
parent
e8c163c1ee
commit
a0ba6de40d
@ -1315,6 +1315,7 @@ typedef enum {
|
|||||||
CF_NOVIDEO,
|
CF_NOVIDEO,
|
||||||
CF_VIDEO_ECHO,
|
CF_VIDEO_ECHO,
|
||||||
CF_SLA_INTERCEPT,
|
CF_SLA_INTERCEPT,
|
||||||
|
CF_HANGUP_HELD,
|
||||||
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
|
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
|
||||||
/* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */
|
/* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */
|
||||||
CF_FLAG_MAX
|
CF_FLAG_MAX
|
||||||
|
@ -3132,6 +3132,7 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_perform_hangup(switch_chan
|
|||||||
|
|
||||||
if (switch_channel_test_flag(channel, CF_LEG_HOLDING)) {
|
if (switch_channel_test_flag(channel, CF_LEG_HOLDING)) {
|
||||||
switch_channel_mark_hold(channel, SWITCH_FALSE);
|
switch_channel_mark_hold(channel, SWITCH_FALSE);
|
||||||
|
switch_channel_set_flag(channel, CF_HANGUP_HELD);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
|
@ -633,8 +633,7 @@ static void *audio_bridge_thread(switch_thread_t *thread, void *obj)
|
|||||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session_a), SWITCH_LOG_DEBUG, "BRIDGE THREAD DONE [%s]\n", switch_channel_get_name(chan_a));
|
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session_a), SWITCH_LOG_DEBUG, "BRIDGE THREAD DONE [%s]\n", switch_channel_get_name(chan_a));
|
||||||
switch_channel_clear_flag(chan_a, CF_BRIDGED);
|
switch_channel_clear_flag(chan_a, CF_BRIDGED);
|
||||||
|
|
||||||
if (switch_channel_test_flag(chan_a, CF_LEG_HOLDING)) {
|
if (switch_channel_test_flag(chan_a, CF_LEG_HOLDING) || switch_channel_test_flag(chan_a, CF_HANGUP_HELD)) {
|
||||||
|
|
||||||
if (switch_channel_ready(chan_b) && switch_channel_get_state(chan_b) != CS_PARK) {
|
if (switch_channel_ready(chan_b) && switch_channel_get_state(chan_b) != CS_PARK) {
|
||||||
const char *ext = switch_channel_get_variable(chan_a, "hold_hangup_xfer_exten");
|
const char *ext = switch_channel_get_variable(chan_a, "hold_hangup_xfer_exten");
|
||||||
|
|
||||||
@ -650,8 +649,11 @@ static void *audio_bridge_thread(switch_thread_t *thread, void *obj)
|
|||||||
switch_channel_set_variable(chan_b, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE, ext);
|
switch_channel_set_variable(chan_b, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE, ext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (switch_channel_test_flag(chan_a, CF_LEG_HOLDING)) {
|
||||||
switch_channel_mark_hold(chan_a, SWITCH_FALSE);
|
switch_channel_mark_hold(chan_a, SWITCH_FALSE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (switch_channel_test_flag(chan_a, CF_INTERCEPTED)) {
|
if (switch_channel_test_flag(chan_a, CF_INTERCEPTED)) {
|
||||||
switch_channel_set_flag(chan_b, CF_INTERCEPT);
|
switch_channel_set_flag(chan_b, CF_INTERCEPT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user