[asterisk-commits] jrose: branch 1.8 r345487 - /branches/1.8/apps/app_voicemail.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Nov 16 08:42:23 CST 2011
Author: jrose
Date: Wed Nov 16 08:42:18 2011
New Revision: 345487
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=345487
Log:
Guarantee messages go into the right folders with multiple recipients
Before, using the U flag in Voicemail with multiple recipients would put urgent messages
in the INBOX folder for all users past the first thanks to a bug with the message
copying function. This would also cause messages to fail to be sent if the INBOX
directory hadn't been created for that mailbox yet.
(closes issue ASTERISK-18245)
Reported by: Matt Jordan
(closes issue ASTERISK-18246)
Reported by: Matt Jordan
Modified:
branches/1.8/apps/app_voicemail.c
Modified: branches/1.8/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_voicemail.c?view=diff&rev=345487&r1=345486&r2=345487
==============================================================================
--- branches/1.8/apps/app_voicemail.c (original)
+++ branches/1.8/apps/app_voicemail.c Wed Nov 16 08:42:18 2011
@@ -5311,24 +5311,27 @@
{
char fromdir[PATH_MAX], todir[PATH_MAX], frompath[PATH_MAX], topath[PATH_MAX];
const char *frombox = mbox(vmu, imbox);
+ const char *userfolder;
int recipmsgnum;
int res = 0;
ast_log(AST_LOG_NOTICE, "Copying message from %s@%s to %s@%s\n", vmu->mailbox, vmu->context, recip->mailbox, recip->context);
if (!ast_strlen_zero(flag) && !strcmp(flag, "Urgent")) { /* If urgent, copy to Urgent folder */
- create_dirpath(todir, sizeof(todir), recip->context, recip->mailbox, "Urgent");
+ userfolder = "Urgent";
} else {
- create_dirpath(todir, sizeof(todir), recip->context, recip->mailbox, "INBOX");
- }
-
+ userfolder = "INBOX";
+ }
+
+ create_dirpath(todir, sizeof(todir), recip->context, recip->mailbox, userfolder);
+
if (!dir)
make_dir(fromdir, sizeof(fromdir), vmu->context, vmu->mailbox, frombox);
else
ast_copy_string(fromdir, dir, sizeof(fromdir));
make_file(frompath, sizeof(frompath), fromdir, msgnum);
- make_dir(todir, sizeof(todir), recip->context, recip->mailbox, "INBOX");
+ make_dir(todir, sizeof(todir), recip->context, recip->mailbox, userfolder);
if (vm_lock_path(todir))
return ERROR_LOCK_PATH;
@@ -6046,7 +6049,7 @@
while (tmpptr) {
struct ast_vm_user recipu, *recip;
char *exten, *cntx;
-
+
exten = strsep(&tmpptr, "&");
cntx = strchr(exten, '@');
if (cntx) {
More information about the asterisk-commits
mailing list