Name

ChanIsAvail() — Finds out if a specified channel is currently available

Synopsis

    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 channel—that 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.

Tip

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) ...

Get Asterisk: The Future of Telephony now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.