-
Die
Erfindung betrifft ein Verfahren sowie eine Vorrichtung zum Betrieb
einer CTI-Einrichtung.
-
Es
ist bekannt, Telekommunikationsanlagen mit Computeranlagen zu kombinieren,
um Synergieeffekte wie eine vereinfachte oder komfortablere Bedienung
oder einen verbesserten Zugriff auf Informationen zu erreichen.
Eine derartige Kombination wird als Computer Telephony Integration
(CTI) bezeichnet. Es gibt heute verschiedene PC-gestützte Lösungen,
um Mitarbeitern am Arbeitsplatz CTI-Funktionalitäten zur Verfügung zu
stellen. Diese bedingen jedoch die Installation von zusätzlichen
Software-Komponenten auf den Arbeitsplatzrechnern. Bei diesen Software-Komponenten
kann es sich entweder um eigenständige
Anwendungen oder um Runtime-Umgebungen handeln, die für Applets
bei auf Web-Browsern basierenden Lösungen notwendig sind. Zudem
werden Kommunikationspfade (z.B. IP-Ports) zu einer auf einem CTI-Server
ausgeführten
Applikation benötigt,
die unter Umständen
auch über
Firewalls hinweg freigeschaltet werden müssen. Rein HTML-basierte Lösungen können wiederum nicht
automatisch vom CTI-Server über Ereignisse informiert
werden. Neue Informationen können
erst nach einem vom Anwender initierten Aktualisieren visualisiert
werden, ein asynchroner Betrieb ist somit nicht möglich.
-
Es
ist daher die Aufgabe der Erfindung, ein Verfahren sowie eine Vorrichtung
zum Betrieb einer CTI-Einrichtung bereitzustellen, bei dem der Anwender
ohne Zusatzsoftware CTI-Funktionalitäten nutzen kann.
-
Gelöst wird
diese Aufgabe durch die Merkmale der unabhängigen Ansprüche 1 und
7. Dabei erfolgt die gesamte Bedienung einer CTI-Einrichtung ausschließlich über einen
Web-Browser, wobei durch browser-integrierte Funktionen automatisch HTTP-Requests
zur Ermittlung von Informationen generiert werden. Die Bedienung
umfasst sowohl die Eingabe von Daten oder Befehlen durch den Benutzer
als auch die Ausgabe von Daten wie dem Status eines Telefons oder
einer Leitung, einer Rufnummer oder sonstiger Informationen.
-
Die
gesamte Bedienfunktionalität
im Browser wird ausschließlich
durch browserintegrierte Funktionen, bevorzugt HTML und JavaScript,
bereitgestellt. Die Verwendung von Applets, die eine bestimmte Runtime-Umgebung
oder besondere Kommunikationspfade benötigen, wird vollständig vermieden,
so dass der Arbeitsplatz des Benutzers lediglich über einen
Web-Browser und eine HTTP-Verbindung
verfügen
muss.
-
Da
ein Web-Browser eine Seite nicht automatisch erneut lädt, wenn
auf dem Server geänderte Daten
vorliegen, werden durch ein JavaScript automatisch HTTP-Requests
zur Ermittlung von Informationen generiert. So wird sichergestellt,
dass neue oder geänderte
Informationen regelmäßig abgerufen und
dargestellt werden.
-
Die
Eingabe von Daten durch den Benutzer oder die Ausgabe von Informationen
geschieht in mindestens einem HTML-Frame, im Folgenden mit CTI-Frame
bezeichnet. In diesem Frame wird der HTML-Code für die CTI-Applikation dargestellt.
Er kann beliebige Informationen sowie Steuerelemente oder Eingabemöglichkeiten
enthalten. Eine regelmäßige automatische
Aktualisierung dieses Frames ist jedoch nicht möglich, da beispielsweise zwischenzeitlich
vom Benutzer eingegebene Daten verloren gingen. Daher werden in
vorteilhafter Weise die browser-integrierten Funktionen, zum Beispiel
das JavaScript, welche den HTTP-Request
generieren, in einem speziellen Frame ausgeführt. Bei diesem speziellen
Frame kann es sich insbesondere um einen unsichtbaren oder verstecken
Frame handeln. Da in diesem Frame keine Benutzereingaben vorgenommen
werden, kann er regelmäßig automatisch aktualisiert
werden. Somit werden Informationen asynchron im Hintergrund ermittelt
und an den speziellen Frame übertragen.
-
Bei
der Aktualisierung des speziellen Frames kann JavaScript-Code übertragen
werden, der in dem speziellen Frame ausgeführt wird und mindestens einen
CTI-Frame beeinflusst.
Bei dieser Beeinflussung kann es sich beispielsweise um die Durchführung eines
Refresh oder eines Submit handeln. Bei einem Refresh wird der HTML-Code
des CTI-Frames erneut vom Server geladen, wobei geänderte Informationen
in den HTML-Code aufgenommen werden. Bei einem Submit werden die
Benutzereingaben vom Browser an den Server übertragen. Weiterhin ist es
möglich,
dass es sich bei der Beeinflussung um den Austausch, das Einfügen und/oder das
Löschen
von Informationen handelt. Somit wird nicht der komplette Inhalt
des CTI-Frames erneut geladen. Statt dessen werden nur vereinzelt
Informationen im Frame ausgetauscht, eingefügt oder gelöscht. So kann beispielsweise
ein Textbaustein oder ein grafisches Symbol ausgetauscht, eingefügt oder
gelöscht
werden. Ebenso können
Auswahllisten oder Steuerelemente an die durch die neue Information
erzeugte Situation angepasst werden.
-
Anhand
der Zeichnung wird nachfolgend ein Ausführungsbeispiel der Erfindung
näher erläutert.
-
Die
Figur zeigt im Wesentlichen die drei Blöcke CTI-Server, Web-Applikation
und Browser. Dabei enthält
der CTI-Server die elementaren Komponenten der CTI-Einrichtung wie beispielsweise
die Schnittstelle zur Telekommunikationsanlage. Der genaue Aufbau
des CTI-Servers ist dem Fachmann bekannt und für die vorliegende Erfindung
unerheblich. Die Pfeile deuten an, welches Element auf welches andere
Element zugreift.
-
Der
Browser läuft
auf einem Rechner des Anwenders und dient Benutzereingaben sowie
Ausgaben der CTI-Einrichtung. Die Vermittlung zwischen Browser und
CTI-Server wird
von der Web-Applikation vorgenommen, die auf einem Server abläuft. Sie bereitet
einerseits die Daten vom CTI-Server zur Darstellung im Browser auf
und leitet andererseits Benutzereingaben vom Browser an den CTI-Server
weiter.
-
In
einem oder mehreren CTI-Frames des Browsers wird die Bedienoberfläche der
CTI-Einrichtung dargestellt. Dies umfasst Informationen wie beispielsweise
den Zustand des Telefons oder der Leitung (besetzt, eingehender
Anruf, Wählvorgang, etc.),
Anruflisten (z.B. angenommene, entgangene oder getätigte Anrufe),
Daten des Gesprächspartners (Telefonnummer,
Adresse, Kundendaten, bisherige Kontakte, etc.) oder sonstige CTI-Systeminformationen
(Status anderer Telefone oder Benutzer, freie Leitungen, Anzahl
wartender Anrufer, Wartezeit wartender Anrufer, etc.). Außerdem werden
Steuerelemente, Eingabefelder, Auswahllisten oder sonstige Eingabemöglichkeiten
dargestellt. Ebenfalls können akustische
Signale abgespielt werden. Die Anzeige im CTI-Frame wird durch HTML-Code
festgelegt, der von einem CTI-Application Servlet in der Web-Applikation
abgerufen wird. Das CTI-Applikation Servlet erzeugt diesen Code
unter Einbeziehung von Informationen, die es von der Serverlogik
im CTI-Server bezieht.
-
Eine
automatisierte Aktualisierung des CTI-Frames bei vorliegenden neuen
Informationen ist nicht direkt möglich.
Daher wird im Browser gleichzeitig mindestens ein spezieller Frame,
der so genannte EventFrame, ausgeführt, der regelmäßig HTTP-Requests
an ein EventManager Servlet verschickt, das ebenfalls in der Web-Applikation
ausgeführt
wird. Bei dem EventFrame handelt es sich bevorzugt um einen versteckten
oder unsichtbaren Frame, beispielsweise mit einer Höhe und/oder
Breite von 0 Pixeln. Der EventFrame kann alternativ auch mittels
anderer Funktionalitäten
wie Styles unsichtbar gemacht werden.
-
Das
EventManager Servlet schickt auf die Anfrage eine Response zurück, die
JavaScript enthält,
das zumindest einen neuen Request initiiert. Außerdem kann die Response JavaScript
enthalten, welches abhängig
von seit dem letzten Request eingetretenen Ereignissen ist. Bei
diesen Ereignissen handelt es sich im Wesentlichen um Hinweise der Serverlogik,
dass neue, darzustellende Informationen vorliegen. Liegt ein Ereignis
vor, so hinterlegt die Serverlogik ein entsprechendes Objekt mit
diesem Ereignis im EventManager.
-
Bevorzugt
schickt das EventManager Servlet die Response direkt nach Eingang
der Anfrage, wenn mindestens ein Event vorliegt, und mit einer Verzögerung,
beispielsweise von 30 Sekunden, wenn kein Event vorliegt. Geht während der
Verzögerungszeit ein
Ereignis ein, so wird direkt eine Response erzeugt. Ansonsten erfolgt
nach Ablauf der Verzögerungszeit
eine Response, die nur einen neuen Request initiiert. Durch die
Verzögerung
kann eine unnötige
Request-Frequenz
und somit ein erhöhtes
Datenaufkommen vermieden werden. Die maximale Verzögerungszeit
ist so zu wählen,
dass der Browser nicht aufgrund eines Timeout einen Fehler generiert.
-
Beim
ersten Aufruf des CTI-Application Servlet durch den Browser wird
für jedes
mögliche
Ereignis mindestens ein EventHandler beim EventDispatcher registriert,
in dem mögliche
Reaktionen auf ein Ereignis festgelegt werden. Dies geschieht im
vorliegenden Beispiel in der Instanz CTI EventHandler, die das Interface
EventHandler implementiert. Geht beispielsweise ein neuer Anruf
ein, so erzeugt die Serverlogik im EventManager ein neues Ereignis. Schickt
der EventFrame einen HTTP-Request an das EventManager Servlet, so überprüft dies,
ob beim EventManager Ereignisse vorliegen. Ist dies der Fall, so
wird die Information über
das Ereignis an den EventDispatcher weitergeleitet, der den oder
die zugehörigen
EventHandler aufruft. Diese führen
die beim Vorliegen des Ereignisses notwendigen Operationen aus,
liefern beispielsweise JavaScript-Code an den Event-Dispatcher zurück, der
an das EventManager Servlet weitergereicht und von dort in der HTTP-Response
an den EventFrame übertragen wird.
Dort wird der JavaScript-Code ausgeführt, der Manipulationen an
dem CTI-Frame vornehmen kann. Es können die bereits geschilderten
Informationen manipuliert oder ein Reload bzw. Submit des Frames ausgelöst werden.
Bevorzugt wird die Submit-Routine
verwendet, damit gleichzeitig eventuelle Benutzereingaben an das
CTI-Application
Servlet übertragen werden.
-
Durch
das vorstehend beschriebene Prinzip können Informationen vom CTI-Server asynchron
an den Browser übermittelt
werden, indem ein spezieller Frame im Browser im Hintergrund ständig aktualisiert wird.
Liegt seit der letzten Aktualisierung eine neue Information in Form
eines Ereignisses vor, werden diesem Ereignis zugeordnete Aktionen
ausgeführt. So
wird beispielsweise serverseitig dynamisch JavaScript generiert,
das im speziellen Frame ausgeführt wird. Über das
JavaScript sind dann Manipulationen des CTI-Frames möglich.
-
Zusätzlich zu
diesem ereignisbasierten Verfahren kann der Inhalt der CTI-Frames
durch den Benutzer aktualisiert werden, beispielsweise indem Steuerelemente
betätigt
oder Eingaben an das CTI-Applikation Servlet übertragen werden.
-
Zur
Durchführung
des Verfahrens wird eine Vorrichtung mit einer Web-Applikation und
einem Web-Browser eingesetzt, wobei der Web-Browser mindestens einen
speziellen Frame aufweist, der regelmäßig HTTP-Requests an die Web-Applikation verschickt
Aus Gründen
der Übersichtlichkeit
sind in der Figur nicht alle Komponenten dargestellt. So geschieht
beispielsweise die Kommunikation zwischen CTI-Application Servlet, CTI EventHandler
oder EventManager mit der Serverlogik nicht unmittelbar, sondern über entsprechende
Schnittstellen. Mittels dieser Schnittstellen werden eventuell notwendige Konvertierungen
der Daten zwischen den Komponenten vorgenommen. Außerdem stellt
die Web-Applikation die benötigte
Umgebung zur Verfügung,
um die Servlets, den EventManager, den EventDispatcher und die EventHandler
auszuführen.
-
Bei
dem vorangegangenen Ausführungsbeispiel
handelt es sich nur um eine mögliche
Implementierungsform der vorliegenden Erfindung. Es ist unter anderem
möglich,
dass im Browser mehr als ein EventFrame beziehungsweise mehr als
ein CTI-Frame vorhanden ist. Ebenso ist es möglich, statt eines Java-basierten
WebServers und der Verwendung von Servlets bzw. Java-Server-Pages
einen auf anderen Technologien oder Sprachen (C/C++,.NET) aufsetzenden
Webserver einzusetzen.