Allow the attachment format to be specified differently for different mailboxes ...
authorJoshua Colp <jcolp@digium.com>
Sat, 15 Apr 2006 23:05:18 +0000 (23:05 +0000)
committerJoshua Colp <jcolp@digium.com>
Sat, 15 Apr 2006 23:05:18 +0000 (23:05 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@20357 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c
configs/voicemail.conf.sample

index 65ded53..2232247 100644 (file)
@@ -237,6 +237,7 @@ struct ast_vm_user {
        char dialout[80];
        char uniqueid[20];              /*!< Unique integer identifier */
        char exit[80];
        char dialout[80];
        char uniqueid[20];              /*!< Unique integer identifier */
        char exit[80];
+       char attachfmt[20];             /*!< Attachment format */
        unsigned int flags;             /*!< VM_ flags */       
        int saydurationm;
        int maxmsg;                     /*!< Maximum number of msgs per folder for this mailbox */
        unsigned int flags;             /*!< VM_ flags */       
        int saydurationm;
        int maxmsg;                     /*!< Maximum number of msgs per folder for this mailbox */
@@ -451,7 +452,9 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v
 {
        int x;
        if (!strcasecmp(var, "attach")) {
 {
        int x;
        if (!strcasecmp(var, "attach")) {
-               ast_set2_flag(vmu, ast_true(value), VM_ATTACH); 
+               ast_set2_flag(vmu, ast_true(value), VM_ATTACH);
+       } else if (!strcasecmp(var, "attachfmt")) {
+               ast_copy_string(vmu->attachfmt, value, sizeof(vmu->attachfmt));
        } else if (!strcasecmp(var, "serveremail")) {
                ast_copy_string(vmu->serveremail, value, sizeof(vmu->serveremail));
        } else if (!strcasecmp(var, "language")) {
        } else if (!strcasecmp(var, "serveremail")) {
                ast_copy_string(vmu->serveremail, value, sizeof(vmu->serveremail));
        } else if (!strcasecmp(var, "language")) {
@@ -3292,6 +3295,10 @@ static int notify_new_message(struct ast_channel *chan, struct ast_vm_user *vmu,
        make_file(fn, sizeof(fn), todir, msgnum);
        snprintf(ext_context, sizeof(ext_context), "%s@%s", vmu->mailbox, vmu->context);
 
        make_file(fn, sizeof(fn), todir, msgnum);
        snprintf(ext_context, sizeof(ext_context), "%s@%s", vmu->mailbox, vmu->context);
 
+       if (!ast_strlen_zero(vmu->attachfmt)) {
+               fmt = vmu->attachfmt;
+       }
+
        /* Attach only the first format */
        if ((fmt = ast_strdupa(fmt))) {
                stringp = fmt;
        /* Attach only the first format */
        if ((fmt = ast_strdupa(fmt))) {
                stringp = fmt;
index ba18344..3c74e70 100644 (file)
@@ -162,6 +162,11 @@ european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
 ; 
 ; tz=central           ; Timezone from zonemessages above.  Irrelevant if envelope=no.
 ; attach=yes           ; Attach the voicemail to the notification email *NOT* the pager email
 ; 
 ; tz=central           ; Timezone from zonemessages above.  Irrelevant if envelope=no.
 ; attach=yes           ; Attach the voicemail to the notification email *NOT* the pager email
+; attachfmt=wav49      ; Which format to attach to the email.  Normally this is the
+                       ; first format specified in the format parameter above, but this
+                       ; option lets you customize the format sent to particular mailboxes.
+                       ; Useful if Windows users want wav49, but Linux users want gsm.
+                       ; [per-mailbox only]
 ; saycid=yes           ; Say the caller id information before the message. If not described, 
                        ;     or set to no, it will be in the envelope
 ; cidinternalcontexts=intern   ; Internal Context for Name Playback instead of 
 ; saycid=yes           ; Say the caller id information before the message. If not described, 
                        ;     or set to no, it will be in the envelope
 ; cidinternalcontexts=intern   ; Internal Context for Name Playback instead of