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 - |
Asterisk Schulung
- 27.10. - 28.10.2008 in Koblenz
2.1 Beta-Version!
2.1 Beta-Version des Asterisk Buches. Die 1.0 stabile Version ist ebenfalls online. Bitte melden Sie Fehler und Feedback per E-Mail an den Autor.
YouTube Screencasts
Kostenlose Asterisk Screencasts mit jeweils 10 minütigen Erklärungen zu Spezial-Themen.
Shameless Plug
Das gedruckte Buch
Werbung
Asterisk-Tag.org 2008
Auf der Asterisk-Tag.org Webseite finden Sie die Folien und Videos der Vorträge.