Add pagerdateformat, to allow shorter dates for SMS messages.
authorTilghman Lesher <tilghman@meg.abyt.es>
Thu, 3 Dec 2009 22:13:56 +0000 (22:13 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Thu, 3 Dec 2009 22:13:56 +0000 (22:13 +0000)
(closes issue #16263)
 Reported by: andrew
 Patches:
       pagerdate.patch uploaded by andrew (license 240)
       (with a slight modification by me)

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

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

diff --git a/CHANGES b/CHANGES
index e744b49..1398f1b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -108,6 +108,8 @@ Applications
  * Voicemail now supports per mailbox settings for folders when using IMAP storage.
    Previously the folder could only be set per context, but has now been extended 
    using the imapfolder option.
  * Voicemail now supports per mailbox settings for folders when using IMAP storage.
    Previously the folder could only be set per context, but has now been extended 
    using the imapfolder option.
+ * Voicemail now allows the pager date format to be specified separately from the
+   email date format.
 
 Dialplan Functions
 ------------------
 
 Dialplan Functions
 ------------------
index fa1da49..eb3769d 100644 (file)
@@ -833,6 +833,7 @@ static unsigned char adsifdn[4] = "\x00\x00\x00\x0F";
 static unsigned char adsisec[4] = "\x9B\xDB\xF7\xAC";
 static int adsiver = 1;
 static char emaildateformat[32] = "%A, %B %d, %Y at %r";
 static unsigned char adsisec[4] = "\x9B\xDB\xF7\xAC";
 static int adsiver = 1;
 static char emaildateformat[32] = "%A, %B %d, %Y at %r";
+static char pagerdateformat[32] = "%A, %B %d, %Y at %r";
 
 /* Forward declarations - generic */
 static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu, int box);
 
 /* Forward declarations - generic */
 static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu, int box);
@@ -4565,6 +4566,9 @@ static int sendpage(char *srcemail, char *pager, int msgnum, char *context, char
        ast_strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", vmu_tm(vmu, &tm));
        fprintf(p, "Date: %s\n", date);
 
        ast_strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", vmu_tm(vmu, &tm));
        fprintf(p, "Date: %s\n", date);
 
+       /* Reformat for custom pager format */
+       ast_strftime(date, sizeof(date), pagerdateformat, vmu_tm(vmu, &tm));
+
        if (!ast_strlen_zero(pagerfromstring)) {
                struct ast_channel *ast;
                if ((ast = ast_dummy_channel_alloc())) {
        if (!ast_strlen_zero(pagerfromstring)) {
                struct ast_channel *ast;
                if ((ast = ast_dummy_channel_alloc())) {
@@ -4642,7 +4646,6 @@ static int sendpage(char *srcemail, char *pager, int msgnum, char *context, char
                }
        }
 
                }
        }
 
-       ast_strftime(date, sizeof(date), "%A, %B %d, %Y at %r", &tm);
        if (pagerbody) {
                struct ast_channel *ast;
                if ((ast = ast_dummy_channel_alloc())) {
        if (pagerbody) {
                struct ast_channel *ast;
                if ((ast = ast_dummy_channel_alloc())) {
@@ -10783,6 +10786,11 @@ static int load_config(int reload)
                        ast_copy_string(emaildateformat, val, sizeof(emaildateformat));
                }
 
                        ast_copy_string(emaildateformat, val, sizeof(emaildateformat));
                }
 
+               /* Load date format config for voicemail pager mail */
+               if ((val = ast_variable_retrieve(cfg, "general", "pagerdateformat"))) {
+                       ast_copy_string(pagerdateformat, val, sizeof(pagerdateformat));
+               }
+
                /* External password changing command */
                if ((val = ast_variable_retrieve(cfg, "general", "externpass"))) {
                        ast_copy_string(ext_pass_cmd, val, sizeof(ext_pass_cmd));
                /* External password changing command */
                if ((val = ast_variable_retrieve(cfg, "general", "externpass"))) {
                        ast_copy_string(ext_pass_cmd, val, sizeof(ext_pass_cmd));
index 59c1918..e748fdb 100644 (file)
@@ -147,6 +147,11 @@ emaildateformat=%A, %B %d, %Y at %r
 ; 24h date format
 ;emaildateformat=%A, %d %B %Y at %H:%M:%S
 ;
 ; 24h date format
 ;emaildateformat=%A, %d %B %Y at %H:%M:%S
 ;
+; Default for pager use
+pagerdateformat=%A, %B %d, %Y at %r
+; Short 24h date format for pager use
+;pagerdateformat=%T %D
+;
 ; You can override the default program to send e-mail if you wish, too
 ;
 ;mailcmd=/usr/sbin/sendmail -t
 ; You can override the default program to send e-mail if you wish, too
 ;
 ;mailcmd=/usr/sbin/sendmail -t