]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
This patch fixes an issue with using the wrong voicemail folders with greetings.
authorBrett Bryant <bbryant@digium.com>
Wed, 1 Jun 2011 20:10:02 +0000 (20:10 +0000)
committerBrett Bryant <bbryant@digium.com>
Wed, 1 Jun 2011 20:10:02 +0000 (20:10 +0000)
(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/branches/1.8@321537 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 04ff6a44bfe27da974b4ed49b869f925425e7bb3..bd671160388e143413002a43eca57dcb4b50d205 100644 (file)
@@ -2179,11 +2179,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;
@@ -2266,9 +2271,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);