--- app.c.orig 2006-04-11 03:05:01.000000000 +0200 +++ app.c 2006-04-28 01:16:58.549457250 +0200 @@ -537,7 +537,7 @@ static int global_silence_threshold = 128; static int global_maxsilence = 0; -int ast_play_and_record(struct ast_channel *chan, const char *playfile, const char *recordfile, int maxtime, const char *fmt, int *duration, int silencethreshold, int maxsilence, const char *path) +int ast_play_and_record(struct ast_channel *chan, const char *playfile, const char *recordfile, int maxtime, const char *fmt, int *duration, int silencethreshold, int maxsilence, const char *path, int vm_operator) { int d; char *fmts; @@ -696,7 +696,7 @@ ast_frfree(f); break; } - if (f->subclass == '0') { + if (f->subclass == '0' && vm_operator) { /* Check for a '0' during message recording also, in case caller wants operator */ if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "User cancelled by pressing %c\n", f->subclass); @@ -1228,7 +1228,7 @@ else ast_verbose(VERBOSE_PREFIX_3 "Recording\n"); recorded = 1; - cmd = ast_play_and_record(chan, playfile, recordfile, maxtime, fmt, duration, silencethreshold, maxsilence, path); + cmd = ast_play_and_record(chan, playfile, recordfile, maxtime, fmt, duration, silencethreshold, maxsilence, path, 0); if (cmd == -1) { /* User has hung up, no options to give */ return cmd;