]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 321537 via svnmerge from
authorBrett Bryant <bbryant@digium.com>
Wed, 1 Jun 2011 20:11:08 +0000 (20:11 +0000)
committerBrett Bryant <bbryant@digium.com>
Wed, 1 Jun 2011 20:11:08 +0000 (20:11 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r321537 | bbryant | 2011-06-01 16:10:02 -0400 (Wed, 01 Jun 2011) | 8 lines

  This patch fixes an issue with using the wrong voicemail folders with greetings.

  (closes issue #17871)
  Reported by: edhorton
  Patches:
        digium_bug_17871_2 uploaded by fhackenberger (license 592)
  Tested by: edhorton, fhackenberger
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@321538 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 0433844c7183049222a570549c2aedd8a281cef7..5e342bda08335f696880791f2bc358c1321c60ee 100644 (file)
@@ -2177,11 +2177,16 @@ static int imap_store_file(const char *dir, const char *mailboxuser, const char
        int ret; /* for better error checking */
        char *imap_flags = NIL;
        int msgcount = (messagecount(vmu->context, vmu->mailbox, "INBOX") + messagecount(vmu->context, vmu->mailbox, "Old"));
+       int box = NEW_FOLDER;
 
-    /* Back out early if this is a greeting and we don't want to store greetings in IMAP */
-    if (msgnum < 0 && !imapgreetings) {
-        return 0;
-    }
+       /* Back out early if this is a greeting and we don't want to store greetings in IMAP */
+       if (msgnum < 0) {
+               if(!imapgreetings) {
+                       return 0;
+               } else {
+                       box = GREETINGS_FOLDER;
+               }
+       }
 
        if (imap_check_limits(chan, vms, vmu, msgcount)) {
                return -1;
@@ -2264,9 +2269,9 @@ static int imap_store_file(const char *dir, const char *mailboxuser, const char
        }
        ((char *) buf)[len] = '\0';
        INIT(&str, mail_string, buf, len);
-       ret = init_mailstream(vms, NEW_FOLDER);
+       ret = init_mailstream(vms, box);
        if (ret == 0) {
-               imap_mailbox_name(mailbox, sizeof(mailbox), vms, NEW_FOLDER, 1);
+               imap_mailbox_name(mailbox, sizeof(mailbox), vms, box, 1);
                ast_mutex_lock(&vms->lock);
                if(!mail_append_full(vms->mailstream, mailbox, imap_flags, NIL, &str))
                        ast_log(LOG_ERROR, "Error while sending the message to %s\n", mailbox);