Guten Abend,
ich wurde gefragt, wie ich es bei mir realisiert habe, daß in Mairlist der Anrufstatus von Phoner angezeigt wird. Da diese Anfragen als private Nachricht gestellt wurden und nicht direkt im Forum, dachte ich mir, wenn ich da schon beschreibe wie ich das gemacht habe, dann soll auch die gesamte Community was davon haben.
Bei mir ist es so, wenn in Phoner ein Anruf reinkommt, dann blinkt bei mir in Mairlist ein erstellter Button gelb. Wenn ich nun das Gespräch annehme, dann ist der Button permanent gelb. Wird das Gespräch beendet, dann ist in Mairlist der gleiche Button rot.
Die nachfolgende Anleitung sollte für Leute mit und ohne ein Airlite von D&R funktionieren.
WICHTIG: In der Anleitung verwende ich meine Ordnerstruktur. Solltet Ihr eine andere Struktur nutzen wollen oder sogar auch andere Fernsteuerungs-ID´s, dann vergeßt bitte nicht, dies auch in den Skripten anzupassen.
Wenn einer Ideen hat, um die ganzen Skripte vielleicht zu optimieren, dann würde ich das begrüßen. Ich selber bin kein Profi beim Skripten.
- In Mairlist neues Bildschirmobjekt als statischen Text erstellen.
- Statischen Text mit “Telefon” benennen oder wie auch immer man den benennen möchte.
- Unter erweitert eine ID für Fernsteuerung vergeben “PHONERCALLERSTATUS”.
- Positioniert das Bildschirmobjekt in Mairlist über den Layout-Designer.
- Erstellt eine Datei mit dem Namen “Phoner_Status_Anruf.mls” in Eurem Mairlist Skriptverzeichnis.
// Hintergrundskript fuer Phoner Anrufstatus
const
PATH = 'D:\Portable\PhonerLite\Airlite\';
FILENAME = 'mairlist_phone_status.txt';
var
sl: TStringList;
procedure UpdateButton;
begin
sl := TStringList.Create;
try
sl.LoadFromFile(PATH + FILENAME);
if copy(sl.Text, 1, 1) = '1' then
begin
ExecuteCommand('PHONERCALLERSTATUS FONTCOLOR #FF0000');
ExecuteCommand('PHONERCALLERSTATUS BACKGROUNDCOLOR #FF0000');
if trunc(now * 24 * 60 * 60 * 2) mod 2 = 0 then
ExecuteCommand('PHONERCALLERSTATUS BACKGROUNDCOLOR #FFFF00')
else
ExecuteCommand('PHONERCALLERSTATUS FONTCOLOR #FFFF00');
end
else if copy(sl.Text, 1, 1) = '2' then
begin
ExecuteCommand('PHONERCALLERSTATUS BACKGROUNDCOLOR #FFFF00');
ExecuteCommand('PHONERCALLERSTATUS FONTCOLOR #000000');
end
else
begin
ExecuteCommand('PHONERCALLERSTATUS BACKGROUNDCOLOR #FF0000');
ExecuteCommand('PHONERCALLERSTATUS FONTCOLOR #000000');
end;
finally
sl.Free;
end;
end;
procedure OnLoad;
begin
UpdateButton;
EnableTimer(500);
end;
procedure OnTimer;
begin
UpdateButton;
end;
begin
end.
- Datei “Phoner_Status_Anruf.mls” in Mairlist als Hintergrund-Script einbinden.
- Im Phoner(Lite)-Ordner einen Unterordner “Airlite” erstellen.
- Darin erstellt Ihr folgende Dateien:
mairlist_phone_status.txt
mairlist_incoming.bat
mairlist_connected.bat
mairlist_disconnected.bat
incoming.vbs
connected.vbs
disconnected.vbs - Die angelegten Dateien nun mit Inhalt füllen.
mairlist_phone_status.txt -> Diese Datei bleibt leer, denn dort wird der Status von Phoner geloggt.
// mairlist_incoming.bat
@echo off
set PFAD=D:\Portable\PhonerLite\Airlite\
set DATEI=mairlist_phone_status.txt
set INHALT=1
echo %INHALT% > %PFAD%%DATEI%
// Airlite Connect-Button wird angesteuert
// "C:\Program Files (x86)\D&R Voip Connect\Voip Connect.exe" -s incoming
// mairlist_connected.bat
@echo off
set PFAD=D:\Portable\PhonerLite\Airlite\
set DATEI=mairlist_phone_status.txt
set INHALT=2
echo %INHALT% > %PFAD%%DATEI%
// Airlite Connect-Button wird angesteuert
// "C:\Program Files (x86)\D&R Voip Connect\Voip Connect.exe" -s connected
// mairlist_disconnected.bat
@echo off
set PFAD=D:\Portable\PhonerLite\Airlite\
set DATEI=mairlist_phone_status.txt
set INHALT=0
echo %INHALT% > %PFAD%%DATEI%
// Airlite Connect-Button wird angesteuert
// "C:\Program Files (x86)\D&R Voip Connect\Voip Connect.exe" -s disconnected
// incoming.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "D:\Portable\PhonerLite\Airlite\mairlist_incoming.bat" & Chr(34), 0
Set WshShell = Nothing
// connected.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "D:\Portable\PhonerLite\Airlite\mairlist_connected.bat" & Chr(34), 0
Set WshShell = Nothing
// disconnected.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "D:\Portable\PhonerLite\Airlite\mairlist_disconnected.bat" & Chr(34), 0
Set WshShell = Nothing
-
In Phoner (Lite) auf die Optionen gehen und unter “externe Applikationen” die einzelnen Skripte verlinken.
Eingehender Anruf: “D:\Portable\PhonerLite\Airlite\incoming.vbs”
Verbundener Anruf: “D:\Portable\PhonerLite\Airlite\connected.vbs”
Beendeter Anruf: “D:\Portable\PhonerLite\Airlite\disconnected.vbs” -
Wer ein Airlite hat und möchte dort den Connect-Button auch mit ansteuern, der muss in den Dateien “mairlist_incoming.bat”, “mairlist_connected.bat” und “mairlist_disconnected.bat” die letzte Zeile ausdokumentieren.
Das ist alles recht komplex. Was passiert nun genau.
- Mit dem Hintergrundskript “Phoner_Status_Anruf.mls” prüft Mairlist immer wieder ob in der Datei “mairlist_phone_status.txt” sich was geändert hat. Wenn ja, dann wird der entsprechende Wert ausgewertet. Abhängig vom Wert wird der Button mit der ID “PHONERCALLERSTATUS” angesteuert. Das bedeutet der Button ist rot, blinkt gelb oder ist gelb.
- Anruf kommt rein, Phoner ruft nun die “incoming.vbs” auf über die dann im Hintergrund die “mairlist_incoming.bat” aufgerufen wird. Den Umweg über die VBS-Datei habe ich gemacht, weil ich es nicht hinbekommen hatte mit Phoner eine bat-Datei anzusteuern, womit unterbunden wird, daß sich Fenster im Vorder- oder Hintergrund öffnen. Optimierungen sind gerne gesehen.
- Über die “mairlist_incoming.bat” wird nun der Wert “1” in die “mairlist_phone_status.txt” geschrieben und gleichzeitig ein Befehl an das D&R Voip Connect Tool geschickt, damit auch der Button am Airlite blinkt (Nur wenn auch die entsprechende Zeile ausdokumentiert ist).
- Das ganze landet dann wieder bei Punkt 1. Wird also der Anruf angenommen oder beendet wird immer wieder der gleiche Programm- und Skriptweg durchlaufen. Jeder Status, der in die “mairlist_phone_status.txt” geschrieben wird, hat seinen eigenen Wert.
Eingehender Anruf: 1
Verbundener Anruf: 2
Beendeter Anruf: 0
WICHTIG: Bevor nun Fragen auftauchen, wie man das Airlite und Phoner einrichtet, um am Airlite den VoIP Connect Button zu nutzen, der möge sich bitte den folgenden Artikel durchlesen: https://community.mairlist.com/t/d-r-airlite-anleitung-fur-mairlist/10118/154
Und nun viel Spaß beim testen und optimieren.
Abendliche Grüße
Nick