]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
allow dmachine and input callback to co-exist
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 5 Jan 2012 15:39:18 +0000 (09:39 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 5 Jan 2012 15:39:18 +0000 (09:39 -0600)
src/switch_ivr.c
src/switch_ivr_play_say.c

index 1429a108f3b223d1770c557ffe3fc4ff546bb207..83b72e3b96a1d6f790978f56dbab6f5b1425d5b4 100644 (file)
@@ -259,7 +259,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_sleep(switch_core_session_t *session,
                                        if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                                break;
                                        }
-                               } else if (args->input_callback) {
+                               } 
+
+                               if (args->input_callback) {
                                        status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen);
                                } else {
                                        switch_copy_string((char *) args->buf, (void *) &dtmf, args->buflen);
@@ -1038,7 +1040,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_park(switch_core_session_t *session,
                                        if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                                break;
                                        }
-                               } else if (args->input_callback) {
+                               } 
+
+                               if (args->input_callback) {
                                        if ((status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen)) != SWITCH_STATUS_SUCCESS) {
                                                break;
                                        }
@@ -1147,7 +1151,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_callback(switch_core_s
                                if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                        break;
                                }
-                       } else if (args->input_callback) {
+                       } 
+
+                       if (args->input_callback) {
                                status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen);
                        }
 
index 5a1702ec6d998361e44935ef275c610af21ec508..650ce51897b7be02d92d32de037dc7a220a30f15 100644 (file)
@@ -660,7 +660,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *se
                                        if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                                break;
                                        }
-                               } else if (args->input_callback) {
+                               } 
+
+                               if (args->input_callback) {
                                        status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen);
                                } else {
                                        *((char *) args->buf) = dtmf.digit;
@@ -905,7 +907,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_gentones(switch_core_session_t *sessi
                                        if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                                break;
                                        }
-                               } else if (args->input_callback) {
+                               } 
+
+                               if (args->input_callback) {
                                        status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen);
                                } else {
                                        *((char *) args->buf) = dtmf.digit;
@@ -1405,7 +1409,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
                                                if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                                        break;
                                                }
-                                       } else if (args->input_callback) {
+                                       } 
+
+                                       if (args->input_callback) {
                                                status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen);
                                        } else {
                                                *((char *) args->buf) = dtmf.digit;
@@ -2215,7 +2221,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
                                                if ((status = switch_ivr_dmachine_feed(args->dmachine, ds, NULL)) != SWITCH_STATUS_SUCCESS) {
                                                        break;
                                                }
-                                       } else if (args->input_callback) {
+                                       } 
+
+                                       if (args->input_callback) {
                                                status = args->input_callback(session, (void *) &dtmf, SWITCH_INPUT_TYPE_DTMF, args->buf, args->buflen);
                                        } else {
                                                *((char *) args->buf) = dtmf.digit;