[asterisk-commits] mjordan: trunk r325900 - in /trunk: ./ apps/app_voicemail.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jun 30 15:24:04 CDT 2011


Author: mjordan
Date: Thu Jun 30 15:24:00 2011
New Revision: 325900

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=325900
Log:
Merged revisions 325877 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r325877 | mjordan | 2011-06-30 15:09:48 -0500 (Thu, 30 Jun 2011) | 9 lines
  
  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:
    trunk/   (props changed)
    trunk/apps/app_voicemail.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: trunk/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_voicemail.c?view=diff&rev=325900&r1=325899&r2=325900
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Thu Jun 30 15:24:00 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;
 		}	
 	} 
@@ -10637,7 +10644,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";
@@ -10659,6 +10668,7 @@
 		return AST_TEST_NOT_RUN;
 	}
 	ast_set_flag(vmu, VM_ALLOCED);
+	populate_defaults(vmu);
 
 	apply_options(vmu, options_string);
 
@@ -10672,6 +10682,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