ChanIsAvail( )
|
Finds out if a specified channel is currently
available
|
ChanIsAvail(technology1/resource1[&technology2/resource2...][,option])
Checks to see if any of the requested channels
are available. If none of the requested channels are available, the
new priority will be n+101 (where n is the
current priority), unless that priority does not exist or an error
occurs, in which case ChanIsAvail( ) will exit and return
-1.
If any of the requested channels are available,
the next priority will be n+1 and ChanIsAvail( )
will return 0.
ChanIsAvail( ) sets the following
channel variables:
${AVAILCHAN}
-
The name of the available channel, including the
call session number used to perform the test.
${AVAILORIGCHAN}
-
The canonical channel name that was used to
create the channelthat is, the channel name without any session
number.
${AVAILSTATUS}
-
The status code for the channel.
If the option s (which stands for
"state") is specified, Asterisk will consider the channel
unavailable whenever it is in use, even if it can take another
call.
|
This application does not work correctly on MGCP
channels.
|
|
; check both Zap/1 and Zap/2 to see if they're available
exten => 123,1,ChanIsAvail(Zap/1&Zap/2)
; if we go to priority 2, then one of the channels is available
; in priority 2, we'll dial our number on the available channel
exten => 123,2,NoOp(${AVAILORIGCHAN})
exten => 123,3,Dial(${AVAILORIGCHAN}/5551212)
; if we go to priority 101, then neither Zap/1 nor Zap/2 is available
exten => 123,3,Playback(all-circuits-busy-now)
|