提交 ab073612 authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-4043 --resolve

上级 0eb9b010
...@@ -535,6 +535,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se ...@@ -535,6 +535,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
char *loop_h = switch_event_get_header(event, "loops"); char *loop_h = switch_event_get_header(event, "loops");
char *hold_bleg = switch_event_get_header(event, "hold-bleg"); char *hold_bleg = switch_event_get_header(event, "hold-bleg");
int loops = 1; int loops = 1;
int inner = 0;
if (zstr(app_arg) && !zstr(content_type) && !strcasecmp(content_type, "text/plain")) { if (zstr(app_arg) && !zstr(content_type) && !strcasecmp(content_type, "text/plain")) {
app_arg = switch_event_get_body(event); app_arg = switch_event_get_body(event);
...@@ -550,7 +551,13 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se ...@@ -550,7 +551,13 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
switch_core_session_t *b_session = NULL; switch_core_session_t *b_session = NULL;
switch_channel_clear_flag(channel, CF_STOP_BROADCAST); switch_channel_clear_flag(channel, CF_STOP_BROADCAST);
switch_channel_set_flag(channel, CF_BROADCAST);
if (switch_channel_test_flag(channel, CF_BROADCAST)) {
inner++;
hold_bleg = NULL;
} else {
switch_channel_set_flag(channel, CF_BROADCAST);
}
if (hold_bleg && switch_true(hold_bleg)) { if (hold_bleg && switch_true(hold_bleg)) {
if ((b_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))) { if ((b_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))) {
const char *stream; const char *stream;
...@@ -592,6 +599,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se ...@@ -592,6 +599,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
switch_channel_get_name(channel), app_name, switch_str_nil(app_arg)); switch_channel_get_name(channel), app_name, switch_str_nil(app_arg));
b4 = switch_micro_time_now(); b4 = switch_micro_time_now();
if (switch_core_session_execute_application(session, app_name, app_arg) != SWITCH_STATUS_SUCCESS) { if (switch_core_session_execute_application(session, app_name, app_arg) != SWITCH_STATUS_SUCCESS) {
if (!inner || switch_channel_test_flag(channel, CF_STOP_BROADCAST)) switch_channel_clear_flag(channel, CF_BROADCAST);
goto done; goto done;
} }
...@@ -610,7 +618,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se ...@@ -610,7 +618,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
} }
} }
switch_channel_clear_flag(channel, CF_BROADCAST); if (!inner || switch_channel_test_flag(channel, CF_STOP_BROADCAST)) {
switch_channel_clear_flag(channel, CF_BROADCAST);
switch_channel_set_flag(channel, CF_BREAK);
}
} }
} else if (cmd_hash == CMD_UNICAST) { } else if (cmd_hash == CMD_UNICAST) {
char *local_ip = switch_event_get_header(event, "local-ip"); char *local_ip = switch_event_get_header(event, "local-ip");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论