SnomLINK

Mit dem Programm Snomtastic (Siehe auch SNOM Telefone) gibt es mittlerweile eine interessante Lösung.

Mit viel Erfolg setze ich bislang SNOM-Telefone bei Kunden in Verbindung mit dem Microsoft OCS-Server ein. Allerdings erfordert der OCS-Server eine Anmeldung mit "Benutzername und Kennwort, welche demnach auch auf den SNOM-Telefonen hinterlegt und bei KennwortÄnderungen auch wieder aktualisiert werde muss.

Da die Eingabe über die Nummerntasten nicht jedermanns Sache ist, muss der Anwender dies per Browser selbst machen. Und das muss er bei Änderungen seines Kennworts auch immer wieder wiederholen. Leider unterstützt OCS noch keine alternative Anmeldung z.B. mit Durchwahl und einer PIN. Serverseitig und das "abfangen" und Speichern des Kennworts ist zwar technisch möglich (Siehe Windows zu Unix Kennwortabgleich auf NIS und NFS) aber auch keine richtige Lösung. Selbst das Erkennen einer Änderung (z.B. über Security Eventlog) konnte ich bislang noch nicht sicher erkennen, um dann das Kennwort auch von SnomLINK nochmal abfragen zu lassen

Lösungsansatz

Aus meiner Sicht kann einen schnelle, einfache und flexible Lösung so aussehen, dass ein Anwender auf seinem Windows PC eine kleine Applikation z.B.: über Autostart startet, welches sich zum Benutzer aus dem Active Directory schon einmal die relevanten Daten für die OCS-Konfiguration holt. Das sind z.B.:

  • SIP-Adresse
  • Benutzername und Domäne

Das Programm muss dann nur noch die Adresse des dazu gehörigen Telefons können. Hierzu gibt es mehrere Optionen:

  • Eingabe durch den Anwenders
    Das Programm kann den Anwender bitte, die IP-Adresse oder den Name (gesonderter Aufkleber) vom Telefon abzulesen und im Programm einzugeben.
  • Verknüpfung an den Desktop
    Bei ortsfesten PCs (z.B. Desktops) kann man auch eine feste Zuordnung zum Telefon herstellen, wenn man z.B. dem Telefon einen DNS-Adresse "%pcname%-Snom" gibt. Das Programm könnte dann den Computernamen um "-Snom" erweitern und über DNS die (statisch) dem Telefon zugewiesene Adresse in Erfahrung zu bringen.

Das Kennwort des Anwenders hingegen kann das Programm nicht automatisch ermitteln, sondern muss erfragt werden. Aber ehe dies passiert, kann die Software natürlich anhand der bislang vorhandenen Daten ja schon einmal prüfen, ob das Telefon schon erfolgreich mit der richtigen Identität angemeldet ist. Nur wenn dies nicht der Fall ist, muss der Anwender "gestört" werden.

Das Programm prüft die Anmeldedaten und sendet diese dann an das angegebene SNOM-Telefon. Beim Abmelden kann das Programm2 dann das SNOM-Telefon auch wieder austragen. Optional könnte das Programm auch über diesen Weg gleich weitere Einstellungen am Telefon vornehmen, so dass Sie das vorhandene Provisioning (Siehe SNOM Telefone) nicht nutzen müssen. Denkbar wäre hier:

  • Displaytasten umdefinieren, z.B. REG auf OCS-Kontaktliste
  • Kurzwahltasten auf OCS Kontakte vorbelegen
  • Systemeinstellungen wie Sprache und uhrzeit
  • Telefonbucheinträge der Firma
  • Anpassungen des Wählplans (Dialplan)
  • SSL Zertifikate ?
  • User-Kennwort setzen

Wobei bei den Einstellungen genau zu prüfen ist, welche wirklich durch die Anwendung auf dem Client sinnvoll zu setzen ist und welche über eine per HTTP bereitgestellte XML-Datei verteilt werden.

