]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 300951 via svnmerge from
authorJeff Peeler <jpeeler@digium.com>
Fri, 7 Jan 2011 17:24:14 +0000 (17:24 +0000)
committerJeff Peeler <jpeeler@digium.com>
Fri, 7 Jan 2011 17:24:14 +0000 (17:24 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r300951 | jpeeler | 2011-01-07 11:23:37 -0600 (Fri, 07 Jan 2011) | 14 lines

  Merged revisions 300918 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r300918 | jpeeler | 2011-01-07 11:13:21 -0600 (Fri, 07 Jan 2011) | 7 lines

    Ensure good bye prompt in voicemail is played at the correct time.

    Specifically in the case of timing out but not leaving voicemail nothing
    should be heard. And when leaving voicemail it should be heard.

    ABE-2647
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@300955 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 26f0c77bcfea5931c57882de54bf98c7513bec44..14e11fdc439dd966cc63b3102ecf8a4c607c8f12 100644 (file)
@@ -5981,7 +5981,7 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
                }
                if (res == '0') {
                        goto transfer;
-               } else if (res > 0)
+               } else if (res > 0 && res != 't')
                        res = 0;
 
                if (duration < vmu->minsecs)
@@ -10407,6 +10407,11 @@ static int vm_exec(struct ast_channel *chan, const char *data)
        }
 
        res = leave_voicemail(chan, args.argv0, &leave_options);
+       if (res == 't') {
+               ast_play_and_wait(chan, "vm-goodbye");
+               res = 0;
+       }
+
        if (res == OPERATOR_EXIT) {
                res = 0;
        }
@@ -13189,10 +13194,10 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re
                /* Hang up or timeout, so delete the recording. */
                ast_filedelete(tempfile, NULL);
        }
-       if (cmd == 't')
-               cmd = 0;
-       else if (outsidecaller) /* won't play if time out occurs */
+
+       if (cmd != 't' && outsidecaller)
                ast_play_and_wait(chan, "vm-goodbye");
+
        return cmd;
 }