Add an option to voicemail.conf to allow urgent messages to be
authorMark Michelson <mmichelson@digium.com>
Thu, 11 Dec 2008 20:57:44 +0000 (20:57 +0000)
committerMark Michelson <mmichelson@digium.com>
Thu, 11 Dec 2008 20:57:44 +0000 (20:57 +0000)
forwarded as not urgent.

(closes issue #14063)
Reported by: jaroth
Patches:
      urgfwd_v2.patch uploaded by jaroth (license 50)

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

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

index 0206e22..f23624f 100644 (file)
@@ -407,6 +407,7 @@ static AST_LIST_HEAD_STATIC(vmstates, vmstate);
 #define VM_TEMPGREETWARN (1 << 15)  /*!< Remind user tempgreeting is set */
 #define VM_MOVEHEARD     (1 << 16)  /*!< Move a "heard" message to Old after listening to it */
 #define VM_MESSAGEWRAP   (1 << 17)  /*!< Wrap around from the last message to the first, and vice-versa */
+#define VM_FWDURGAUTO    (1 << 18)  /*!< Autoset of Urgent flag on forwarded Urgent messages set globally */
 #define ERROR_LOCK_PATH  -100
 
 
@@ -6267,7 +6268,9 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
        char urgent_str[7] = "";
        char tmptxtfile[PATH_MAX];
 
-       ast_copy_string(urgent_str, urgent ? "Urgent" : "", sizeof(urgent_str));
+       if (ast_test_flag((&globalflags), VM_FWDURGAUTO)) {
+               ast_copy_string(urgent_str, urgent ? "Urgent" : "", sizeof(urgent_str));
+       }
 
        if (vms == NULL) return -1;
        dir = vms->curdir;
@@ -10663,6 +10666,12 @@ static int load_config(int reload)
                }
                ast_set2_flag((&globalflags), ast_true(val), VM_MOVEHEARD);     
 
+               if (!(val = ast_variable_retrieve(cfg, "general", "forward_urgent_auto"))) {
+                       ast_debug(1,"Autoset of Urgent flag on forwarded Urgent messages disabled globally\n");
+                       val = "no";
+               }
+               ast_set2_flag((&globalflags), ast_true(val), VM_FWDURGAUTO);    
+
                if (!(val = ast_variable_retrieve(cfg, "general", "sayduration"))) {
                        ast_debug(1,"Duration info before msg enabled globally\n");
                        val = "yes";
index b7f4ccb..17c6a01 100644 (file)
@@ -55,6 +55,10 @@ maxlogins=3
 ; Move heard messages to the 'Old' folder automagically.  Defaults to on.
 ;moveheard=yes
 ;
+; Forward an urgent message as an urgent message.  Defaults to no so
+; sender can set the urgency on the envelope of the forwarded message.
+;forward_urgent_auto=no
+;
 ; User context is where entries from users.conf are registered.  The
 ; default value is 'default'
 ;