From eba05c3c01654a53a7f2eefcec40073b9bc10811 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 4 Jun 2010 10:15:04 -0500 Subject: [PATCH] allow uuid_break to interrupt one or all in a delimited string of files the same as several individual files --- src/mod/applications/mod_commands/mod_commands.c | 4 ++-- src/switch_ivr_play_say.c | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index e2accf3652..652f6d5e06 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -2729,14 +2729,14 @@ SWITCH_STANDARD_API(break_function) if (switch_channel_test_flag(channel, CF_BROADCAST)) { switch_channel_stop_broadcast(channel); } else { - switch_channel_set_flag(channel, CF_BREAK); + switch_channel_set_flag_value(channel, CF_BREAK, all ? 2 : 1); } if (qchannel) { if (switch_channel_test_flag(qchannel, CF_BROADCAST)) { switch_channel_stop_broadcast(qchannel); } else { - switch_channel_set_flag(qchannel, CF_BREAK); + switch_channel_set_flag_value(qchannel, CF_BREAK, all ? 2 : 1); } } diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 841cec94c4..3f19b9b96e 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -1195,14 +1195,18 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess for (;;) { int do_speed = 1; int last_speed = -1; - + int f; + if (!switch_channel_ready(channel)) { status = SWITCH_STATUS_FALSE; break; } - if (switch_channel_test_flag(channel, CF_BREAK)) { + if ((f = switch_channel_test_flag(channel, CF_BREAK))) { switch_channel_clear_flag(channel, CF_BREAK); + if (f == 2) { + done = 1; + } status = SWITCH_STATUS_BREAK; break; }