mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	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 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@325877 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -903,6 +903,8 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format, | ||||
| 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 @@ static char *strip_control_and_high(const char *input, char *buf, size_t buflen) | ||||
|  * - 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 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v | ||||
| 		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 @@ static struct ast_vm_user *find_user_realtime(struct ast_vm_user *ivm, const cha | ||||
| 			ast_variables_destroy(var); | ||||
| 		} else {  | ||||
| 			if (!ivm)  | ||||
| 				ast_free(retval); | ||||
| 				free_user(retval); | ||||
| 			retval = NULL; | ||||
| 		}	 | ||||
| 	}  | ||||
| @@ -10648,7 +10655,9 @@ AST_TEST_DEFINE(test_voicemail_vmuser) | ||||
| 		"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 @@ AST_TEST_DEFINE(test_voicemail_vmuser) | ||||
| 		return AST_TEST_NOT_RUN; | ||||
| 	} | ||||
| 	ast_set_flag(vmu, VM_ALLOCED); | ||||
| 	populate_defaults(vmu); | ||||
|  | ||||
| 	apply_options(vmu, options_string); | ||||
|  | ||||
| @@ -10685,6 +10695,14 @@ AST_TEST_DEFINE(test_voicemail_vmuser) | ||||
| 		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")) { | ||||
| 		ast_test_status_update(test, "Parse failure for tz option\n"); | ||||
| 		res = 1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user