Merged revisions 316709 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r316709 | seanbright | 2011-05-04 12:15:32 -0400 (Wed, 04 May 2011) | 22 lines
  
  Merged revisions 316708 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r316708 | seanbright | 2011-05-04 12:10:59 -0400 (Wed, 04 May 2011) | 15 lines
    
    Merged revisions 316707 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r316707 | seanbright | 2011-05-04 12:08:50 -0400 (Wed, 04 May 2011) | 8 lines
      
      If sox fails when processing a voicemail, don't delete the original file.
      
      (closes issue #18111)
      Reported by: sysreq
      Patches:
            issue18111_trunk.patch uploaded by seanbright (license 71)
      Tested by: seanbright
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@316711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Sean Bright
2011-05-04 16:17:14 +00:00
parent 34734f727f
commit 51fc64d13a

View File

@@ -4734,6 +4734,7 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format,
char fname[256];
char tmpcmd[256];
int tmpfd = -1;
int soxstatus = 0;
/* Eww. We want formats to tell us their own MIME type */
char *ctype = (!strcasecmp(format, "ogg")) ? "application/" : "audio/x-";
@@ -4745,7 +4746,6 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format,
chmod(newtmp, VOICEMAIL_FILE_MODE & ~my_umask);
ast_debug(3, "newtmp: %s\n", newtmp);
if (tmpfd > -1) {
int soxstatus;
snprintf(tmpcmd, sizeof(tmpcmd), "sox -v %.4f %s.%s %s.%s", vmu->volgain, attach, format, newtmp, format);
if ((soxstatus = ast_safe_system(tmpcmd)) == 0) {
attach = newtmp;
@@ -4773,7 +4773,9 @@ static int add_email_attachment(FILE *p, struct ast_vm_user *vmu, char *format,
if (last)
fprintf(p, ENDL ENDL "--%s--" ENDL "." ENDL, bound);
if (tmpfd > -1) {
unlink(fname);
if (soxstatus == 0) {
unlink(fname);
}
close(tmpfd);
unlink(newtmp);
}