[LinuxFocus-icon]
Castellano Chinese Deutsch English Français Nederlands

Dit document is beschikbaar in: ChineseGB  Deutsch  English  Francais  Italiano  Nederlands  

[Photo of the Author]
door Luca Bariani
<lucabariani /at/ ferrara.linux.it>

Over de auteur:

I ben geboren in Ferrare (Italië) in 1997, afgestudeerd in Ferrara in 2002 met een electronica en engineering graad. Ik ben lid van de Ferrara Linux User Groups en GNU Bayonne's groep. Ik ontwikkel IVR en SMS telefoon services. Binnen GNU's Bayonne project schrijf ik wat documentatie en artikelen, spreek over Bayonnen in opensource meetings en beheer de Italiaanse website, bayonne.it.



Vertaald naar het Nederlands door:
Guus Snijders <ghs /at/ linuxfocus.org>

Inhoud:

 

Banyonne: het opensource project voor telefoon en IVR services

[Illustratie]

Kort:

Bayonne is de IVR en telefony server van het GNU project en dus vrije, opensource software.

IVR staat voor Interactive Voice Response. Een IVR systeem verbindt de computer wereld met telefoonnetwerken (met de juiste hardware) en kan reageren om commando's die het via deze ontvangt (toon signalen door toetsen in te drukken of, soms, stem commando's). IVR systemen maken volledig automatische telefoon services zonder menselijke operators mogelijk.


_________________ _________________ _________________

 

IVR systemen en services

Tegenwoordig heeft iedereen wel eens een IVR systeem gebeld (mogelijk zonder het te weten). In feite worden ze door ieder telefoon bedrijf gebruikt voor hun eigen call centers of service centra. Bedenk alleen al eens hoe vaak je hebt geluisterd naar automatische en opgenomen stemmen om door een menu te worden geleid of doorgeschakeld te worden naar een menselijke operator. IVR servers kunnen op verschillende manieren communiceren met lokale en remote bronnen, bestandssystemen benaderen, databases, netwerken, enzovoorts... IVR systemen kunnen dus makkelijk worden opgenomen in bestaande systemen of onderdeel uitmaken van gedistribueerde systemen.

Met IVR systemen kunnen een hoop telefoon services worden gebouwd en gebruikt, voorbeelden hiervan zijn:

IVR systemen werken op telefoonlijnen met audio voor input en output naar de gebruiker, waardoor integratie met vocale systemen als TTS (Text To Speech: audio synthesizer die geschreven tekst in spraak omzet) en ASR (Asynchronous Speech Recognition: vocale analyser die menselijke spraak omzet in geschreven tekst) mogelijk is. De eerste stelt IVR systemen in staat om vocale uitvoer van geschreven tekst te gebruiken en niet alleen voor-opgenomen stemmen; de laatste stelt IVR systemen in staat om vocale commando's via spraakinvoer te herkennen.

Met TTS en ASR systemen kunnen we meer IVR services hebben:

Algemeen gesproken kan een IVR systeem iedere service en alle informatie via telefonie aanbieden die bijvoorbeeld door een webserver op een gebruikelijke website wordt aangeboden. Veel services en mogelijkheden kunnen daardoor beschikbaar worden gemaakt via IVR systemen. Maar IVR systemen kunnen meer: telefonie netwerken en kanalen zijn bi-directioneel, dus kunnen IVR systemen services hebben die gebruikers direct bellen (web services kennen deze feature niet).

 

Bayonne

IVR systemen zijn lange een monopolie van gesloten, onvrije software oplossingen van enkele IVR bord fabrikanten geweest. Ieder van hun ontwikkelde IVR servers voor hun eigen hardware; Bayonne is het antwoord van de OpenSource wereld en van het GNU project op deze situatie.

De officiële Bayonne website is www.gnu.org/software/bayonne, hier kun je bronnen en informatie (handleidingen voor installatie en beheer, vele voorbeelden en enkele HowTos) vinden. Op Op bayonne.sourceforge.org zijn referenties naar externe bronnen en de laatste ontwikkel-versies te vinden. Bayonne heeft publieke (alleen lezen) CVS toegang voor de broncode: op savannah.org is versie 1.2 (de huidige stabiele versie voor productie applicaties) beschikbaar, terwijl de 1.3/2.0 versies op sourceforge kunnen worden gevonden (dit zijn de ontwikkelaar- en experimentele versies).

Het belangrijkste doel en karakteristiek van Bayonne is om een virtueel IVR platform te bieden dat niet afhankelijk is van de gebruikte hardware. Bayonne functioneerd met verschillende IVR bord families (nog niet alle) zonder ze nodig te hebben. Voor iedere IVR bord familie en/of Bayonne features is er een modulaire driver met een algemen set instructies en een virtuele omgeving, voor algemeen gebruik en zonder hardware referenties. Binnen deze virtuele omgeving kunnen we onze eigen IVR services ontwikkelen zonder op de gebruikte hardware te letten; daardoor kunnen we het IVR bord vervangen of een IVR service over zetten naar een ander systeem met andere hardware, zonder de service code te veranderen.

