dect
/
asterisk
Archived
13
0
Fork 0

Update handling of asyncgoto so it properly works on channels that are currently executing a PBX.

(closes issue #11914)
Reported by: arnd
(closes issue #11753)
Reported by: johan


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@102272 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
file 2008-02-04 15:16:05 +00:00
parent 5a7b398023
commit c1e1ea2ed4
1 changed files with 2 additions and 5 deletions

View File

@ -3324,6 +3324,7 @@ static int __ast_pbx_run(struct ast_channel *c)
if (c->_softhangup == AST_SOFTHANGUP_ASYNCGOTO) {
c->_softhangup = 0;
continue;
} else if (c->_softhangup == AST_SOFTHANGUP_TIMEOUT) {
/* atimeout, nothing bad */
} else {
@ -5852,12 +5853,8 @@ int ast_explicit_goto(struct ast_channel *chan, const char *context, const char
ast_copy_string(chan->context, context, sizeof(chan->context));
if (!ast_strlen_zero(exten))
ast_copy_string(chan->exten, exten, sizeof(chan->exten));
if (priority > -1) {
if (priority > -1)
chan->priority = priority;
/* see flag description in channel.h for explanation */
if (ast_test_flag(chan, AST_FLAG_IN_AUTOLOOP))
chan->priority--;
}
ast_channel_unlock(chan);