]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
put menu passthrough code back by popular demand
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 24 Sep 2008 20:29:35 +0000 (20:29 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 24 Sep 2008 20:29:35 +0000 (20:29 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9639 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_voicemail/mod_voicemail.c

index 8fc6dd657e06a68d8638da246d8db75e80e448ca..c3c1f5fecb789918ea288aaf3e10780b48c34364 100644 (file)
@@ -1055,8 +1055,15 @@ static switch_status_t create_file(switch_core_session_t *session, vm_profile_t
 
                while (switch_channel_ready(channel)) {
                        *input = '\0';
-                       status = vm_macro_get(session, VM_RECORD_FILE_CHECK_MACRO, key_buf, input, sizeof(input), 1, "", &term, profile->digit_timeout);
 
+                       if (*cc.buf && *cc.buf != *profile->terminator_key) {
+                               *input = *cc.buf;
+                               *(input + 1) = '\0';
+                               status = SWITCH_STATUS_SUCCESS;
+                               *cc.buf = '\0';
+                       } else {
+                               status = vm_macro_get(session, VM_RECORD_FILE_CHECK_MACRO, key_buf, input, sizeof(input), 1, "", &term, profile->digit_timeout);
+                       }
 
                        if (!strcmp(input, profile->listen_file_key)) {
                                goto play_file;
@@ -1318,8 +1325,14 @@ static switch_status_t listen_file(switch_core_session_t *session, vm_profile_t
                }
 
                if (switch_channel_ready(channel)) {
-
-                       TRY_CODE(vm_macro_get(session, VM_LISTEN_FILE_CHECK_MACRO, key_buf, input, sizeof(input), 1, "", &term, profile->digit_timeout));
+                       if (*cc.buf && *cc.buf != *profile->terminator_key) {
+                               *input = *cc.buf;
+                               *(input + 1) = '\0';
+                               status = SWITCH_STATUS_SUCCESS;
+                               *cc.buf = '\0';
+                       } else {
+                               TRY_CODE(vm_macro_get(session, VM_LISTEN_FILE_CHECK_MACRO, key_buf, input, sizeof(input), 1, "", &term, profile->digit_timeout));
+                       }
 
                        if (!strcmp(input, profile->listen_file_key)) {
                                goto play_file;