mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
Add "skipaftercmd" option to voicemail to move to the next message automatically (bug #1984)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3407 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -263,6 +263,7 @@ static int reviewvm;
|
|||||||
static int calloper;
|
static int calloper;
|
||||||
static int saycidinfo;
|
static int saycidinfo;
|
||||||
static int hearenv;
|
static int hearenv;
|
||||||
|
static int skipaftercmd;
|
||||||
static char dialcontext[80];
|
static char dialcontext[80];
|
||||||
static char callcontext[80];
|
static char callcontext[80];
|
||||||
static char exitcontext[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");
|
cmd = play_and_wait(chan, "vm-deleted");
|
||||||
else
|
else
|
||||||
cmd = play_and_wait(chan, "vm-undeleted");
|
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;
|
break;
|
||||||
|
|
||||||
case '8':
|
case '8':
|
||||||
if(vms.lastmsg > -1)
|
if(vms.lastmsg > -1)
|
||||||
cmd = forward_message(chan, context, vms.curdir, vms.curmsg, vmu, vmfmts);
|
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)
|
if (!cmd)
|
||||||
cmd = play_and_wait(chan, "vm-messages");
|
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 '*':
|
case '*':
|
||||||
if (!vms.starting) {
|
if (!vms.starting) {
|
||||||
cmd = play_and_wait(chan, "vm-onefor");
|
cmd = play_and_wait(chan, "vm-onefor");
|
||||||
@@ -4131,6 +4150,7 @@ static int load_config(void)
|
|||||||
char *astsaycid;
|
char *astsaycid;
|
||||||
char *astcallop;
|
char *astcallop;
|
||||||
char *astreview;
|
char *astreview;
|
||||||
|
char *astskipcmd;
|
||||||
char *asthearenv;
|
char *asthearenv;
|
||||||
char *silencestr;
|
char *silencestr;
|
||||||
char *thresholdstr;
|
char *thresholdstr;
|
||||||
@@ -4292,6 +4312,13 @@ static int load_config(void)
|
|||||||
}
|
}
|
||||||
hearenv = ast_true(asthearenv);
|
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"))) {
|
if ((dialoutcxt = ast_variable_retrieve(cfg, "general", "dialout"))) {
|
||||||
strncpy(dialcontext, dialoutcxt, sizeof(dialcontext) - 1);
|
strncpy(dialcontext, dialoutcxt, sizeof(dialcontext) - 1);
|
||||||
ast_log(LOG_DEBUG, "found dialout context: %s\n", dialcontext);
|
ast_log(LOG_DEBUG, "found dialout context: %s\n", dialcontext);
|
||||||
|
@@ -104,6 +104,8 @@ maxlogins=3
|
|||||||
; This does NOT affect option 3,3 from the advanced options menu
|
; 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]
|
; 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.
|
; 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]
|
[zonemessages]
|
||||||
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
|
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
|
||||||
|
Reference in New Issue
Block a user