From: Mark Spencer Date: Sun, 30 May 2004 03:03:19 +0000 (+0000) Subject: Allow variable substitution in from string (bug #1741) X-Git-Tag: 1.0.0-rc1~346 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d34639a601c81a8190a4e18ebd5715f4d09a22ed;p=thirdparty%2Fasterisk.git Allow variable substitution in from string (bug #1741) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3109 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 82621fd24c..9ca3c93838 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -842,10 +842,21 @@ static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *m ast_localtime(&t,&tm,NULL); strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %z", &tm); fprintf(p, "Date: %s\n", date); - - if (*fromstring) - fprintf(p, "From: %s <%s>\n", fromstring, who); - else + + if (*fromstring) { + struct ast_channel *ast = ast_channel_alloc(0); + if (ast) { + char *passdata; + int vmlen = strlen(fromstring)*3 + 200; + if ((passdata = alloca(vmlen))) { + memset(passdata, 0, vmlen); + prep_email_sub_vars(ast,vmu,msgnum + 1,mailbox,callerid,dur,date,passdata); + pbx_substitute_variables_helper(ast,fromstring,passdata,vmlen); + fprintf(p, "From: %s <%s>\n",passdata,who); + } else ast_log(LOG_WARNING, "Cannot allocate workspace for variable substitution\n"); + ast_channel_free(ast); + } else ast_log(LOG_WARNING, "Cannot allocate the channel for variables substitution\n"); + } else fprintf(p, "From: Asterisk PBX <%s>\n", who); fprintf(p, "To: %s <%s>\n", vmu->fullname, vmu->email);