From: Russell Bryant Date: Sat, 23 Oct 2004 11:55:21 +0000 (+0000) Subject: make operator=no work correctly, fix typo (bug #2665) X-Git-Tag: 1.0.11.1~426 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0faa51794d283580215796fb31094115f8977f9a;p=thirdparty%2Fasterisk.git make operator=no work correctly, fix typo (bug #2665) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@4058 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 35ba7b4111..399bd0b9c4 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -1418,16 +1418,22 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, int silent, int } /* Check for a '0' here */ if (res == '0') { - transfer: - strncpy(chan->exten, "o", sizeof(chan->exten) - 1); - if (!ast_strlen_zero(vmu->exit)) { - strncpy(chan->context, vmu->exit, sizeof(chan->context) - 1); - } else if (ousemacro && !ast_strlen_zero(chan->macrocontext)) { - strncpy(chan->context, chan->macrocontext, sizeof(chan->context) - 1); + transfer: + if (vmu->operator) { + strncpy(chan->exten, "o", sizeof(chan->exten) - 1); + if (!ast_strlen_zero(vmu->exit)) { + strncpy(chan->context, vmu->exit, sizeof(chan->context) - 1); + } else if (ousemacro && !ast_strlen_zero(chan->macrocontext)) { + strncpy(chan->context, chan->macrocontext, sizeof(chan->context) - 1); + } + ast_play_and_wait(chan, "transfer"); + chan->priority = 0; + free_user(vmu); + return 0; + } else { + ast_play_and_wait(chan, "vm-sorry"); + return 0; } - chan->priority = 0; - free_user(vmu); - return 0; } if (res < 0) { free_user(vmu); @@ -4653,9 +4659,7 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re /* User has hung up, no options to give */ return res; if (cmd == '0') { - /* Erase the message if 0 pushed during playback */ - ast_play_and_wait(chan, "vm-deleted"); - vm_delete(recordfile); + break; } else if (cmd == '*') { break; } @@ -4708,13 +4712,11 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re return 1; #endif case '0': - if (outsidecaller && vmu->operator) { - if (message_exists) - ast_play_and_wait(chan, "vm-msgsaved"); - return cmd; - } else - cmd = ast_play_and_wait(chan, "vm-sorry"); - break; + if (message_exists || recorded) { + ast_play_and_wait(chan, "vm-deleted"); + vm_delete(recordfile); + } + return cmd; default: /* If the caller is an ouside caller, and the review option is enabled, allow them to review the message, but let the owner of the box review diff --git a/pbx.c b/pbx.c index ed8f683748..13ab2b658c 100755 --- a/pbx.c +++ b/pbx.c @@ -4568,7 +4568,7 @@ static int pbx_builtin_background(struct ast_channel *chan, void *data) res = ast_waitstream(chan, AST_DIGIT_ANY); ast_stopstream(chan); } else { - ast_log(LOG_WARNING, "ast_streamfile failed on %s fro %s\n", chan->name, (char*)data); + ast_log(LOG_WARNING, "ast_streamfile failed on %s for %s\n", chan->name, (char*)data); res = 0; } }