Lync DialHotkey

In der Vor OCS und Vor Lync-ära habe ich mit Swyx telefoniert und der Swyx Client konnte per Hotkey die aktuell markierte Nummer direkt anwählen.  Nun gibt es für den Lync 2010 Client ja ein AddOn, welches sich im Internet Explorer einbindet und dort Rufnummern per "Klick" anwählbar macht. Das hilft mir aber nicht, wenn die Rufnummer in einem Textfeld einer anderen Anwendung (z.B.: Navision, SAP etc.) steht. Ich würde hier gerne wieder die Nummer "markieren" und mit einer Taste anrufen. Natürlich gibt es auch kommerzielle Lösungen wie die Estos Phone Tools ($ ca. 30€/User). Lync selbst hat auch eine Menge Hotkeys:

Allerdings fehlt genau die Taste, um eine markierte Rufnummer direkt anzuwählen. Abhilfe tut also Not:

Andere Tools

Meine hier vorgestellte Lösung mit einem Skript ist sicher nicht der aktuellste Schrei. Aber Sie ist j auch schon etwas älter. Glücklicherweise haben andere Personen und Firmen hier eigene Produkte nachgelegt:

Es gibt sicher noch andere Tools.

Hilfe durch AutoHotkey

Ehe ich nun wieder zum Entwickler auf niedrigsten Windows API-Aufrufen werde, habe ich etwas rumgeschaut und in "AutoHotKey" ein geniales Programm gefunden, welches wenige Speicher braucht, globale Hotkeys registriert und damit verbundene Aktionen ausführen kann. Das Programm ist bei weitem nicht auf OCS und Lync beschränkt, sondern generell ein tolles Programm für Tastatur-Junkies wie mich, die auf Notebooks ganz selten mit einer Maus arbeiten und daher Kurztasten sehr intensiv nutzen. Da es noch viele Kurztastenkombinationen nicht belegt sind, habe ich das Programm schon im Dauereinsatz z.B.: mit folgenden Befehlen:

; Windows-N  Startet meinen Editor
#n::Run "C:\Program Files (x86)\SC1\Sc212.exe"

; Windows-N  Startet eine einfache CMD-Shell
#c::Run cmd.exe

Insofern ist die Basis zumindest bei mir "eh da" und warum sollte ich ein ganz eigenes Programm schreiben. Schade dass Microsoft noch keinen Hotkey von selbst ins Produkt addiert hat.

Hotkey Script für Lync Dial Version 1.0

Für den Einsatz mit Lync habe ich mir eine Konfiguration erstellt, die beim Druck auf "F11" folgendes leistet:

  • Kopiere aktuell markierten Text in die Zwischenablage (CTRL-C)
  • Aktiviere den Lync Client (Windows-Q)  1234
  • Wechsle zum Hauptfenster (STRG-1)
  • Sende die Zwischenablage

Die erste Version des Skripts war dementsprechend "überschaubar"

F11::
clipboard =
send ^c
clipwait, 1 
send #q
send ^1
send %clipboard%{enter}{enter}
return

Das hat schon auf Anhieb funktioniert. Wer mag und z.B.: eine "Amt-Null" addieren muss kann das natürlich auch tun. Wer nicht direkt wählen will, sollte das "{enter}{enter}" entfernen.

Hotkey Script für Lync Dial Version 2.0

Dann bin ich aber auf die Idee gekommen, das Lync und OCS auch auf die TEL-URL reagieren, Also Nummer mit dem "Tel:"-Präfix. Eine kurze Suche in der Registrierung ergab, welche Kommandozeile dann aufgerufen wird.

Achtung
Die Registry-Dateien sind für 32bit und 64bit Windows unterschiedlich, da sich der Installationspfad unterscheidet. Die hier dargestellte Regdatei ist für 64bit Windows

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\tel]
@="URL:Tel Protocol"
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""

[HKEY_CLASSES_ROOT\tel\DefaultIcon]
@="C:\\Program Files (x86)\\Microsoft Lync\\Communicator.exe,0"

[HKEY_CLASSES_ROOT\tel\shell\open\command]
@="\"C:\\Program Files (x86)\\Microsoft Lync\\Communicator.exe\" \"%1\""

Registry-Datei zum direkten Import
Lync DialHotkey 32bit
Lync DialHotkey 64bit

Also habe ich das Skript entsprechend umgebaut, dass ich zuerst versucht habe, den Communicator direkt aufzurufen aber viel einfacher ist direkt der Aufruf der TEL-URI zu starten. Und weil einige Nummern "falsch" gepflegt sind, habe ich gleich noch ein "Shift-F11" addiert, um die Amts-Null davor zu setzen. Dann müssen See einfach nur die folgenden Zeilen in der Datei C:\Users\%username%\Documents\AutoHotkey.ahk addieren.

F11::
clipboard =
send ^c
clipwait, 1 
Run, tel:%clipboard%
return

+F11::
clipboard =
send ^c
clipwait, 1 
Run, tel:0%clipboard%
return

Beim Start mit der "TEL:" muss der Anwender natürlich noch einmal die Verbindung "bestätigen".

Achtung: Es gibt durchaus andere Programme, die den TEL-Handler belegen.

Wer die Anwahl direkt starten will, muss nur noch etwas "warten" und dann ein "Enter" hinterher jagen. Alternativ kann man das obige Skript dazu verwenden.

Hinweis: Das Skript kopiert nicht nur Rufnummern. Sie können damit genauso gut SIP-Adressen oder andere Namen an Lync übergeben.

Weitere Verbesserungen

AutoHotkey kann auch andere Tasten erkennen, z.B.: Buttons von Joysticks, Maustasten o.ä.  Es spricht also nichts dagegen, das Sie sich mit einem alten Joystick ein "Lync-Wähltaste" schreiben. Zudem könnte das Skript auch die Zwischenablage erst mal auf vielleicht schon enthaltene Rufnummern prüfen oder umfangreicher normalisieren.

Es gibt ja auch Headsets, die "nicht" Lync Zertifiziert sind wie z.B. das Logitech G35, welches aber Tasten hat, die von Autohotkey sogar ausgewertet werden können: Siehe auch

Mit Autohotkey können Sie natürlich auch die Tasten des Headsets abfragen und mit eigenen Funktionen belegen. Hier eine Beispielapplikation

#InstallKeybdHook
SC121::msgbox Key G1 gedrueckt
SC139::msgbox Key G2 gedrueckt
SC113::msgbox Key G3 gedrueckt

Ich habe leider diesen Kopfhörer nicht, aber vielleicht baut ja jemand ein Skript, damit dank Autohotkey der Hörer auch die Lync-Funktionen (z.B. Ruf annehmen oder abheben) genutzt werden können.

Weitere Links