aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-28 21:05:29 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-28 21:05:29 +0000
commit4e76b6d7b5a1545a54d829bf408554dd678bd3df (patch)
tree3e32e66202e70d1521ebc67fa70efeae7ee6b835
parente717e61dc4c38a5290d7b26019e8087b09cdb672 (diff)
Merged revisions 100675 via svnmerge from
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: http://svn.digium.com/svn/asterisk/trunk@100677 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--main/pbx.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/pbx.c b/main/pbx.c
index 9a279a627..0cefc2048 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -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;