Add "skipaftercmd" option to voicemail to move to the next message automatically...
authorMark Spencer <markster@digium.com>
Fri, 9 Jul 2004 07:39:39 +0000 (07:39 +0000)
committerMark Spencer <markster@digium.com>
Fri, 9 Jul 2004 07:39:39 +0000 (07:39 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3407 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c
configs/voicemail.conf.sample

index d071765..22fedbf 100755 (executable)
@@ -263,6 +263,7 @@ static int reviewvm;
 static int calloper;
 static int saycidinfo;
 static int hearenv;
+static int skipaftercmd;
 static char dialcontext[80];
 static char callcontext[80];
 static char exitcontext[80];
@@ -3771,7 +3772,16 @@ static int vm_execmain(struct ast_channel *chan, void *data)
                                        cmd = play_and_wait(chan, "vm-deleted");
                                else
                                        cmd = play_and_wait(chan, "vm-undeleted");
+                               if (skipaftercmd) {
+                                       if (vms.curmsg < vms.lastmsg) {
+                                               vms.curmsg++;
+                                               cmd = play_message(chan, vmu, &vms);
+                                       } else {
+                                               cmd = play_and_wait(chan, "vm-nomore");
+                                       }
+                                }
                                break;
+       
                        case '8':
                                if(vms.lastmsg > -1)
                                        cmd = forward_message(chan, context, vms.curdir, vms.curmsg, vmu, vmfmts);
@@ -3815,7 +3825,16 @@ static int vm_execmain(struct ast_channel *chan, void *data)
                                        if (!cmd)
                                                cmd = play_and_wait(chan, "vm-messages");
                                }
-                               break;
+                               if (skipaftercmd) {
+                                       if (vms.curmsg < vms.lastmsg) {
+                                                        vms.curmsg++;
+                                                       cmd = play_message(chan, vmu, &vms);
+                                       } else {
+                                               cmd = play_and_wait(chan, "vm-nomore");
+                                       }
+                               }
+                                break;
+
                        case '*':
                                if (!vms.starting) {
                                        cmd = play_and_wait(chan, "vm-onefor");
@@ -4131,6 +4150,7 @@ static int load_config(void)
        char *astsaycid;
        char *astcallop;
        char *astreview;
+       char *astskipcmd;
        char *asthearenv;
        char *silencestr;
        char *thresholdstr;
@@ -4291,7 +4311,14 @@ static int load_config(void)
                        asthearenv = "yes";
                }
                hearenv = ast_true(asthearenv); 
-               
+
+               skipaftercmd = 0;
+               if (!(astskipcmd = ast_variable_retrieve(cfg, "general", "nextaftercmd"))) {
+                       ast_log(LOG_DEBUG,"We are not going to skip to the next msg after save/delete\n");
+                       astskipcmd = "no";
+               }
+               skipaftercmd = ast_true(astskipcmd);
+
                if ((dialoutcxt = ast_variable_retrieve(cfg, "general", "dialout"))) {
                         strncpy(dialcontext, dialoutcxt, sizeof(dialcontext) - 1);
                         ast_log(LOG_DEBUG, "found dialout context: %s\n", dialcontext);
index b39f32f..5d6ba45 100755 (executable)
@@ -104,6 +104,8 @@ maxlogins=3
                        ;     This does NOT affect option 3,3 from the advanced options menu
 ; delete=yes           ; After notification, the voicemail is deleted from the server. [per-mailbox only]
                        ;     This is intended for use with users who wish to receive their voicemail ONLY by email.
+; nextaftercmd=yes     ; Skips to the next message after hitting 7 or 9 to delete/save current message.
+                       ;     [global option only at this time] 
                        
 [zonemessages]
 eastern=America/New_York|'vm-received' Q 'digits/at' IMp