]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 213833 via svnmerge from
authorJeff Peeler <jpeeler@digium.com>
Mon, 24 Aug 2009 16:49:02 +0000 (16:49 +0000)
committerJeff Peeler <jpeeler@digium.com>
Mon, 24 Aug 2009 16:49:02 +0000 (16:49 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r213833 | jpeeler | 2009-08-24 11:43:57 -0500 (Mon, 24 Aug 2009) | 14 lines

  Fix storage of greetings when using IMAP_STORAGE

  The store macro was not getting called preventing storage of IMAP greetings
  at all. This has been corrected along with fixing checking if the
  imapgreetings option is turned on to store the greeting in IMAP. Lastly,
  the attachment filename was incorrectly using the full path instead of just
  the basename, which was causing problems with retrieval of the greeting.

  (closes issue #14950)
  Reported by: noahisaac

  (closes issue #15729)
  Reported by: lmadsen
........

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

apps/app_voicemail.c

index 2c8066ebe716622c5ac2905bbf1b6a493523b633..39f1059fc3c649615cfac1182b8e47219513e133 100644 (file)
@@ -1745,6 +1745,11 @@ static int imap_store_file(char *dir, char *mailboxuser, char *mailboxcontext, i
        int ret; /* for better error checking */
        char *imap_flags = NIL;
 
+    /* Back out early if this is a greeting and we don't want to store greetings in IMAP */
+    if (msgnum < 0 && !imapgreetings) {
+        return 0;
+    }
+
        /* Set urgent flag for IMAP message */
        if (!ast_strlen_zero(flag) && !strcmp(flag, "Urgent")) {
                ast_debug(3, "Setting message flag \\\\FLAGGED.\n");
@@ -4228,13 +4233,13 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format,
        if (msgnum > -1)
                fprintf(p, "Content-Type: %s%s; name=\"%s\"" ENDL, ctype, format, filename);
        else
-               fprintf(p, "Content-Type: %s%s; name=\"%s.%s\"" ENDL, ctype, format, attach, format);
+               fprintf(p, "Content-Type: %s%s; name=\"%s.%s\"" ENDL, ctype, format, greeting_attachment, format);
        fprintf(p, "Content-Transfer-Encoding: base64" ENDL);
        fprintf(p, "Content-Description: Voicemail sound attachment." ENDL);
        if (msgnum > -1)
                fprintf(p, "Content-Disposition: attachment; filename=\"%s\"" ENDL ENDL, filename);
        else
-               fprintf(p, "Content-Disposition: attachment; filename=\"%s.%s\"" ENDL ENDL, attach, format);
+               fprintf(p, "Content-Disposition: attachment; filename=\"%s.%s\"" ENDL ENDL, greeting_attachment, format);
        snprintf(fname, sizeof(fname), "%s.%s", attach, format);
        base_encode(fname, p);
        if (last)
@@ -11311,11 +11316,9 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re
                                        ast_filerename(tempfile, recordfile, NULL);
                                ast_stream_and_wait(chan, "vm-msgsaved", "");
                                if (!outsidecaller) {
-                                       /* Saves to IMAP server - but SHOULD save to filesystem ONLY if recording greetings! */
-#ifndef IMAP_STORAGE
+                                       /* Saves to IMAP server only if imapgreeting=yes */
                                        STORE(recordfile, vmu->mailbox, vmu->context, -1, chan, vmu, fmt, *duration, vms, flag);
                                        DISPOSE(recordfile, -1);
-#endif
                                }
                                cmd = 't';
                                return res;