From d96eb988ff7422dc72662b51ce1d0cbb036138e0 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 18 Nov 2010 16:14:08 -0600 Subject: [PATCH] FS-2857 --- src/switch_ivr.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/switch_ivr.c b/src/switch_ivr.c index aa3de5ffd8..f076f6cb9f 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -911,7 +911,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_park(switch_core_session_t *session, switch_ivr_parse_all_events(session); - if (args && switch_channel_has_dtmf(channel)) { + if (switch_channel_has_dtmf(channel)) { switch_dtmf_t dtmf = { 0 }; if (args && !args->input_callback && !args->buf && !args->dmachine) { @@ -921,14 +921,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_park(switch_core_session_t *session, switch_channel_dequeue_dtmf(channel, &dtmf); - if (args->dmachine) { - char ds[2] = {dtmf.digit, '\0'}; - if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) { - break; - } - } else if (args->input_callback) { - if ((status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen)) != SWITCH_STATUS_SUCCESS) { - break; + if (args) { + if (args->dmachine) { + char ds[2] = {dtmf.digit, '\0'}; + if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) { + break; + } + } else if (args->input_callback) { + if ((status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen)) != SWITCH_STATUS_SUCCESS) { + break; + } } } }