From eca8a0a6251310d6c46c211bed2514b56454c39e Mon Sep 17 00:00:00 2001
From: Brett Bryant <bbryant@digium.com>
Date: Wed, 1 Jun 2011 20:11:08 +0000
Subject: [PATCH] Merged revisions 321537 via svnmerge from
 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 | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 0433844c71..5e342bda08 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -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);
-- 
GitLab