aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorautomerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-08 07:17:28 +0000
committerautomerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b>2007-05-08 07:17:28 +0000
commit5cbf299489bda440a975c0b3e0b3a3ffa4476218 (patch)
tree4d0fd95176623baec91562d3f16e2ebf397f6002 /apps
parent62d4903739d13d7a1f7a421fb1164717a53171fd (diff)
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@63399 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_voicemail.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index ce6b545fd..caa81a3fd 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -5443,21 +5443,24 @@ static int vm_execmain(struct ast_channel *chan, void *data)
}
break;
case '7':
- vms.deleted[vms.curmsg] = !vms.deleted[vms.curmsg];
- if (useadsi)
- adsi_delete(chan, &vms);
- if (vms.deleted[vms.curmsg])
- cmd = ast_play_and_wait(chan, "vm-deleted");
- else
- cmd = ast_play_and_wait(chan, "vm-undeleted");
- if (ast_test_flag((&globalflags), VM_SKIPAFTERCMD)) {
- if (vms.curmsg < vms.lastmsg) {
- vms.curmsg++;
- cmd = play_message(chan, vmu, &vms);
- } else {
- cmd = ast_play_and_wait(chan, "vm-nomore");
+ if (vms.curmsg >= 0 && vms.curmsg <= vms.lastmsg) {
+ vms.deleted[vms.curmsg] = !vms.deleted[vms.curmsg];
+ if (useadsi)
+ adsi_delete(chan, &vms);
+ if (vms.deleted[vms.curmsg])
+ cmd = ast_play_and_wait(chan, "vm-deleted");
+ else
+ cmd = ast_play_and_wait(chan, "vm-undeleted");
+ if (ast_test_flag((&globalflags), VM_SKIPAFTERCMD)) {
+ if (vms.curmsg < vms.lastmsg) {
+ vms.curmsg++;
+ cmd = play_message(chan, vmu, &vms);
+ } else {
+ cmd = ast_play_and_wait(chan, "vm-nomore");
+ }
}
- }
+ } else /* Delete not valid if we haven't selected a message */
+ cmd = 0;
break;
case '8':