From 44cdbc7d00f09ecbfc45d9faf587a6d4bc2ddb1c Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Mon, 28 Jan 2008 21:02:02 +0000 Subject: [PATCH] WaitExten didn't handle AbsoluteTimeout properly (went to 't' instead of 'T') git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100675 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/pbx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/pbx.c b/main/pbx.c index 915a6206fe..a6ef3ded01 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -5632,10 +5632,14 @@ static int pbx_builtin_waitexten(struct ast_channel *chan, void *data) if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + 1, chan->cid.cid_num)) { if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_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)) { if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_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;