LED’s auf SNOM Telefonen ein-/ausschalten

SNOM IP Telefone verfügen – je nach Modell – über sechs, resp. 12 programmierbare Funktionstasten. Jede dieser Tasten kann mit verschiedenen Aktionen belegt werden, das Wählen einer fest eingestellten Nummer ist dabei nur das einfachste Beispiel. Es ist auch möglich, Gespräche weiterzuleiten, für ein Gespräch einen bestimmten SIP Kanal zu verwenden oder den Anruf auf einer anderen Leitung entgegenzunehmen. Und da zu jeder Taste eine LED (Leuchtdiode) gehört, ist es auch möglich, einer Taste verschiedene Stati zuzuweisen. Mit der «hint»-Extension von Asterisk kann beispielsweise der Status einer Leitung angezeigt werden: frei, läutet oder belegt.

Damit die LED’s einzelner Tasten auch unabhängig von bestimmten Stati ein- oder ausgeschaltet werden können, hat SNOM eine einfache Notation eingeführt, die das entfernte Steuern der Dioden via SIP Message erlaubt. Das Dokument beschreibt sehr detailliert die einzelnen Betriebsmodi der Funktionstasten und die jeweils dazu gehörende Umsetzung. Was leider fehlt, ist ein Praxisbeispiel, etwa mit dem sipsak Utility von Nils Ohlmeier. Dies soll an dieser Stelle nachgeholt werden. Im folgenden Beispiel geht es lediglich darum, die LED der Funktionstaste 6 ein- und wieder auszuschalten. Ich verwenden dazum ein SNOM 370 mit einer Firmware Version 7.1.30 und sipsak 0.9.6. SNOM Telefone mit einer Firmware < 7.0 müssen auf 7.x aktualisiert werden. Zuerst muss eine SIP Message erstellt werden, diese hat folgendes Aussehen. Die Sequenznummern stehen hier in der Datei, was noch zu verbessern wäre: Datei: led.txt

MESSAGE $user$@$dsthost$;transport=udp SIP/2.0
From: sip:sipsak@$srchost$:1036;tag=38473
To: $user$@$dsthost$
Call-ID: 6algjorv@test
CSeq: 59620 MESSAGE
Max-Forwards: 70
Contact: < $user$@$dsthost$;transport=udp>
Subject: buttons
Content-Type: application/x-buttons
Content-Length: 10

k=6
c=on

Zu der SIP Message ist folgendes zu beachten:

  • Die Länge der SIP Message (Content-Length: 10) muss in jedem Fall angegeben werden. Hinweise darauf, dass sipsak diese Aufgaben übernimmt, scheinen nicht zu stimmen. Wird keine oder eine falsche Content-Length angegeben, sendet das SNOM zwar ein 200-OK, das Kommando wird aber nicht verarbeitet.
  • Bei $user$, $srchost$ und $dsthost$ handelt es sich um sipsak Tags, die bei der Verarbeitung durch die tatsächlichen Werte ersetzt werden. Siehe dazu die sipsak Manpage, insbesondere die Argumente -s und -G.
  • Mit k=6 wird bestimmt, welche Taste genau angesprochen wird. Die Ziffer 6 bezeichnet dabei nicht den Wert, der im Nummernfeld angegeben wurde, sondern den Index der Taste (1-12 bei einem SNOM 370). Mit k=1 wird die erste programmierbare Taste angesprochen, mit k=6 die Taste ganz unten links und mit k=12 die letzte, unten rechts.

Damit das ganze nun ausprobiert werden kann, wird ein SNOM Telefon benötigt, auf dem mindestens eine SIP Identität registriert worden ist. In meinem Beispiel kommen die folgenden Werte zur Anwendung:

IP des SNOM 370: 212.101.99.40
Identität 1 – Nutzerkennung: demo-3437
Identität 1 – Authorisierungsname: demo-3437
Identität 1 – Registrar: 212.101.99.41

Damit registriert sich das SNOM auf dem Asterisk Server, der auf einem Rechner mit der IP 212.101.99.41 installiert ist. Infos über das Erstellen von SIP Accounts gibt es auf voip-info.org. Wichtig: Damit das Beispiel funktioniert, sollte das SNOM Telefon ordnungsgemäss registriert sein. Der Grund dafür ist die SIP-User Kennung demo-3437, die im Folgenden verwendet wird.

Bevor die aufbereitete SIP Message an das SNOM gesendet werden kann, muss eine Funktionstaste mit dem Tastentyp «Button» belegt werden. Dies geht am einfachsten über das Webinterface des SNOM Telefones, in der Rubrik Funktionstasten. Ich verwende im Folgenden die Taste P6. Alles was hier eingestellt werden muss, ist der Tastentyp, der auf «Button» stehen muss, so wie im Beispiel rechts.

Damit sind wir schon fast am Ziel. Auf dem Asterisk Server wird nun mit sipsak die Datei sip.txt an das SNOM Telefon gesendet. Das sipsak Utility ist auf sipsak.org zu finden und kann von dort heruntergeladen und installiert werden. Das folgende Kommando sollte die sechste Funktionstaste (P6) auf dem SNOM zum Leuchten bringen.

sipsak -G --hostname 212.101.99.41 -s sip:demo-3437@212.101.99.40 
--filename led.txt

Wie so oft im Leben geht gerne etwas schief. Falls P6 nun nicht leuchtet, sollte folgendes kontrolliert werden:

  • Ist das SNOM so konfiguriert, dass es SIP Messages entgegennimmt? Ein FAQ-Artikel auf dem Snom WIKI gibt Auskunft, welche Einstellungen ggf. angepasst werden müssen.
  • Klappt der Transfer der SIP Message. sipsak kennt mehrere Verbosity-Level, mit denen die gesendeten und empfangenen SIP Blöcke angezeigt werden können: sipsak -vvv …
  • Auf dem Webinterface des SNOM gibt es zwei Seiten, die bei der Fehlersuche hilfreich sein können: Log und SIP-Protokollierung. Das SNOM muss bei der Antwort in jedem Fall ein «200 – OK» senden, wenn eine andere Meldung daherkommt, stimmt mit der SIP Nachricht etwas nicht.

7 Gedanken zu „LED’s auf SNOM Telefonen ein-/ausschalten

  1. Leuchten

    Das ist mal ein ausführlichesund gut erklärtes tutorial, bin über die Google Suche darauf gekommen, du stehst da gleich an zweiter Stelle hinter dem IP-Phone-Forum.

  2. Thomas

    Vielen Dank für die Anleitung. Ich habe einige Zeit gebraucht, um es mit einem Snom 370 ans Laufen zu bekommen, da ich beim Tastentyp „Button“ noch den Wert „1“ angegeben habe. Damit die SIP-Nachricht klappt, musste ich dem Inhalt der Notify-Nachricht noch zwei Zeilen einfügen, so dass der „Body“ so aussah:

    k=7
    c=off
    l=1
    n=1

    Die Content-Length muss dann natürlich auch noch angepasst werden. Vll. hilft die Info ja jemandem, der das selbe Problem wie ich hat…

  3. Ralf

    Danke für den Beitrag, der auch nach viel Sucherei der einzig wirklich hilfreiche war. Leider bin ich relativ lange Zeit daran gescheitert, dass der Line-Tag in der SIP-URI fehlte. Mein 320er will ohne einfach nicht leuchten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert