Ermittelt, ob ein bestimmter Channel momentan verfügbar ist.
ChanIsAvail(Technology1
/Resource1
[&Technology2
/Resource2
...][,Optionen
])
Prüft, ob irgendeiner der angeforderten Kanäle verfügbar ist (in der angegebenen Reihenfolge). Liefert 0 zurück bei Erfolg oder -1, falls kein Kanal verfügbar ist.
Ist die Option s
(für state) angegeben, wird
Asterisk den Channel als nicht verfügbar betrachten, wenn er in Gebrauch
ist, sogar falls er einen weiteren anderen Anruf aufnehmen kann. Mit der
Option j
wird, falls der Channel nicht verfügbar ist, zur
Priorität n+101 gesprungen.
Dass ein Kanal verfügbar ist, bedeutet aber nicht automatisch,
dass er auch frei ist oder dass das Endgerät einen Anruf akzeptieren
würde. Das erfährt man durch ein |
ChanIsAvail()
setzt die folgenden Channelvariablen:
${AVAILCHAN}
${AVAILORIGCHAN}
${AVAILSTATUS}
Der Status-Code des Channels:
AST_DEVICE_UNKNOWN
(0)
AST_DEVICE_NOT_INUSE
(1)
AST_DEVICE_IN_USE
(2)
AST_DEVICE_BUSY
(3)
AST_DEVICE_INVALID
(4)
AST_DEVICE_UNAVAILABLE
(5)
AST_DEVICE_RINGING
(6)
Diese Anwendung arbeitet auf MGCP-Kanälen nicht ordnungsgemäß. |
; Zap/1 und Zap/2 auf Verfügbarkeit prüfen: exten => 123,1,ChanIsAvail(Zap/1&Zap/2,j) ; hier ausnahmsweise mit Priority jumping, da wir, falls kein Kanal ; frei ist, noch eine Ansage machen wollen ; mindestens einer der Kanäle verfügbar, auf diesem wählen: exten => 123,2,NoOp(${AVAILORIGCHAN} ist verfuegbar) exten => 123,3,Dial(${AVAILORIGCHAN}/123456) ; wenn wir bei Prio. 102 landen, ist weder Zap/1 noch Zap/2 verfügbar exten => 123,102,Playback(alle-kanaele-belegt)
Interner Hilfetext zu dieser Applikation in Asterisk 1.4: -= Info about application 'ChanIsAvail' =- [Synopsis] Check channel availability [Description] ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): This application will check to see if any of the specified channels are available. The following variables will be set by this application: ${AVAILCHAN} - the name of the available channel, if one exists ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel ${AVAILSTATUS} - the status code for the available channel Options: s - Consider the channel unavailable if the channel is in use at all j - Support jumping to priority n+101 if no channel is available Differenz zum internen Hilfetext in Asterisk 1.2: - keine - |