Zoals reeds genoemd, ondersteund Bayonne verschillende boards, waaronder sterk verschillende, van 2 tot 120 telefoonlijnen (analoog of digitaal). Verder kan Bayonnen meerdere borden van dezelfde familie tegelijk gebruiken (in de nieuwe Bayonne versie kunnen we ook borden van verschillende families tegelijk gebruiken), zo kunnen honderden telefoonlijnen simultaan worden afgehandeld. Helaas ondersteund Bayonne geen gebruikelijke seriële/USB modems (analoog, ISDN of GSM).

Om Bayonne te proberen, of voor algemene tests, hebben we geen duur IVR bord nodig. In feite hebben we alleen een geluidskaart nodig, daar Bayonne een driver biedt die een IVR bord emuleert en de I/O met toetsenbord, microfoon en speakers afhandeld: Bayonne kun je op je eigen desktop PC gebruiken.

Bayonne heeft een eigen scripttaal voor het maken van IVR services, CcScript (voor versie 1.2 is dit een extern component, in de ontwikkel-versies is 1.3/2.0 is dit een vast onderdeel). Deze taal is erg simpel, met complete "computational" features en programmeer-structuren: conditionele blokken, lussen, conditionele of onconditionele sprongen, subroutines... Een belangrijke feature van Ccscript zijn "tijdsgebonden" instructies: voordat een instructie wordt uitgevoerd, weet de taal de maximale uitvoeringstijd. Voor operaties die externe systemen gebruiken zoals bestandssystemen, databases en netwerk verbindingen is er een timeout parameter, als deze tijd overschreden wordt, wordt de operatie afgebroken. Vanuit het oogpunt van de server is de feature erg belangrijk omdat het Bayonne toestaat vastgestelde en betrouwbare services te bieden.

Bayonne's mogelijkheden voor berekingen zijn niet gelimiteerd tot CcScript's mogelijkheden. Bayonne kan probleemloos gebruik maken van hogere talen als Perl en Python. Door deze directe integratie erft Bayonne alle libraries en modules van deze talen: iedere berekening, gebruikelijk en ongebruikelijk algorithme, data manipulatie, verbinding met database of externe server (web, email, LDAP, bestandsdeling)... Hierdoor kan Bayonne alles berekenen dat ooit nodig kan zijn.

Zelfs zonder Perl en Python kan Bayonne directe verbindingen met MySql en Postgres databases opzetten en SQL queries vanuit CcScript zelf uitvoeren. Op dezelfde manier kan Bayonne het bestandssysteem en externe bronnen op het netwerk gebruiken. Verder kan Bayonne direct communiceren met spraak synthesizers (TTS) als Flite, Thetra (alleen Engelse stemmen) en Festival (meertalig). Bayonne kan op dit moment niet communiceren met spraak-herkennings systemen, maar dit is in volle ontwikkeling.

Voor de meeste IVR services heeft Bayonne geen externe Text To Speech systemen nodig, daar het zijn eigen meer-talige vocale modules (Engels, Frans, Italiaans, Russisch) heeft die een nummers (telwoorden en aantallen), data en tijden (deze modules en audio zijn volledig aanpasbaar). Deze vocale modules bevatten voor-opgenomen, menselijke stemmen en kunnen voor de meeste IVR telefoon services direct in Bayonne's framework worden gebruikt.

Bayonne kan meervoudige invoer van telefoonverbindingen en invoer van het systeem zelf op meerdere manieren afhandelen: synchroon beheer, waarbij Bayonne wacht op voor-gedefinieerde invoer (wacht op toetsaanslagen door gebruikers), Bayonne krijgt dan een notificatie als er een dergelijke gebeurtenis optreedt (als er bijvoorbeeld een toets werd ingedrukt of er een timeout optrad) zonder er expliciet op te wachten. Deze twee invoer-beheer methodes staan Bayonne toe snel te reageren op gebruikers- en systeem-gebeurtenissen zonder tijd te verspillen.

Zoals reeds genoemd is Bayonne ontworpen om veel telefoonlijnen tegelijk te beheren, daarom beschikt het over commando's en instructies voor multithread-beheer. Iedere thread kan met andere communiceren met behulp van signalen. Dit staat thread-synchronisatie en data uitwisseling tussen threads toe en verder kunnen 2 threads verschillende telefoonlijnen met elkaar verbinden (zodat twee gebruikers met elkaar kunnen praten via Bayonne).

Met al deze features is Bayonne erg nuttig in een breed bereik van situaties. Het kan gebruikt worden voor kleine IVR telefoonservices met enkele telefoonlijnen en ook voor grote service centres met honderden lijnen. Met Bayonne kunnen we snel eenvoudige services opzetten of complexe services met externe systemen. Dit maakt Bayonne tot de juiste IVR server voor ieder soort IVR service.

 

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:




Site onderhouden door het LinuxFocus editors team
© Luca Bariani
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Vertaling info:
en --> -- : Luca Bariani <lucabariani /at/ ferrara.linux.it>
en --> nl: Guus Snijders <ghs /at/ linuxfocus.org>

2006-03-12, generated by lfparser version 2.54