[asterisk-commits] mjordan: branch 1.8 r325877 - /branches/1.8/apps/app_voicemail.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Jun 30 15:09:52 CDT 2011
Author: mjordan
Date: Thu Jun 30 15:09:48 2011
New Revision: 325877
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=325877
Log:
Patched voicemail user option for emailbody / emailsubject
Incorporated changes per ASTERISK-16795; updated unit tests to check for vmu->emailbody / vmu->emailsubject
(closes issue ASTERISK-16795)
Reported by: mdeneen
Tested by: mjordan
Modified:
branches/1.8/apps/app_voicemail.c
Modified: branches/1.8/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_voicemail.c?view=diff&rev=325877&r1=325876&r2=325877
==============================================================================
--- branches/1.8/apps/app_voicemail.c (original)
+++ branches/1.8/apps/app_voicemail.c Thu Jun 30 15:09:48 2011
@@ -903,6 +903,8 @@
static int is_valid_dtmf(const char *key);
static void read_password_from_file(const char *secretfn, char *password, int passwordlen);
static int write_password_to_file(const char *secretfn, const char *password);
+static const char *substitute_escapes(const char *value);
+static void free_user(struct ast_vm_user *vmu);
struct ao2_container *inprocess_container;
@@ -994,7 +996,8 @@
* - the dialcontext
* - the exitcontext
* - vmmaxsecs, vmmaxmsg, maxdeletedmsg
- * - volume gain.
+ * - volume gain
+ * - emailsubject, emailbody set to NULL
*/
static void populate_defaults(struct ast_vm_user *vmu)
{
@@ -1045,6 +1048,10 @@
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, "emailbody")) {
+ vmu->emailbody = ast_strdup(substitute_escapes(value));
+ } else if (!strcasecmp(var, "emailsubject")) {
+ vmu->emailsubject = ast_strdup(substitute_escapes(value));
} else if (!strcasecmp(var, "language")) {
ast_copy_string(vmu->language, value, sizeof(vmu->language));
} else if (!strcasecmp(var, "tz")) {
@@ -1382,7 +1389,7 @@
ast_variables_destroy(var);
} else {
if (!ivm)
- ast_free(retval);
+ free_user(retval);
retval = NULL;
}
}
@@ -10648,7 +10655,9 @@
"envelope=yes|moveheard=yes|sayduration=yes|saydurationm=5|forcename=yes|"
"forcegreetings=yes|callback=somecontext|dialout=somecontext2|"
"exitcontext=somecontext3|minsecs=10|maxsecs=100|nextaftercmd=yes|"
- "backupdeleted=50|volgain=1.3|passwordlocation=spooldir";
+ "backupdeleted=50|volgain=1.3|passwordlocation=spooldir|emailbody="
+ "Dear ${VM_NAME}:\n\n\tYou were just left a ${VM_DUR} long message|emailsubject="
+ "[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}";
#ifdef IMAP_STORAGE
static const char option_string2[] = "imapuser=imapuser|imappassword=imappasswd|"
"imapfolder=INBOX|imapvmshareid=6000";
@@ -10670,6 +10679,7 @@
return AST_TEST_NOT_RUN;
}
ast_set_flag(vmu, VM_ALLOCED);
+ populate_defaults(vmu);
apply_options(vmu, options_string);
@@ -10683,6 +10693,14 @@
}
if (strcasecmp(vmu->serveremail, "someguy at digium.com")) {
ast_test_status_update(test, "Parse failure for serveremail option\n");
+ res = 1;
+ }
+ if (!vmu->emailsubject || strcasecmp(vmu->emailsubject, "[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}")) {
+ ast_test_status_update(test, "Parse failure for emailsubject option\n");
+ res = 1;
+ }
+ if (!vmu->emailbody || strcasecmp(vmu->emailbody, "Dear ${VM_NAME}:\n\n\tYou were just left a ${VM_DUR} long message")) {
+ ast_test_status_update(test, "Parse failure for emailbody option\n");
res = 1;
}
if (strcasecmp(vmu->zonetag, "central")) {
More information about the asterisk-commits
mailing list