aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-07-10 23:34:06 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-07-10 23:34:06 +0000
commitf39304a785d688a636540e890ea6d80a52a1f991 (patch)
tree7d9f8eb62a4678fb799746d7503969516d5f5dc1 /apps
parentf2ea5630a957156e037518931156df92f270d503 (diff)
Merged revisions 74476 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r74476 | mmichelson | 2007-07-10 18:32:52 -0500 (Tue, 10 Jul 2007) | 5 lines Forwarding a message with IMAP storage was storing the message in the sender's box instead of the forwarded mailbox. (closes issue #10138, reported and patched by jaroth) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@74477 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_voicemail.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index c837e5d41..54d312b04 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -4176,6 +4176,7 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
char *temp;
char todir[256];
int todircount=0;
+ struct vm_state *dstvms;
#endif
char username[70]="";
int res = 0, cmd = 0;
@@ -4366,7 +4367,19 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
/* should not assume "fmt" here! */
save_body(body,vms,"2",fmt);
- STORE(todir, vmtmp->mailbox, vmtmp->context, vms->curmsg, chan, vmtmp, fmt, duration, vms);
+ /* get destination mailbox */
+ dstvms = get_vm_state_by_mailbox(vmtmp->mailbox,0);
+ if (dstvms) {
+ init_mailstream(dstvms, 0);
+ if (!dstvms->mailstream) {
+ ast_log (LOG_ERROR,"IMAP mailstream for %s is NULL\n",vmtmp->mailbox);
+ } else {
+ STORE(todir, vmtmp->mailbox, vmtmp->context, dstvms->curmsg, chan, vmtmp, fmt, duration, dstvms);
+ run_externnotify(vmtmp->context, vmtmp->mailbox);
+ }
+ } else {
+ ast_log (LOG_ERROR,"Could not find state information for mailbox %s\n",vmtmp->mailbox);
+ }
if (!ast_strlen_zero(vmtmp->serveremail))
myserveremail = vmtmp->serveremail;