Index: app.c =================================================================== RCS file: /usr/cvsroot/asterisk/app.c,v retrieving revision 1.33 diff -u -r1.33 app.c --- app.c 3 Oct 2004 21:18:26 -0000 1.33 +++ app.c 25 Oct 2004 22:20:05 -0000 @@ -710,10 +710,12 @@ for (x=0;x 0) { + if (totalsilence) + ast_stream_rewind(others[x], totalsilence-200); + else + ast_stream_rewind(others[x], 200); + } ast_truncstream(others[x]); ast_closestream(others[x]); } @@ -722,14 +724,11 @@ ast_log(LOG_WARNING, "Unable to restore format %s to channel '%s'\n", ast_getformatname(rfmt), chan->name); } } - if (outmsg) { - if (outmsg > 1) { + if (outmsg > 1) { /* Let them know recording is stopped */ - ast_streamfile(chan, "auth-thankyou", chan->language); + if(!ast_streamfile(chan, "auth-thankyou", chan->language)) ast_waitstream(chan, ""); - } } - return res; } Index: apps/app_voicemail.c =================================================================== RCS file: /usr/cvsroot/asterisk/apps/app_voicemail.c,v retrieving revision 1.164 diff -u -r1.164 app_voicemail.c --- apps/app_voicemail.c 24 Oct 2004 13:15:12 -0000 1.164 +++ apps/app_voicemail.c 25 Oct 2004 22:20:12 -0000 @@ -4609,7 +4609,7 @@ cmd = ast_play_and_record(chan, playfile, recordfile, maxtime, fmt, duration, silencethreshold, maxsilence); if (cmd == -1) /* User has hung up, no options to give */ - return res; + return cmd; if (cmd == '0') { break; } else if (cmd == '*') { @@ -4704,7 +4704,7 @@ } } if (outsidecaller) - ast_play_and_wait(chan, "vm-goodbye"); + ast_play_and_wait(chan, "vm-goodbye"); if (cmd == 't') cmd = 0; return cmd;