tweak fifo

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8013 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2008-04-03 21:31:04 +00:00
parent 85b79c083a
commit 5254865c40
1 changed files with 7 additions and 3 deletions

View File

@ -84,7 +84,10 @@ static switch_status_t moh_on_dtmf(switch_core_session_t *session, void *input,
case SWITCH_INPUT_TYPE_DTMF:
{
switch_dtmf_t *dtmf = (switch_dtmf_t *) input;
if (dtmf->digit == '*') {
switch_channel_t *channel = switch_core_session_get_channel(session);
const char *caller_exit_key = switch_channel_get_variable(channel, "fifo_caller_exit_key");
if (caller_exit_key && dtmf->digit == *caller_exit_key) {
char *bp = buf;
*bp = dtmf->digit;
return SWITCH_STATUS_BREAK;
@ -312,6 +315,7 @@ SWITCH_STANDARD_APP(fifo_function)
while(switch_channel_ready(channel)) {
switch_input_args_t args = { 0 };
char buf[25] = "";
const char *caller_exit_key = switch_channel_get_variable(channel, "fifo_caller_exit_key");
args.input_callback = moh_on_dtmf;
args.buf = buf;
args.buflen = sizeof(buf);
@ -327,7 +331,7 @@ SWITCH_STANDARD_APP(fifo_function)
switch_ivr_collect_digits_callback(session, &args, 0);
}
if (*buf == '*') {
if (caller_exit_key && *buf == *caller_exit_key) {
aborted = 1;
goto abort;
}