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 .
ChanIsAvail( ) sets the following channel variables :
The name of the available channel, including the call session number used to perform the test.
The canonical channel name that was used to create the channelthat is, the channel name without any session number.
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.
|
; 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)