Hi Malte,
klar.
Zunächst mal: Ja, Phoner sieht nicht so richtig schön aus. Aber nachdem ich es mir neulich noch mal angeschaut habe, fand ich es erfrischend schlicht und eigentlich sogar doch recht intuitiv. Es gibt viele Softphones die optisch eher einem Handy nachgebaut sind oder so. Da finde ich die Bedienung immer noch schlimmer. Überzeugt hat mich vor allem die Mitschnittfunktion sowohl bei Phoner als auch PhonerLite. Die Aufzeichnung in zwei getrennte Kanäle ist einfach sehr gut für das Aufzeichnen von Telefoninterviews.
Im Studio finde ich es aber auch wichtig, dass man die Software vom Pult aus fernsteuern kann und umgekehrt am Pult auch was blinkt oder so, wenn ein Anruf eingeht. Daher kommt auch nicht PhonerLite infrage, denn dort fehlt die Fernsteuerbarkeit.
Bei uns habe ich das folgendermaßen realisiert:
mAirList bildet die Schnittstelle zwischen Phoner und Mischpult – aus dem einfachen Grund, dass mAirList ohnehin mit dem Mischpult in beide Richtungen kommuniziert, und weil mAirList sowohl externe Programme aufrufen kann (wenn man sich ein entsprechendes Script schreibt) und von anderen Programmen über REST ferngesteuert werden kann.
Die ganze Sache ist ein bisschen komplex, aber ich versuche es mal der Reihe nach:
Phoner fernsteuern durch mAirList
Im einfachsten Fall kann man der[tt] phoner.exe [/tt]Parameter übergeben, um Phoner fernzusteuern:
[tt]phoner.exe [KOMMANDO] [PARAMETER][/tt]
Die Kommandos sind in der Hilfe gut beschrieben:
Bisher sind folgende Kommandos definiert:
[tt]CONNECT [/tt]Die in PARAMETER enthaltene Rufnummer wird gewählt
[tt]DISCONNECT [/tt]Der aktuelle Ruf wird beendet
[tt]CONNECTCB [/tt]Die in der Zwischenablage befindliche Rufnummer wird gewählt
[tt]UNPARK [/tt]Der Ruf mit der in PARAMETER enthaltenen ID wird “entparkt”
[tt]WAVE [/tt]Über den aktuellen Ruf wird die in PARAMETER enthaltene Wave-Datei (.wav) abgespielt
[tt]ANSWER [/tt]Der gerade anstehende eingehende Ruf wird angenommen
Ich habe ein entsprechendes Skript geschrieben, das die[tt] phoner.exe [/tt]mit[tt] ANSWER [/tt]bzw.[tt] DISCONNECT [/tt]aufruft – jenachdem, ob gerade ein Gespräch aktiv ist oder nicht.
In unserem Fall sendet das Mischpult entweder den Fernsteuerungsbefehlt[tt] TELEFON 1 ANNEHMEN [/tt]bzw.[tt] TELEFON 1 AUFLEGEN[/tt]. Damit mAirList diese Befehle kennt, habe ich sie in einem Hintergrund-Script in der Prozedur[tt] OnExecuteCommand [/tt]definiert:
procedure OnExecuteCommand(Command: string);
begin
case Command of
//// Telefonsteuerung 1. Telefon-Hybrid ////
//// (A) Phoner.exe fernsteuern
// Telefongespräch annehmen
'TELEFON 1 ANNEHMEN':
ShellExecuteHidden('C:\Program Files (x86)\Phoner\Phoner.exe','ANSWER');
// Telefonhybrid auflegen
'TELEFON 1 AUFLEGEN':
ShellExecuteHidden('C:\Program Files (x86)\Phoner\Phoner.exe','DISCONNECT');
end;
end;
mAirList fernsteuern durch Phoner
Umgekehrt ist es etwas schwieriger. Zunächst mal kann man in Phoner unter Optionen/Externe Applikation insgesamt drei verschiedene Programmaufrufe definieren, die bei eingehendem Anruf, bei verbunden und bei beendet ausgelöst werden.
Dafür habe ich mir Batchdateien gebastelt, die wiederum ein Programm aufrufen, das REST-Befehle senden kann.
(Ich merke gerade, dass ich die Batchdateien gerade nicht hier habe. Die kann ich nachreichen.)
Nachtrag 01.12.2016:
Es geht noch viel einfacher, wie ich erst jetzt durch Zufall bemerkt habe, weil ich mAirListCommand gefunden habe. Download gibt’s unter Index of /mAirListCommand/.
Somit kann man sich den von mir angedeuteten Umweg über Batchdateien und REST sparen und einfach Phoner direkt mAirList steuern lassen mit [tt]mAirListCommand.exe [/tt]
Somit senden die Batchdateien dann entsprechend folgende Befehle an mAirList:
[tt]TELEFON 1 AUFGELEGT[/tt], [tt]TELEFON 1 RING[/tt] oder [tt]TELEFON 1 VERBUNDEN[/tt].
Damit mAirList diese Befehle empfangen kann, habe ich eine entsprechende REST-Fernsteuerung in der mAirListConfig angelegt.
Außerdem geht’s weiter im Hintergrund-Script von oben mit weiteren Befehlen, die dort definiert werden:
//// (B) Phoner.exe liefert Status, die entsprechend an HERZ weitergereicht werden
// Telefongespräch beendet = aufgelegt = disconnected
'TELEFON 1 AUFGELEGT':
begin
ExecuteCommand('TELEFONBUTTON 1 TEXT Telefon 1');
ExecuteCommand('TELEFONBUTTON 1 OFF');
ComPort(sComPort).SendStr(Chr($01));
end;
// Telefon klingelt
'TELEFON 1 RING':
begin
ExecuteCommand('TELEFONBUTTON 1 TEXT RING Telefon 1 RING');
ComPort(sComPort).SendStr(Chr($10));
end;
// Telefonverbindung steht = connected
'TELEFON 1 VERBUNDEN':
begin
ExecuteCommand('TELEFONBUTTON 1 TEXT • Telefon 1 •');
ExecuteCommand('TELEFONBUTTON 1 ON');
ComPort(sComPort).SendStr(Chr($11));
end;
Das Entscheidene ist hier, dass über den ComPort ein Befehl an unser Mischpult ausgegeben wird. Damit ich außerdem sehe, was gerade passiert, habe ich einen Button ins mAirList-Layout eingebaut, den ich über die ExecuteCommand-Zeilen fernsteuere.
In unserem Fall ist es so, dass das Mischpult “intelligent” ist. D.h. mAirList reicht den Status von Phoner einfach nur weiter und übersetzt ihn dabei. Das Mischpult selbst kümmert sich dann darum, eine entsprechende Taste leuchten zu lassen (verbunden), blinken zu lassen (ring) oder auszuschalten (nicht verbunden). Außerdem steuert es die Ampel entsprechend.
Das Mischpult kennt also den Zustand des Telefons und entscheidet dementsprechend auch, ob es bei Druck auf die Taste ANNEHMEN oder AUFLEGEN an mAirList senden muss.
Es ist aber auch denkbar, diese Intelligenz mAirList zu geben. Ein entsprechendes Skript würde dann dafür sorgen, dass mAirList sich den Status von Phoner merkt, und bei einem eintreffenenden Befehl (oder wenn eine Taste am JoyWarrior gedrückt wird) würde mAirList dann entscheiden, ob aufgelegt oder ein Gespräch angenommen werden muss.
Habe ich soweit erstmal alle Fragen beantwortet? Wenn nicht, frag einfach nochmal nach.
Auf die beschriebene Weise lässt sich mit Phoner auf jeden Fall ein Telefonhybrid realisieren. Wenn Du Deinen zweiten Telco-Kanal auch nutzen willst, könntest Du den einfach für Skype vorsehen (dafür habe ich aber noch keine Fernsteuerlösung ). Ich glaube, es ist aber auch möglich, mehrere Instanzen von Phoner.exe auf einem Rechner laufen zu lassen. Ich habe das irgendwo gelesen, aber nicht weiter verfolgt.
Viele Grüße
Stefan