Die Sicherheit wäre in der ersten Stufe über das einheitliche User-Kennwort auf dem Telefon möglich, welches im Programm sicher hinterlegt ist und z.B. über das Provisioning (Siehe SNOM Telefone) verteilt werden kann. für andere Optionen müsste die Firmware "mitspielen".

Ich habe mir viele Optionen überlegt, den Prozess "automatisch" zu machen, aber selbst das TANJAY von Microsoft löst so eine Autokonfiguration nur über einer direkte USB-Verbindung, die die 3xx-Serie nicht anbietet. Eine Zuordnung von PC anhand der MAC-Adresse, IP-Adresse oder Switchport zu einem Telefon ist nicht praktikabel. Interessant wäre es, wenn der PC "hinter" dem Telefon am Ethernet angeschlossen ist und man mit "besonderen Paketen" über diesen Port das Telefon konfigurieren könnte. Aber dazu müsste das Telefon die "Richtung" erkennen können. Ich denke die Eingabe über die IP-Adresse ist ein praktikabler Weg.

SNOM per HTTP/HTTPS konfigurieren und steuern

Zum Glück hat Snom eine umfangreiche Knowledgebase auf http://kb.Snom.com/kb/ bereit gestellt, in der viele Beispiele enthalten sind. So kann man ein SNOM-Telefone dank des integrierten Webservers einfach mit HTTP-Anfragen konfigurieren, die man notfalls sogar per VBScript und dem XMLHTTP-Objekt auslösen kann. Hier ein paar Beispiele:

Es ist recht einfach, andere Funktionen zu ermitteln, wenn Sie die Zugriffe des Webbrowsers einfach mit NetMon3 oder anderen Tools mitschneiden. Damit diese Zugriffe "gesichert" sind, sollten Sie natürlich bei der Ersteinrichtung des Telefons sowohl das ADMIN also auch User-Kennwort setzen und den Zugriff per HTTPS steuern. Dann können Sie nichts mehr "mitschnüffeln".

