From: Jason Parker Date: Tue, 5 Feb 2008 20:51:50 +0000 (+0000) Subject: Change where priority of a goto is adjusted. X-Git-Tag: 1.6.0-beta3~2^2~82 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc6e5d6aae848fa27b726f2f6ad0ac286925641a;p=thirdparty%2Fasterisk.git Change where priority of a goto is adjusted. Partially reverts 102272. Closes issue #11929 (credit to file for fix suggestion - we still <3 you) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@102500 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/pbx.c b/main/pbx.c index c3ba34335f..4578b32c2a 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -5853,8 +5853,12 @@ 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); @@ -5868,7 +5872,7 @@ int ast_async_goto(struct ast_channel *chan, const char *context, const char *ex ast_channel_lock(chan); if (chan->pbx) { /* This channel is currently in the PBX */ - ast_explicit_goto(chan, context, exten, priority); + ast_explicit_goto(chan, context, exten, priority + 1); ast_softhangup_nolock(chan, AST_SOFTHANGUP_ASYNCGOTO); } else { /* In order to do it when the channel doesn't really exist within