Gezielte Ansteuerung der LEDs

In der bristuffed-Version von Asterisk ist es ebenfalls möglich, die LEDs z.B. auch gezielt aus dem Wählplan anzusteuern. Dazu wurde Asterisk die Applikation "Devstate" hinzugefügt. Bitte prüfen Sie auf der Asterisk-Konsole über den Befehl show application Devstate, ob Ihre Asterisk-Version diesen Patch enthält:

*CLI> show application Devstate

  -= Info about application 'Devstate' =-

[Synopsis]
Generate a device state change event given the input parameters

[Description]
 Devstate(device|state):  Generate a device state change event given the input parameters. Returns 0. 
 State values match the asterisk device states. They are 0 = unknown, 1 = not inuse, 2 = inuse, 3 = busy, 
 4 = invalid, 5 = unavailable, 6 = ringing

*CLI>

Der Parameter "device" stellt nichts weiter dar, als eine spezielle Extension vom Typ Device-State, die aber im Prinzip exakt so angesprochen wird wie z.B. eine SIP-Extension. Die Device-States sollten im Wählplan gut von regulären Extensions unterscheidbar sein, damit man bei der Wartung und Fehlersuche nicht durcheinander kommt.

Genau wie oben bereits beschrieben, muss in der snom-Konfiguration die anzusteuernde Leitungsanzeige mit der passenden Extension eingestellt werden. Auch hier muss als Typ der Parameter "Ziel" gewählt werden. Im nachfolgenden Beispiel wird die "9912" zur Ansteuerung der Anzeige P12 genutzt. P6 ist nach wie vor aus dem obigen Beispiel gesetzt und bleibt auch in bekannter Weise funktionsfähig.

In der Datei extensions.conf muss nun ein weiterer Hint gesetzt werden, diesmal vom Typ DS statt SIP:

[meine-telefone]
exten => 2001,hint,SIP/2001
exten => 9912,hint,DS/9912

; Gespraechsuebernahme (PickUp) fuer bristuff
exten => _*8.,1,PickUpChan(SIP/${EXTEN:2})

Das ist bereits alles. Wie gehabt nun das Telefon neu anmelden, damit die Subscriptions registriert werden. Mittels show hints (core show hints in Version 1.4) sieht man nun einen weiteren Hint aufgeführt:

*CLI> show hints

    -= Registered Asterisk Dial Plan Hints =-
   9912                : DS/9912               State:Unavailable     Watchers  1
   2001                : SIP/2001              State:Idle            Watchers  1
----------------
- 2 hints registered
*CLI>

Auch ein show subscriptions sollte einen weiteren Wert anzeigen:

*CLI> sip show subscriptions
Peer             User        Call ID      Extension        Last state     Type
192.168.0.2      2000        866a9545a90  9912             Idle           dialog-info+xml
192.168.0.2      2000        866a9545a90  2001             Idle           dialog-info+xml
2 active SIP subscriptions
*CLI>

Um die Funktionsweise zu testen, kann der Wählplan z.B. um folgenden Code erweitert werden:

exten => _*9X,1,Answer()
exten => _*9X,n,Devstate(9912,${EXTEN:2})
exten => _*9X,n,Wait(1)
exten => _*9X,n,Hangup()

Nun können die verschiedene Device-States über *9<state> überprüft werden, z.B. kann man die LED mit *96 blinken oder mit *92 dauerhaft leuchten lassen sowie mit *91 wieder deaktivieren. Ist die Funktionsweise einmal sichergestellt, sind der sinnvollen Anwendung dieses Features natürlich keine Grenzen gesetzt.


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

Das gedruckte Buch