Beschreibung
CPL-Editor
Die Erfindung betrifft ein Verfahren und ein System bestehend aus einer graphischen Oberfläche und einem Konverter, der die graphischen Symbole in einen CPL-Code übersetzt, wobei der erzeugte CPL-Code zum -Ansteuern von verschiedenen IP- basierten Diensten einer sogenannten CPL-Engine zugeführt wird.
Der generelle Hintergrund der vorliegenden Erfindung ist der Wunsch, im Umfeld von „Voice over IP* neue Dienste einfach und schnell entwickeln und umsetzen zu können. Ein solcher Dienst kann zum Beispiel so aussehen, dass während einer bestimmten Zeit im Büro eingehende Anrufe der wichtigsten Kunden automatisch auf ein Mobiltelephon umgeleitet werden.
Dazu hat das Standardisierungsgremium Internet Engineering Task Force (IETF) eine eigene Sprache, die Call Processing Language (CPL), eingeführt. CPL ist eine Sprache zum Beschreiben und Steuern von Internet-Telefon-Anwendungen. Sie ist plattform- und systemunabhängig und basiert auf XML. Ihre Spezifikation enthält eine Grammatik (DTD, Docu ent Type Definition), die die Syntax der CPL-Elemente definiert. In der DTD stehen die einzelnen möglichen Tags und Attribute für das XML-Dokument. Die Reihenfolge der Vereinbarungen ist nicht entscheidend, sie uss jedoch vollständig sein. Die DTD gibt genau die Baumstruktur der XML-Seite wieder. Damit das Erstellen der DTD gelingt, muss daher die Datenstruktur der XML-Dokumente bereits klar definiert sein.
Ein CPL-Skript enthält zwei Arten von Informationen, nämlich allgemeine Informationen und aktionsbezogene Informationen. Zu den allgemeinen Informationen gehören Informationen, die für einen Server notwendig sind, um das Skript korrekt zu verarbeiten. Aktionsbezogene Informationen sind Informationen, die die Operationen und Entscheidungen bestimmen, die bei einem bestimmten Anruf, der von dem Server vermittelt wird, stattfinden sollen.
Die Semantik der einzelnen Sprachelemente von CPL ist bisher nur verbal beschrieben. Ebenso wenig sind weitere Nebenbemerkungen sowie die CPL innenwohnende Systematik formal definiert.
Der Benutzer sollte zur Erstellung eines Telephonie-Dienstes nach Möglichkeit nicht zuerst die CPL-Syntax erlernen müssen. Daher ist eine grafische Oberfläche von Vorteil, die in Zusammenspiel mit einem Editor auf einfache und möglichst intuitive Weise die Erstellung eines Telephonie-Dienstes mittels Symbolen erlaubt und auf die graphische Eingabe des Benutzers hin automatisch das zugehörige CPL-Skript generiert. Aufgrund der unzureichenden Definition von CPL ist indessen nicht auszuschließen, dass die automatische Erzeugung und Umsetzung eines Dienstes mittels CPL unter Verwendung eines Editors und eines Interpreters immer eindeutige Ergebnisse liefert. Verschiedene CPL-Editoren können bei der bekannten Definition durchaus unterschiedliche CPL-Skripten liefern.
Der Erfindung liegt dementsprechend die Aufgabe zugrunde, eine Technik bereitzuteilen, die möglichst gewährleistet, dass bei der Einrichtung eines Telephonie-Dienstes mittels
Erstellung und Ausführung eines Skriptes weitgehend eindeutige Ergebnisse erzielt werden können.
Diese Aufgabe wird erfindungsgemäß durch die Merkmale der unabhängigen Ansprüche gelöst. Die abhängigen Ansprüche bilden den" zentralen Gedanken der Erfindung in besonders' " vorteilhafter Weise weiter.
Zentrale Erkenntnis der Erfindung ist es, dass nicht nur der auszuführende Dienst, sondern auch eine Definition der Semantik der einzelnen Sprachelemente dem Skript beigelegt wird.
Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein System zur Einrichtung eines Telefonie-Dienstes vorgesehen. Das System weist eine graphische Oberfläche und einen Konverter auf, der die von einem Benutzer eingegebenen graphischen Symbole von der graphischen Oberfläche in ein Skript übersetzt. Das Skript wird dann einem Interpreter zum Ansteuern von verschiedenen IP-basierten Diensten mittels eines Servers zugeführt. Dabei ist in dem Skript neben dem auszuführenden Dienst auch eine Definition der Semantik der einzelnen Sprachelemente des Skripts enthalten.
Die Semantik der einzelnen Sprachelemente kann beispielsweise durch eine XML-basierte Definition festgelegt sein.
Derartige neue sprachbeschreibende Elemente bilden wiederum eine eigene Sprache, die mittels XML-Schema beschreibbar ist.
Die syntaktische und semantische Definition kann somit durch Benutzung der XML-Technologie verbunden werden. Die Semantik der einzelnen Sprachelemente kann dabei in einer für den
Menschen lesbaren Form aufbereitet sein. Informationen, die ausschließlich Hilfschrakter besitzen, können in verschiedenen menschlichen Sprachen in der XML-basierten Definition der Computersprache integriert sein.
Gemäß einem" weiteren Aspekt der vorliegenden Erfindung ist ein CPL-Editor vorgesehen, der eine graphische Oberfläche und einen Konverter aufweist. Der Konverter setzt mittels der graphischen Oberfläche eingegebene graphische Symbole automatisch in einem CPL-Skript um. Dabei sind in dem CPL- Skript neben einem auszuführenden Dienst auch eine Definition der Semantik der einzelnen Sprachelemente des CPL-Skripts enthalten.
Gemäß einem noch weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zum Erstellen eines CPL-Skripts auf eine CPL-Engine zum Ansteuern von verschiedenen IP-basierten Diensten vorgesehen. Dabei werden Anweisungen bzgl. eines IP- basierten Dienstes mittels einer graphischen Oberfläche eingegeben. Diese Anweisungen werden dann automatisch in ein CPL-Skript umgesetzt. Dem CPL-Skript wird dabei neben dem auszuführenden Dienst auch eine Definition der Semantik der einzelnen Sprachelemente beigelegt.
Die Erfindung bezieht sich weiterhin auf ein Verfahren zur Einrichtung eines Telefonie-Dienstes auf Grundlage eines Skripts, das in dieser Weise erstellt wurde. Das Verfahren weist den weiteren Schritt auf, dass das Skript durch einen Interpreter zum Ansteuern von IP-basierten Diensten mittels eines Servers umgesetzt wird.
Schließlich ist gemäß der Erfindung auch ein Software- Programm vorgesehen, das ein wie oben ausgeführtes Verfahren implementiert, wenn es auf einem Rechner läuft.
Die Syntaxdefinitionen können auf standardisiertem Wege unter konsequenter Benutzung der XML- Technologie erfolgen."
Die Erweiterbarkeit von XML erlaubt zusätzlich die Definition eigener Elemente, die die Bedeutung eigentlicher Sprachelemente der Computersprache beschreiben. Sämtliche für diese Sprache verarbeitende Software relevanten Informationen der bisher rein verbalen Beschreibung können aus diesen zusätzlichen Elementen abgeleitet werden. Vorteilhafterweise erfolgen somit die Definition der Semantik der einzelnen Sprachelemente wiederum mittels XML und nicht wie bisher durch verbale Beschreibung. Dadurch vermeidet man, dass verschiedene CPL-Engines, welche Software für die Sprache erstellen, die Semantik unterschiedlich interpretieren.
Durch Verbindung der syntaktischen und semantischen Definitionen durch Benutzung der XML-Technologie erreicht man eine vollständige Sprachspezifikation, die komplett konsistent formal erfolgt.
Des Weiteren bilden die neuen sprachbeschreibenden Elemente eine eigene Sprache, die mittels XML-Schema eindeutig beschrieben werden kann. Darüber hinaus können Erweiterungen in der Sprache einfach umgesetzt werden. Einerseits kann diese Erweiterung dadurch erfolgen, dass weitere Sprachelemente definiert werden, und andererseits durch Definition weiterer zur Sprachbeschreibung notwendiger Informationen. Durch Definition weiterer Sprachelemente wird zum Beispiel die Anzahl der möglichen Aktionen erweitert.
Durch. die Definition weiterer zur Sprachbeschreibung notwendiger Informationen kann die Modellierung der grafischen Informationen verbessert und auch erweitert werden.
Elh "weiterer Vorteil besteht darin, dass die Semantik in - - einer für den Menschen leicht lesbaren Form aufbereitbar ist.
Des Weiteren können Informationen, die ausschließlich Hilfscharakter besitzen, in verschiedenen menschlichen Sprachen in die XML-basierte Definition der Computersprache integriert werden und lassen sich so beispielsweise durch Hilfssysteme auswerten.
Somit hat man eine durchgängige XML-basierte Kette erreicht:
1. Die zu beschreibende Sprache ist XML-basiert.
2. Das Dokument, das die Sprachelemente semantisch beschreibt, ist XML-basiert.
3. Die Definition dieses Modells (das sogenannte Metamodell) ist durch den Einsatz des XML-Schema ebenfalls XML-basiert.
4. Sämtliche Erweiterungen sind XML-basiert.
Die durchgehende Toolkette stellt eine bessere Konsistenz sicher und kann auf allen Ebenen mit den gleichen Methoden (XML) bearbeitet werden.
Weitere Merkmale-, Vorteile und Eigenschaften der vorliegenden Erfindung sollen nunmehr unter Bezugnahme auf Ausführungsbeipiele. und der Figuren der beiliegenden Zeichnungen näher erläutert werden.
Figur 1 zeigt ein Netzwerk.
Figur 2 zeigt die Stationen der Signalverarbeitung.
Figur 3 zeigt einen Screenshot einer graphischer Oberfläche
Figur 4 zeigt eine XML-basierte Toolkette.
Figur 5 zeigt ein sprachbeschreibendes Element.
Figur 6 zeigt eine Vorschrift für ein sprachbeschreibendes Element.
Figur 7 zeigt die den Aufbau der sprachbeschreibenden Datei .
In dem Netzwerk von Figur 1 sollen Nachrichten, die in einem PSTN (Public Switched Telephone Network) 1 versendet werden, zusätzlich über ein paketvermitteltes Netz, wie bspw. das Internet 2 zu dem Empfänger durchgestellt werden. Zum Beispiel soll ein Anruf auf einen Anrufbeantworter geleitet werden und zusätzlich soll der Empfänger auf einem weiteren logischen und/oder phyischen Kanal, wie bspw. E-mail vom Eingang dieses Anrufs benachrichtigt werden.
Um einen solchen Dienst einrichten zu können, generiert der Benutzer ein CPL-Skript 5, das an einen Interpreter für CPL (CPL-Engine) weitergegeben wird, der in CPL formulierte Dienste ausführen kann. Die CPL-Engine 6 führt also IP- basierten Telefondienst 7 gemäß dem vom Benutzer erstellten CPL-Skript aus.
Zur Erstellung des CPL-Skripts steht dem Benutzer dabei eine graphische Oberfläche (GUI) 3 zur Verfügung, die auf einfache und intuitive Weise die Erstellung eines Dienstes 7 erlaubt und das dazugehörige Skript 5 generiert.
Ein Screenshot" einer graphischen Oberfläche 3 ist in Figur 3- dargestellt. Die verschiedenen graphischen Elemente 8 (Symbole und schwarze Pfeile) werden durch den Editor in einzelne Bestandteile des CPL-Skripts 5 umgesetzt. Genauer gesagt übersetzt ein Konverter 4 automatisch die grafischen Symbole 8 in ein CPL-Skript 5. Parameter 9 lassen sich auf der graphischen Benutzeroberfläche 3 über kleine Dialoge eingeben und erscheinen dann als Kommentar. Die verschiedenen möglichen Aktionen erscheinen in einem Menü 10 bspw. bei Betätigung der rechten Maustaste und der Benutzer kann aus diesen Aktionen auswählen, um sein gewünschtes CPL-Skript 5 zu erstellen. Der Benutzer kann sich das generierten CPL- Skript 5 in einem Fenster der graphischen Oberfläche 3 anzeigen lassen.
Die derart als Skript erstellten Dienste 7 werden nun auf einem geeignetem Weg installiert und aktiviert. Eine Möglichkeit besteht darin, eine LDAP (Lightweight Directory Access Protocol) -Struktur zu definieren, sodass ein Nutzer mehrere CPL-Skripten 5 auf einem LDAP-Server unter seinem Account hinterlegen und aktivieren kann. Die CPL-Engine 6 lädt dann bei Bedarf das aktivierte Skript von dem LDAP- Server und führt den angewiesenen Telephoniedienst aus.
(LDAP (Lightweight Directory Access Protocol) ist ein standardisierter Directory Service (Verzeichnisdienst) auf der Basis von TCP/IP, der die hierarchische Verwaltung von Modellen verschiedenster Klassen in einer Datenbank und die
Suche nach diesen gestattet. Die unterschiedlichen Klassen (z.B. Personen, Dokumente, Rechnernamen) erlauben eine unterschiedliche Zuordnung von Attributen zu jeder Klasse im Directory. Die Abfrage von Objekten aus der Datenbank erfolgt über ein Protokoll oder entsprechende Gateways, die dieses Protokoll beherrschen.)
Gemäß der Erfindung erfolgt die Definition der Bedeutung eigentlicher CPL-Sprachelemente nicht mehr aufgrund verbaler Beschreibung; vielmehr wird die Erweiterbarkeit von XML zur Definition zusätzlicher eigener Elemente ausgenützt, die die Bedeutung der eigentlichen CPL-Sprachelemente beschreiben und dem CPL-Skript 5 hinzugefügt werden.
Ein Beispiel einer solchen Beschreibung ist in Fig. 5 zu sehen. Um bspw. die Aktion „adress-switch* zu definieren, werden nacheinander die Aktion, die graphische Erscheinung
(icon) , die Beschreibung (description) , die Parameter
(paramDef) und das Ergebnis festgelegt.
Diese sprachbeschreibenden Elemente bilden eine eigene Sprache, die ihrerseits wieder mittels eines XML-Schema beschrieben wird. In Fig. 6 ist die Vorschrift für die Definition eines sprachbeschreibenden Elementes des Typs „action* dargestellt. Es wird genau festgelegt, welche Elemente wie oft in der Definition erscheinen müssen.
Es liegt also eine CPL-Sprache 11 vor, die XML-basiert ist. In einer Datei 12 ist die semantische Definition der Sprachelemente der CPL-Sprache vorgegeben, die ebenfalls XML- basiert ist. Schließlich ist noch ein Schema 13 zum beschreiben der Sprache der sprachbeschreibenden Elemente definiert, welches auch XML-basiert ist.
Dies bedeutet, dass eine vollständige Sprachspezifikation, deren Dokumentation, Darstellung und Weiterverarbeitung auf XML-Basis erfolgt.
Die CPL-Beschreibungsdatei 11 wird nach dem Aufruf der graphischen Oberflächen 12 von dieser syntaktisch analysiert. Wie schon gesagt enthält sie alle Informationen bezüglich der Konfiguration der Programme. Die CPL-Beschreibungsdatei besteht aus zwei Teilen:
1. allgemeine Informationen 14 (zum Beispiel LDAP- Verbindungen) ,
2. eine Beschreibung aller möglichen Aktionen und ihrer Charakteristiken 15, sodass der CPL- Konverter sie eindeutig interpretiert.
Es wird somit eine automatische Erzeugung von Software ermöglicht, die die semantischen Aspekte der CPL-Sprache berücksichtigt .
Zusätzlich ist es möglich, in das oben genannte Dokument Informationen, die ausschließlich Hilfscharakter besitzen, in verschiedenen menschlichen Sprachen zu integrieren und ein Hilfssystem zu erstellen, das diese Informationen auswertet.
Dadurch, dass das Schema 13 zum Beschreiben der Sprache der sprachbeschreibenden Elemente auch XML-basiert ist, sind Erweiterungen der Sprache einfach umzusetzen. Diese Erweiterungen können einerseits durch Definitionen weiterer Sprachelemente erfolgen und andererseits durch Definition weiterer zur Sprachbeschreibung notwendiger Informationen.