From 52126c2b314ea899ea59cebe44c92f4a06a1b000 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 15 Jul 2008 18:09:16 +0000 Subject: [PATCH] add fifo_consumer_exit_key variable (MODAPP-100) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9043 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_fifo/mod_fifo.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index 17e02a8278..c4211d2b1e 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -65,8 +65,15 @@ static switch_status_t on_dtmf(switch_core_session_t *session, void *input, swit switch_dtmf_t *dtmf = (switch_dtmf_t *) input; switch_channel_t *bchan = switch_core_session_get_channel(bleg); switch_channel_t *channel = switch_core_session_get_channel(session); + + const char *consumer_exit_key = switch_channel_get_variable(channel, "fifo_consumer_exit_key"); + if (switch_channel_test_flag(switch_core_session_get_channel(session), CF_ORIGINATOR)) { - if (dtmf->digit == '*') { + if ( consumer_exit_key && dtmf->digit == *consumer_exit_key ) { + switch_channel_hangup(bchan, SWITCH_CAUSE_NORMAL_CLEARING); + return SWITCH_STATUS_BREAK; + } + else if ( !consumer_exit_key && dtmf->digit == '*' ) { switch_channel_hangup(bchan, SWITCH_CAUSE_NORMAL_CLEARING); return SWITCH_STATUS_BREAK; } else if (dtmf->digit == '0') {