original in en Luca Bariani
en to de Hermann J. Beckers
Ich wurde 1977 in Ferrara (Italien) geboren und graduierte 2002 in Ferrara mit einem Abschluss in Elektronik und Ingenieurwesen. Ich bin ein Mitglied der Ferrara Linux User Group und der GNU Bayonne-Gruppe. Ich entwickle IVR- und SMS-Dienste. Innerhalb des GNU Bayonne-Projektes erstelle ich einige Dokumentationen und Artikel, ich spreche �ber Bayonne bei einigen OpenSource-Treffen und verwalte die italienische Webseite bayonne.it.
Heutzutage hat fast jeder schon mindestens einmal eine Verbindung mit einem IVR-System gehabt (vielleicht ohne es zu merken). Tats�chlich werden sie von jeder Telefongesellschaft (mobil oder nicht) f�r ihre eigenen Call- oder Dienstzentren benutzt. Denken Sie nur daran, wie oft Sie von automatischen und aufgezeichneten Stimmen aufgefordert wurden, aus einem Menu einen Dienst zu w�hlen oder bevor Sie mit einem menschlichen Operator verbunden wurden. IVR-Server k�nnen auf verschiedenste Weise mit lokalen und entfernten Ressourcen agieren, und auch auf Dateisysteme, Datenbanken, Netzwerke usw. zugreifen ... daher k�nnen IVR-Systeme leicht in bestehende Systeme integriert oder Teil eines verteilten Systems werden.
Mit IVR-Systemen k�nnen eine Vielzahl von Telefondiensten erstellt und genutzt werden, einige Beispiele:
IVR-Systeme arbeiten auf Telefonleitungen mittels Audio f�r Eingaben vom und Ausgaben zum Anwender, was eine sehr einfache Integration mit Sprachsystemen wie TTS (Text To Speech, Text-zu-Sprache; Audiosynthesizer, der geschriebenen Text in Sprache wandelt) und ASR (Asynchronous Speech Recognition, asynchrone Spracherkennung: Stimmanalysator, der menschliche Sprache in geschriebenen Text wandelt). Die ersteren erm�glichen es IVR-Systemen, Sprachausgabe von geschriebenen Text zu verwenden und nicht nur von aufgezeichneten Stimmen, die letzteren erm�glichen IVR-Systemen die Erkennung sprachlicher Befehle der Eingabestimme.
Mit TTS- und ASR-Systemen k�nnen wir weitere IVR-Dienste anbieten:
Allgemein gesprochen, kann ein IVR-System in einem Telefonnetzwerk jeden Dienst und jedes St�ck Information anbieten, die von einem Webserver auf einer �blichen Webseite angeboten werden. Eine Menge an Diensten und M�glichkeiten kann daher �ber IVR-Systeme verf�gbar gemacht werden. Aber IVR-Systeme k�nnen mehr bieten: Telefonnetzwerke und Kan�le sind bidirektional, daher k�nnen IVR-Systeme Dienste anbieten, die Anwender direkt anrufen (Webdienste verf�gen nicht �ber diese F�higkeit).
F�r eine lange Zeit waren IVR-Systeme ein Monopol geschlossener, nicht freier Software-L�sungen von einigen IVR-Board-Herstellern. Jeder von ihnen entwickelte IVR-Server f�r die eigene Hardware; Bayonne ist die Antwort der OpenSource-Welt und des GNU-Projektes auf diese Situation.
Haupt- und offizielle Webseite von Bayonne ist www.gnu.org/software/bayonne, wo Sie die Quellen und Dokumentation (Installations- und Administrations-Handb�cher, eine Menge an Beispielen und einige HowTos) finden. Unter bayonne.sourceforge.org gibt es Referenzen zu externen Ressourcen und die aktuellste Entwickler-Version. F�r Bayonne gibt es einen �ffentlichen (nur-Lese-)CVS-Zugang zu den Quellen: auf savannah.org ist die Version 1.2 (die derzeit stabile Version f�r Produktions-Anwendungen) verf�gbar, w�hrend auf sourceforge.org die Version 1.3/2.0 (die Entwickler- und Experimental-Version) zu finden ist.
Hauptzweck und Charakteristika von Bayonne ist es, eine virtuelle IVR-Plattform zu bieten, die unabh�ngig ist von der benutzten Hardware. Tats�chlich kann Bayonne mit verschiedenen IVR-Board-Familien arbeiten (noch nicht mit allen), ohne irgendeine von ihnen zu ben�tigen. F�r jede IVR-Board-Familie und/oder -Hersteller enth�lt Bayonne einen modularen Treiber, der einen gemeinsamen Instruktionssatz bietet und eine virtuelle Umgebung f�r die allgemeine Benutzung und ohne jeden Hardware-Bezug. Innerhalb dieser virtuellen Umgebung k�nnen wir unsere IVR-Dienste entwickeln, ohne auf die verwendete Hardware zu achten; daher erfordert der Wechsel des IVR-Boards oder die Portierung eines IVR-Dienstes auf ein anderes System mit einem anderen Board keine �nderung im Dienst-Code.
Wie bereits angegeben, unterst�tzt Bayonne verschiedene Boards, auch sehr verschiedene, von 2 bis 120 Leitungen (analog oder digital). Weiterhin kann Bayonne mehrere Boards der gleichen Familie zur gleichen Zeit nutzen (in der neuen Bayonne-Version k�nnen wir sogar Boards verschiedener Familien zur gleichen Zeit nutzen), so dass Hunderte verschiedener Telefonleitungen gleichzeitig behandelt werden k�nnen. Leider unterst�tzt Bayonne keine seriellen/USB-Modems (analog, ISDN oder GSM).
Um Bayonne auszuprobieren oder allgemein f�r Tests ben�tigen wir kein teueres IVR-Board. Tats�chlich ben�tigen wir nur eine Soundkarte, da Bayonne einen Treiber bereitstellt, der ein IVR-Board emuliert und Ein-/Ausgabe �ber Tastatur, Mikrofon und Lautsprecher des PCs durchf�hrt: Bayonne kann auf Ihrem Arbeitsplatz-PC laufen.
Zum Erstellen von IVR-Diensten verf�gt Bayonne �ber eine eigene Skriptsprache namens CcScript (eine externe Komponente f�r Version 1.2, f�r die Entwicklungsversion 1.3/2.0 in das Hauptpaket integriert). Diese Sprache ist recht einfach, mit vollst�ndigen Berechnungsf�higkeiten und wesentlichen Programmstrukturen: bedingte Bl�cke, Schleifen, bedingte und unbedingte Spr�nge, Unterroutinen ... Eine Haupteigenschaft von CcScript sind "zeitbegrenzte" Instruktionen: bevor eine Anweisung ausgef�hrt wird, kennt die Sprache die maximale Ausf�hrungszeit. F�r Operationen, die externe Systeme wie Dateisysteme, Datenbanken und Netzwerkverbindungen ber�hren, gibt es einen Timeout-Parameter; wenn die Ausf�hrungszeit den Timeout �berschreitet, wird die Operation abgebrochen. Aus Serversicht ist diese F�higkeit sehr wichtig, da sie es Bayonne erm�glicht, deterministische und verl�ssliche Dienste anzubieten.
Bayonnes Berechnungsf�higkeiten sind absolut nicht auf die F�higkeiten von CcScript beschr�nkt. Tats�chlich kann Bayonne ohne Probleme mit Hochsprachen wie Perl und Python zusammenarbeiten. Aufgrund dieser direkten Integration erbt Bayonne alle Bibliotheken und Module, die f�r diese Sprachen verf�gbar sind: jede Berechnungsoperation, gew�hnliche und ungew�hnliche Algorithmen, Datenmanipulation, Verbindungen zu Datenbanken oder externen Server (Web, Email, LDAP, gemeinsame Dateibenutzung) ... Daher kann Bayonne alles berechnen, was erforderlich ist.
Selbst ohne Perl und Python kann Bayonne direkte Verbindungen mit MySql- und Postgres-Datenbanken erstellen und SQL-Abfragen selbst innerhalb von CcScript durchf�hren. Auf die gleiche Weise kann Bayonne auf Dateisysteme zugreifen und sich per Netzwerk mit entfernen Ressourcen verbinden. Weiterhin kann Bayonne direkt mit Stimm-Synthesizer-TTS-Systemen wie Flite, Theta (nur englische Stimmen verf�gbar) und Festival (mehrsprachig) zusammenarbeiten. Bayonne kann sich derzeit nicht direkt mit Spracherkennungssystemen verbinden, aber diese F�higkeit ist in Entwicklung.
F�r einen Gro�teil der IVR-Dienste ben�tigt Bayonne keine externen Text-zu-Sprache-Systeme, da es �ber eigene mehrsprachige Stimm-Module verf�gt (Englisch, Franz�sisch , Italienisch und Russisch), welche Zahlen (Ordinal- und Kardinalzahlen), Datums- und Zeitwerte aussprechen k�nnen (diese Module und die Audioausgabe sind vollst�ndig anpassbar). Diese Sprachmodule umfassen menschliche, voraufgezeichnete Stimmen und k�nnen benutzt werden, um die meisten IVR-Telefondienste direkt innerhalb des Bayonne-Rahmenwerks zu realisieren.
Bayonne kann Eingaben von Telefonverbindungen und Eingaben vom System auf verschiedene Arten verwalten: synchrone Verwaltung, wobei Bayonne auf eine bekannte Eingabe wartet (z. B. einen Tastendruck des Anwenders), und asynchrone Verwaltung, wobei Bayonne eine Benachrichtigung erh�lt, wenn ein definiertes Ereignis eintritt (z. B. ein Tastendruck oder ein Zeitablauf), ohne darauf ausdr�cklich zu warten. Diese beiden Eingabeverwaltungsmodi erm�glichen Bayonne eine schnelle Reaktion auf Anwender- und Systemereignisse ohne Zeit zu vergeuden.
Wie bereits erw�hnt, wurde Bayonne entwickelt, um eine gro�e Anzahl von Telefonleitungen gleichzeitg zu verwalten, daher verf�gt es �ber Befehle und Instruktionen f�r Multithread-Verwaltung. Jeder Thread kann mit anderen �ber Signale interagieren. Dies erm�glicht Thread-Synchronisation und Datenaustausch zwischen Threads und dar�berhinaus die Verbindung von zwei Threads, die verschiedene Telefonleitungen nutzen (z. B. k�nnen so zwei Anwender durch Bayonne miteinander sprechen).
Alle diese F�higkeiten machen Bayonne n�tzlich in einem weiten Bereich von Situationen. Es kann sowohl f�r kleine IVR-Telefondienste mit wenigen Telefonleitungen als auch f�r gro�e Service-Zentren benutzt werden, die hunderte von Leitungen verwalten. Mit Bayonne k�nnen wir "schnelle und einfache" Dienste oder komplexe Dienste, die auch externe Systeme involvieren, erstellen. Daher ist Bayonne der richtige IVR-Server f�r jede Art von IVR-Diensten.