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.
Anmerkung | |
---|---|
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}
- Der Name des verfügbaren Channels, inklusive der Session-Nummer des Anrufs.
${AVAILORIGCHAN}
- Der kanonische Channelname, der benutzt wurde um den Channel zu erstellen, d.h. der Channelname ohne eine Session-Nummer.
${AVAILSTATUS}
Der Status-Code des Channels:
AST_DEVICE_UNKNOWN
(0)- Unbekannt. Der Channel ist gültig, aber in unbekanntem Zustand.
AST_DEVICE_NOT_INUSE
(1)- Channel wird nicht verwendet.
AST_DEVICE_IN_USE
(2)- Der Channel ist in Gebrauch.
AST_DEVICE_BUSY
(3)- Besetzt.
AST_DEVICE_INVALID
(4)- Ungültig. Unbekannter Channel.
AST_DEVICE_UNAVAILABLE
(5)- Nicht verfügbar. Channel ist nicht registriert.
AST_DEVICE_RINGING
(6)- Channel klingelt.
Anmerkung | |
---|---|
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)
Anmerkung | |
---|---|
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 - |
Version 1.2, November 2002
Neue Version verfügbar
Sie betrachten gerade die alte Version des Buches (Version 1.0). Wir empfehlen Ihnen für Asterisk 1.4 und 1.6 die neue Version des Buches.
Asterisk-Tag 2008
Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um das Thema VoIP. Asterisk-Tag.org