diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index acc79a76c67eda56eb787ff23ecc4295a12964f7..fece02aca6e0eec2f66f528730e7825f6e75cc68 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -10179,6 +10179,9 @@ static int vm_exec(struct ast_channel *chan, const char *data) } res = leave_voicemail(chan, args.argv0, &leave_options); + if (res == OPERATOR_EXIT) { + res = 0; + } if (res == ERROR_LOCK_PATH) { ast_log(AST_LOG_ERROR, "Could not leave voicemail. The path is already locked.\n"); @@ -12927,7 +12930,7 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re return 1; #endif case '0': - if (!ast_test_flag(vmu, VM_OPERATOR)) { + if (!ast_test_flag(vmu, VM_OPERATOR) || !outsidecaller) { cmd = ast_play_and_wait(chan, "vm-sorry"); break; }