Merged revisions 100675 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Mon, 28 Jan 2008 21:05:29 +0000 (21:05 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Mon, 28 Jan 2008 21:05:29 +0000 (21:05 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r100675 | tilghman | 2008-01-28 15:02:02 -0600 (Mon, 28 Jan 2008) | 2 lines

WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T')

........

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

main/pbx.c

index 9a279a6..0cefc20 100644 (file)
@@ -7032,9 +7032,13 @@ static int pbx_builtin_waitexten(struct ast_channel *chan, void *data)
        if (!res) {
                if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + 1, chan->cid.cid_num)) {
                        ast_verb(3, "Timeout on %s, continuing...\n", chan->name);
+               } else if (chan->_softhangup == AST_SOFTHANGUP_TIMEOUT) {
+                       if (option_verbose > 2)
+                               ast_verbose(VERBOSE_PREFIX_3 "Call timeout on %s, checking for 'T'\n", chan->name);
+                       res = -1;
                } else if (ast_exists_extension(chan, chan->context, "t", 1, chan->cid.cid_num)) {
                        ast_verb(3, "Timeout on %s, going to 't'\n", chan->name);
-                       set_ext_pri(chan, "t", 0); /* XXX is the 0 correct ? */
+                       set_ext_pri(chan, "t", 0); /* 0 will become 1, next time through the loop */
                } else {
                        ast_log(LOG_WARNING, "Timeout but no rule 't' in context '%s'\n", chan->context);
                        res = -1;