diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 0586a56eef..fc3a18cf6f 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -1988,7 +1988,6 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int FILE *txt; int res = 0; int msgnum; - int fd; int duration = 0; int ausemacro = 0; int ousemacro = 0; @@ -2192,24 +2191,22 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int chan->name, ast_callerid_merge(callerid, sizeof(callerid), chan->cid.cid_name, chan->cid.cid_num, "Unknown"), date, (long)time(NULL), - category ? category : ""); - fclose(txt); + category ? category : ""); } else ast_log(LOG_WARNING, "Error opening text file for output\n"); res = play_record_review(chan, NULL, fn, vmmaxmessage, fmt, 1, vmu, &duration, dir); - if (res == '0') + if (res == '0') { + if (txt) + fclose(txt); goto transfer; + } if (res > 0) res = 0; - fd = open(txtfile, O_APPEND | O_WRONLY); - if (fd > -1) { - txt = fdopen(fd, "a"); - if (txt) { - fprintf(txt, "duration=%d\n", duration); - fclose(txt); - } else - close(fd); + if (txt) { + fprintf(txt, "duration=%d\n", duration); + fclose(txt); } + if (duration < vmminmessage) { if (option_verbose > 2) ast_verbose( VERBOSE_PREFIX_3 "Recording was %d seconds long but needs to be at least %d - abandoning\n", duration, vmminmessage);