Software um Telefonnummer auf einem Yealink Telefon mit dem PC wählen inkl. Wählhilfe
Edit:
Andere IP-Telefon Hersteller wie Snom und Grandstream haben auch Fernsteuerfunktionen implementiert (Modellabhängig).
Mit diesen Telefonen würde das Tool auch funktionieren, natürlich müsste vorher der Herstellerspezifische Befehlsaufruf im Quellcode angepasst werden.
Hallo zusammen,
seit ein paar Jahren bin ich fleißiger Leser dieses Forums und konnte auch schon ein paar Mal einen Nutzen daraus ziehen bzw. Hilfe/Unterstützung erfahren.
Kommentare habe ich bisher kaum verfasst, da es fast immer schon hilfreiche Kommentare gab und ich aus Zeitgründen leider nicht ständig aktiv sein kann.
Allerdings möchte ich auch etwas zum Forum beitragen und stelle euch hier meine im Titel genannte Lösung vor. Diese Lösung haben wir bei uns jetzt seit ca. 2 Jahren im Einsatz und läuft seither problemlos.
Wir setzen überwiegend auf Hardwaretelefone und diese stammen alle von der Firma Yealink.
Anforderung der Belegschaft war das wählen einer Telefonnummer mit dem PC, unter anderem:
Die Recherche nach einer vorhandenen Lösung hat mich nicht zufriedengestellt bzw. die Anforderungen nicht voll abgedeckt oder oversized.
Aus diesem Grund habe ich mir selbst eine kleine Software geschrieben, die alle Anforderungen abdeckt.
Erstellt mit AutoIt.
Mit drücken eines Hotkey’s (aufrufen des Programms mit Parameter) kann eine markierte Telefonnummer gewählt werden.
Ein Dialogfenster wird geöffnet mit Rückfrage und Anzeige der Nummer (bereinigt von Buchstaben und Sonderzeichen, „+“ wird in „00“ gewandelt)
„Ja“ ruft die Nummer an, „Nein“ setzt die Nummer in ein Textfeld zur Bearbeitung, „Abbrechen“ schließt das Dialogfenster.
Für das Verbinden mit Rücksprache sowie das Verbinden ohne Rücksprache gibt es ebenfalls entsprechende Hotkey’s.
Wir verwenden folgende Hotkeys, da diese mit einer Hand zu drücken sind, und eine logische Herleitung besitzen:
Durch aufrufen des Tools über eine Verknüpfung oder einen entsprechenden Hotkey (aufrufen des Programms ohne Parameter) wird ein Dialogfenster mit leerem Textfeld zur Eingabe einer Nummer geöffnet. Unsere Mitarbeiter legen sich die Programmverknüpfung zusätzlich auf die Taskleiste.
Durch hinterlegen des Programms im Firefox (andere Browser nicht getestet) als Ziel für tel-Link Aufrufe, können diese anklickbaren Telefonnummern ebenfalls ans Telefon weitergeleitet werden, so wie beim Smartphone.
Für die Hotkeys verwende ich "PC-Welt HotKeys v1.7" welche portabel funktioniert und per Autostart gestartet wird
Die Ansteuerung des Telefons erfolgt über die in Yealink Telefonen eingebaute Fernsteuerfunktion per http get request über curl.exe vom Windows PC aus.
Um die Software zu verteilen habe ich ein kleines Setup script erstellt, dass die nötigen Komponenten kopiert, die IP-Adresse des Telefons abfragt und nach einem Neustart fragt. Das Programm funktioniert auch ohne Neustart, allerdings ist der "PC-Welt HotKeys v1.7" noch nicht gestartet. Dieser kann allerdings auch manuell gestartet werden.
Die oben genannten Hotkeys starten jeweils das Programm mit dem entsprechenden Parameter(c, t oder b):
z.B. C:\Call-Master\call-master.exe -c
Folgende Bestandteile werden von der Setup Datei kopiert:
call-master.exe = Programm zum Verarbeiten und senden der Telefonnummer an das Yealink Telefon
call-master.ico = Icon
call-master.lnk = Verknüpfung zum Programm (Wird dem Programmordner hinzugefügt)
pcwHotKeys.exe = Hotkeys Programm
pcwHotKeys.INI = ini-File des Hotkeys Programms
pcwHotkeys.hkd = Datei in der die Hotkeys gespeichert werden, enthält bereits die vordefinierten Hotkeys
Hotkeys_call-master.lnk = Verknüpfung zum Hotkeys Programm (Wird dem Autostart Ordner hinzugefügt)
telip.txt = In dieser Textdatei wird die IP-Adresse des Telefons abgelegt und beim Aufruf ausgelesen
curl.exe = Kommandozeilen-Programm zum Übertragen des http get requests
Folgend die Schrit für Schritt Anleitung:
Downloadlink
Der Quellcode folgt unten.
Wer bedenken mit dem Download hat, kann den Quellcode selbst compilieren (mit AutoIt).
Eine uninstall.exe ist ebenfalls im Download enthalten.
setup_call-master.exe ausführen.
Nötige Einstellungen im Yealink Telefon:
IP-Adresse des Telefons mit dem Browser öffnen.
Features - Remote Control
Action URI Allow IP List = "Zugelassene IP-Adressen"
Hier muss an jedem Telefon jeweils die IP-Adresse eingetragen werden, die einen Befehl absetzen darf.
Es kann auch das ganze Netzwerk zugelassen werden, dann ist die Einstellung bei jedem Telefon gleich: z.B. 192.168.1.*
Bei uns sind die Telefone in einem anderen VLAN wie die PC's. Hier regelt die Firewall (mit NAT) den Datenverkehr.
Somit ist bei uns nur die Firewall Schnittstellen IP-Adresse des Telefonnetzes bei allen Telefonen eingetragen.
Nötige Einstellungen am Yealink Telefon:
Beim ersten Anwenden der Fernsteuerung erscheint am Telefon die Rückfrage ob die Fernsteuerung zugelassen werden soll.
Diese Abfrage erscheint nur beim ersten Mal und muss bestätigt werden.
Zur Fernsteuerung der Telefone sind die Zugangsdaten notwendig. In dem Programm wird der Standard Benutzer (nicht der Admin) mit dem voreingestellten Standard Passwort verwendet. Wer diese geändert hat muss das entsprechend anpassen.
call-master.exe
setup_call-master.exe
uninstall_call-master.exe
Gruß Michael
Andere IP-Telefon Hersteller wie Snom und Grandstream haben auch Fernsteuerfunktionen implementiert (Modellabhängig).
Mit diesen Telefonen würde das Tool auch funktionieren, natürlich müsste vorher der Herstellerspezifische Befehlsaufruf im Quellcode angepasst werden.
Hallo zusammen,
seit ein paar Jahren bin ich fleißiger Leser dieses Forums und konnte auch schon ein paar Mal einen Nutzen daraus ziehen bzw. Hilfe/Unterstützung erfahren.
Kommentare habe ich bisher kaum verfasst, da es fast immer schon hilfreiche Kommentare gab und ich aus Zeitgründen leider nicht ständig aktiv sein kann.
Allerdings möchte ich auch etwas zum Forum beitragen und stelle euch hier meine im Titel genannte Lösung vor. Diese Lösung haben wir bei uns jetzt seit ca. 2 Jahren im Einsatz und läuft seither problemlos.
Wir setzen überwiegend auf Hardwaretelefone und diese stammen alle von der Firma Yealink.
Anforderung der Belegschaft war das wählen einer Telefonnummer mit dem PC, unter anderem:
- Wählen aus Outlook
- Wählen aus dem Webbrowser (Suchmaschine, online Telefonbuch...)
- Wählen aus verschiedenen Anwendungen (ERP...)
Die Recherche nach einer vorhandenen Lösung hat mich nicht zufriedengestellt bzw. die Anforderungen nicht voll abgedeckt oder oversized.
Aus diesem Grund habe ich mir selbst eine kleine Software geschrieben, die alle Anforderungen abdeckt.
Erstellt mit AutoIt.
Mit drücken eines Hotkey’s (aufrufen des Programms mit Parameter) kann eine markierte Telefonnummer gewählt werden.
Ein Dialogfenster wird geöffnet mit Rückfrage und Anzeige der Nummer (bereinigt von Buchstaben und Sonderzeichen, „+“ wird in „00“ gewandelt)
„Ja“ ruft die Nummer an, „Nein“ setzt die Nummer in ein Textfeld zur Bearbeitung, „Abbrechen“ schließt das Dialogfenster.
Für das Verbinden mit Rücksprache sowie das Verbinden ohne Rücksprache gibt es ebenfalls entsprechende Hotkey’s.
Wir verwenden folgende Hotkeys, da diese mit einer Hand zu drücken sind, und eine logische Herleitung besitzen:
strg + alt + c => Nummer anrufen (c für call)
strg + alt + t => aktuelles Gespräch an Nummer weiterleiten mit Rücksprache (t für transfer)
strg + alt + b => aktuelles Gespräch an Nummer weiterleiten ohne Rücksprache (b für blind transfer)
Durch hinterlegen des Programms im Firefox (andere Browser nicht getestet) als Ziel für tel-Link Aufrufe, können diese anklickbaren Telefonnummern ebenfalls ans Telefon weitergeleitet werden, so wie beim Smartphone.
Für die Hotkeys verwende ich "PC-Welt HotKeys v1.7" welche portabel funktioniert und per Autostart gestartet wird
Die Ansteuerung des Telefons erfolgt über die in Yealink Telefonen eingebaute Fernsteuerfunktion per http get request über curl.exe vom Windows PC aus.
Um die Software zu verteilen habe ich ein kleines Setup script erstellt, dass die nötigen Komponenten kopiert, die IP-Adresse des Telefons abfragt und nach einem Neustart fragt. Das Programm funktioniert auch ohne Neustart, allerdings ist der "PC-Welt HotKeys v1.7" noch nicht gestartet. Dieser kann allerdings auch manuell gestartet werden.
Die oben genannten Hotkeys starten jeweils das Programm mit dem entsprechenden Parameter(c, t oder b):
z.B. C:\Call-Master\call-master.exe -c
Folgende Bestandteile werden von der Setup Datei kopiert:
call-master.exe = Programm zum Verarbeiten und senden der Telefonnummer an das Yealink Telefon
call-master.ico = Icon
call-master.lnk = Verknüpfung zum Programm (Wird dem Programmordner hinzugefügt)
pcwHotKeys.exe = Hotkeys Programm
pcwHotKeys.INI = ini-File des Hotkeys Programms
pcwHotkeys.hkd = Datei in der die Hotkeys gespeichert werden, enthält bereits die vordefinierten Hotkeys
Hotkeys_call-master.lnk = Verknüpfung zum Hotkeys Programm (Wird dem Autostart Ordner hinzugefügt)
telip.txt = In dieser Textdatei wird die IP-Adresse des Telefons abgelegt und beim Aufruf ausgelesen
curl.exe = Kommandozeilen-Programm zum Übertragen des http get requests
Folgend die Schrit für Schritt Anleitung:
Downloadlink
Der Quellcode folgt unten.
Wer bedenken mit dem Download hat, kann den Quellcode selbst compilieren (mit AutoIt).
Eine uninstall.exe ist ebenfalls im Download enthalten.
setup_call-master.exe ausführen.
Nötige Einstellungen im Yealink Telefon:
IP-Adresse des Telefons mit dem Browser öffnen.
Features - Remote Control
Action URI Allow IP List = "Zugelassene IP-Adressen"
Hier muss an jedem Telefon jeweils die IP-Adresse eingetragen werden, die einen Befehl absetzen darf.
Es kann auch das ganze Netzwerk zugelassen werden, dann ist die Einstellung bei jedem Telefon gleich: z.B. 192.168.1.*
Bei uns sind die Telefone in einem anderen VLAN wie die PC's. Hier regelt die Firewall (mit NAT) den Datenverkehr.
Somit ist bei uns nur die Firewall Schnittstellen IP-Adresse des Telefonnetzes bei allen Telefonen eingetragen.
Nötige Einstellungen am Yealink Telefon:
Beim ersten Anwenden der Fernsteuerung erscheint am Telefon die Rückfrage ob die Fernsteuerung zugelassen werden soll.
Diese Abfrage erscheint nur beim ersten Mal und muss bestätigt werden.
Zur Fernsteuerung der Telefone sind die Zugangsdaten notwendig. In dem Programm wird der Standard Benutzer (nicht der Admin) mit dem voreingestellten Standard Passwort verwendet. Wer diese geändert hat muss das entsprechend anpassen.
call-master.exe
#include <Constants.au3>
Send("^c") ;sende strg und c um zu kopieren
$nummer = ClipGet() ;lese Zwischenablage aus
bearbeiten($nummer)
$f = FileOpen("C:\Call-Master\telip.txt") ;Telefon IP auslesen
$ip = FileRead($f)
FileClose($f)
$i=0
If $CmdLine = 0 Then
$i=1
$nummer = InputBox( "Nummer eingeben", "Nummer eingeben die angerufen werden soll")
If $nummer = Not "" Then
$befehl = "number"
callsend($ip, $nummer, $befehl)
EndIf
Exit(0)
EndIf
If $CmdLine[1] = "-c" Then
$i=1
hotkey($ip, $nummer, "number", "Folgende Nummer anrufen?")
EndIf
If $CmdLine[1] = "-t" Then
$i=1
hotkey($ip, $nummer, "ATrans", "Verbinden mit Rücksprache?")
EndIf
If $CmdLine[1] = "-b" Then
$i=1
hotkey($ip, $nummer, "BTrans", "Verbinden ohne Rücksprache?")
EndIf
If $i = 0 Then
$nummer = $CmdLine[1]
bearbeiten($nummer)
hotkey($ip, $nummer, "number", "Folgende Nummer anrufen?")
EndIf
Func hotkey($ip, $nummer, $befehl, $frage)
$chk = MsgBox(3, $frage, $nummer) ;frage ob Nummer gesendet werden soll
If $chk = 6 Then ;wenn Abfrage positiv
callsend($ip, $nummer, $befehl)
EndIf
If $chk = 7 Then ;pruefe ob Abfrage positiv
$nummer = InputBox( "Nummer eingeben", "Nummer eingeben die angerufen werden soll", $nummer)
If $nummer = Not "" Then
callsend($ip, $nummer, $befehl)
EndIf
EndIf
EndFunc
Func callsend($ip, $nummer, $befehl)
bearbeiten($nummer)
$aufruf = "http://user:user@" & $ip & "/servlet?key=" & $befehl & "=" & $nummer ;setze Link
ShellExecute( "curl.exe", $aufruf ) ;sende Aufruf an Telefon
EndFunc
Func bearbeiten(ByRef $nummer)
$nummer = StringRegExpReplace($nummer, '[+]', '00') ;ersetze ein + durch 00
$nummer = StringRegExpReplace($nummer, '[^0-9]', '') ;entferne alles ausser zahlen
EndFunc
setup_call-master.exe
#include <Constants.au3>
#RequireAdmin
;Ip abfragen
$ip = InputBox( "IP Adresse", "IP Adresse des Yealink Telefons eingeben")
If $ip = Not "" Then
$hFileOpen = FileOpen("telip.txt", 2 )
FileWrite($hFileOpen, $ip)
FileClose($hFileOpen)
Else
MsgBox(0, "Abbruch", "Abbruch durch Benutzer oder fehlerhafte Eingabe")
Exit(0)
EndIf
$fehler = "Ein Fehler ist währernd der Installation aufgetreten. Wenden Sie sich bitte an den Support. Fehlercode:"
;Daten Kopieren
If Not FileCopy ( "pcwHotKeys.exe", "C:\Call-Master\pcwHotKeys.exe" , 1 + 8 )Then
$fehler = $fehler&"hk "
EndIf
If Not FileCopy ( "pcwHotkeys.hkd", "C:\Call-Master\pcwHotkeys.hkd" , 1 + 8 )Then
$fehler = $fehler&"hkd "
EndIf
If Not FileCopy ( "pcwHotKeys.INI", "C:\Call-Master\pcwHotKeys.INI" , 1 + 8 )Then
$fehler = $fehler&"hkini "
EndIf
If Not FileCopy ( "telip.txt", "C:\Call-Master\telip.txt" , 1 + 8 )Then
$fehler = $fehler&"iptxt "
EndIf
If Not FileCopy ( "call-master.exe", "C:\Call-Master\call-master.exe" , 1 + 8 )Then
$fehler = $fehler&"cm "
EndIf
If Not FileCopy ( "Hotkeys_call-master.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Hotkeys_call-master.lnk" , 1 )Then
$fehler = $fehler&"hklnk "
EndIf
If Not FileCopy ( "curl.exe", "C:\Windows\System32\curl.exe" , 1 )Then
$fehler = $fehler&"curl "
EndIf
If Not FileCopy ( "call-master.ico", "C:\Call-Master\call-master.ico" , 1 )Then
$fehler = $fehler&"ico "
EndIf
If Not FileCopy ( "call-master.lnk", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\call-master.lnk" , 1 )Then
$fehler = $fehler&"cmlnk "
EndIf
;ip Datei leeren
$hFileOpen = FileOpen("telip.txt", 2 )
FileWrite($hFileOpen, "")
FileClose($hFileOpen)
If $fehler = Not "Ein Fehler ist währernd der Installation aufgetreten. Wenden Sie sich bitte an den Support. Fehlercode:" Then
MsgBox(0, "Error", $fehler)
Exit(0)
EndIf
$chk = MsgBox(1, "Neustart", "Es wird ein Neustart benötigt um die volle Funktionalität von Call-Master zu gewährleisten")
If $chk = 1 Then ;pruefe ob Abfrage positiv
Shutdown ( 2 )
EndIf
uninstall_call-master.exe
#include <Constants.au3>
#RequireAdmin
$chk = MsgBox(4, "Uninstall", "Soll Call-Master wirklich deinstalliert werden?")
If $chk = 6 Then ;pruefe ob Abfrage positiv
ProcessClose ( "pcwHotKeys.exe" )
$fehler = 0
If Not DirRemove ( "C:\Call-Master" , 1 ) Then
MsgBox(0, "Error", "Fehler beim Verzeichnis löschen. Wenden Sie sich bitte an den Support.")
$fehler = 1
EndIf
If Not FileDelete ( "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Hotkeys_call-master.lnk" ) Then
MsgBox(0, "Error", "Fehler beim Verknüpfung löschen. Wenden Sie sich bitte an den Support.")
$fehler = 1
EndIf
If Not FileDelete ( "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\call-master.lnk" ) Then
MsgBox(0, "Error", "Fehler beim Verknüpfung löschen. Wenden Sie sich bitte an den Support.")
$fehler = 1
EndIf
If $fehler = Not 0 Then
Exit(0)
EndIf
MsgBox(0, "Deinstallation erfolgreich", "Die Deinstallation von Call-Master wurde erfolgreich beendet.")
EndIf
Gruß Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 634205
Url: https://administrator.de/contentid/634205
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo Michael,
vielen Dank für Deinen Beitrag, denn das ist genau das, was ich suche. Perfekt !
Leider bekomme ich das Programm aber nicht zum Laufen:
Die Installation via "setup_call-master" funktionierte. Wenn ich dann aber das Programm start
und im Abfragefenster eine Telefonnumer eingebe erscheint die Meldung "curl.exe -Systemfehler, Das Programm kann nicht gestartet werden, da api-ms-win-core-processenvironment-l1-2-0.dll auf dem Computer fehlt".
Ich habe Win7-Pro-64bit.
Meine Recherchen nach der fehlenden dll, führten leider zu keinem Ergebnis.
Michael, hast Du für mich bitte einen Tipp ?
Vielen Dank !
/ bert
vielen Dank für Deinen Beitrag, denn das ist genau das, was ich suche. Perfekt !
Leider bekomme ich das Programm aber nicht zum Laufen:
Die Installation via "setup_call-master" funktionierte. Wenn ich dann aber das Programm start
und im Abfragefenster eine Telefonnumer eingebe erscheint die Meldung "curl.exe -Systemfehler, Das Programm kann nicht gestartet werden, da api-ms-win-core-processenvironment-l1-2-0.dll auf dem Computer fehlt".
Ich habe Win7-Pro-64bit.
Meine Recherchen nach der fehlenden dll, führten leider zu keinem Ergebnis.
Michael, hast Du für mich bitte einen Tipp ?
Vielen Dank !
/ bert