[asterisk-commits] trunk r34433 - /trunk/pbx.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Thu Jun 15 23:25:27 MST 2006


Author: oej
Date: Fri Jun 16 01:25:26 2006
New Revision: 34433

URL: http://svn.digium.com/view/asterisk?rev=34433&view=rev
Log:
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)

Modified:
    trunk/pbx.c

Modified: trunk/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx.c?rev=34433&r1=34432&r2=34433&view=diff
==============================================================================
--- trunk/pbx.c (original)
+++ trunk/pbx.c Fri Jun 16 01:25:26 2006
@@ -4938,7 +4938,10 @@
 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_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;
 }



More information about the asterisk-commits mailing list