Don't force a busy state that will break channel signalling if the channel

already is up. (Reported by Steve Davies in e-mail, waiting for 1.2 approval)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Olle Johansson 2006-06-16 06:25:26 +00:00
parent 9ebb7c35a2
commit 4c07cb1c60
1 changed files with 8 additions and 2 deletions

10
pbx.c
View File

@ -4938,7 +4938,10 @@ static int pbx_builtin_ringing(struct ast_channel *chan, void *data)
static int pbx_builtin_busy(struct ast_channel *chan, void *data)
{
ast_indicate(chan, AST_CONTROL_BUSY);
ast_setstate(chan, AST_STATE_BUSY);
/* Don't change state of an UP channel, just indicate
busy in audio */
if (chan->_state != AST_STATE_UP)
ast_setstate(chan, AST_STATE_BUSY);
wait_for_hangup(chan, data);
return -1;
}
@ -4949,7 +4952,10 @@ static int pbx_builtin_busy(struct ast_channel *chan, void *data)
static int pbx_builtin_congestion(struct ast_channel *chan, void *data)
{
ast_indicate(chan, AST_CONTROL_CONGESTION);
ast_setstate(chan, AST_STATE_BUSY);
/* Don't change state of an UP channel, just indicate
congestion in audio */
if (chan->_state != AST_STATE_UP)
ast_setstate(chan, AST_STATE_BUSY);
wait_for_hangup(chan, data);
return -1;
}