Per Default ist bei einem SNOM-Telefon das Userpassword "leer" und das Adminpasswort "0000". Im Programm ist ein festes Kennwort hinterlegt, welches auf jedes Telefon automatisch angewendet wird, sofern dies kein Kennwort hat. Man kann ein so gesichertes Telefon natürlich wieder "frei" machen. Siehe Kennwort des Telefons wieder zurück setzen (http://kb.Snom.com/kb/index.php?View=entry&CategoryID=44&EntryID=32)

SnomLink Funktionsweise

Das Programm wurde mit VisualBasic-2008 Express geschrieben (Also VB.NET) und erfordert daher ein installiertes .NET Framework 2.0. Allerdings ist das dann auch schon alles. Die eigenständige EXE-Datei muss nicht gesondert installiert werden, sondern es reicht einfach ein Starten. Ich überlasse es ihnen, ob ihre Anwender das Programm vom Netzwerk starten oder wie Sie sonst die Software "verteilen" und z.B. in Autostart addieren. Die Funktion ist dann sehr einfach erklärt:

  1. Holte den aktuell angemeldeten Benutzer und liest von ihm SIP-Adresse, Benutzername, Domäne
    Wenn dies nicht gelingt, dann muss der Anwender die Daten später manuell angeben bzw. sie werden aus der Registrierung ausgelesen.
  2. Erfrage vom Anwender der IP-Adresse oder Name des Telefons bzw. frage im DNS nach Snom-%pcname% oder Snom-%Username%
    Diese muss der Anwender am Telefon über die INFO-Taste in Erfahrung bringen. Wenn das Telefon einen "DNS-Namen" hat, z.B.: weil es immer die gleiche IP-Adresse bekommt und diese im DNS eingetragen ist, dann kann der Anwender natürlich auch diesen Namen eingeben.
  3. Prüfe Telefon
    Dann wird das Telefon angesprochen um die Erreichbarkeit zu prüfen aber auch um den aktuellen Anmeldestatus zu erfragen. Wenn die Daten schon übereinstimmen, muss nichts weiter getan werden.
  4. Erfrage das Kennwort des Anwenders und Identität ändern
    Das ist ein kritischer Aspekt, aber es gibt keinen anderen Weg, das Kennwort als Software zu erhalten und alternative Anmeldeverfahren (Zertifikate, Kerberos, Extension+PIN bietet OCS nicht an).
    Mit den erhaltenen Daten kann das Telefon nun umprogrammiert werden.
  5. Aktuelle Daten in der Registry hinterlegen

Das Programm kann auch ohne Verbindung zum Active Directory genutzt werden. Dann schlagen natürlich die Abfrage auf Benutzername und SIP-Adresse fehl. Diese muss der Benutzer dann neu eingeben bzw. werden von früheren Starts übernommen. Das Kennwort oder die IP-Adresse muss der Benutzer aber immer noch eintragen.

Hier ein Versuch eines Flussdiagramms, was natürlich bei einer Windows Form Anwendung nicht mehr sehr einfach ist.

Flussdiagramm

Ein sequentielles Flussdiagramm kann natürlich nur bedingt die objektorientierte und eventgesteuerte Logik eines WinForm-Programms wiedergeben. Es zeigt daher die Schritte, die im Regelbetrieb durchlaufen werden.

SnomLINK Gui

Alle automatisch gewonnenen Daten werden in die entsprechenden Felder voreingetragen. Der Anwender kann diese allerdings manuell überschreiben, wenn z.B.: der Einsatz unterwegs oder Zuhause ohne Active Directory-Verbindung gewünscht ist. Die Werte des vorherigen Starte werden dann aus der Registrierung gelesen.

GUI-Sample 

Zusätzlich gibt es natürlich ein weiteres Formular zur Eingabe des Kennworts, wenn dies erforderlich sein sollte.

Details zu HTTP

Jedes SNOM-Telefon hat einen integrierten Webserver, welcher sogar per Default per SSL erreichbar ist. Das Zertifikat ist natürlich nicht "trusted", was aber die Verschlüsselung nicht verhindert. Das Setzen der OCS-Zugangsdaten ist ein Form-Post, wie in Wireshark einfach zu erkennen ist:

Wenn auf dem Telefon zusätzlich ein "Userpassword" gesetzt ist, muss dieses natürlich im HTTP-Protokoll als Authorisation mitgegeben werden.

Offen

SnomLINK ist ein erstes Programm, um die Einrichtung von SNOM-Telefonen in einer OCS-Umgebung zu vereinfachen. Aber wenn Sie schon wissen, was sie mit dem SNOM-Webserver alles tun können, dann sind natürlich viele weitere Dinge denkbar. Sie können damit Aktionen an Tasten verbinden aber auch vom Telefon eine "Rückmeldung" erhalten, wenn dort etwas ausgelöst wird (z.B. eingehender Ruf etc.). Mein Fokus ist natürlich OCS, aber wie wäre folgendes ?:

  • LED Remote Control, z.B. Message Waiting anhand der Outlook Daten setzen
  • "Message-Waiting"-z.B. über eine bestehende Outlook-Sitzung im Posteingang nach ungelesenen Mails vom Typ IPM.Voice zu suchen
  • Action-URL mit Haussteuerung (z.B.: Türöffner) verbinden.
    Dazu braucht es aber weniger ein Programm wie SnomLINK, sondern eher einen Webserver, der auf die Request entsprechende Aktionen auslöst. SnomLINK könnte dann nur die Konfiguration übernehmen (z.B. abhängig vom Ort des Benutzers das richtige Telefon mit den richtigen URLs füttern.

Sie sehen also, dass durchaus noch Platz für Erweiterungen ist, bis irgendwann OCS auch eine Anmeldung mit Erweiterung und PIN erlaubt.

Weitere Links