« Dynamic VoiceXML in entreprise - Maintenance messages | Main | Voxpilot announced positive results with VoiceXML 2.1 Implementation »

VoiceXML Tools : Introducing Public VoiceXML

There is certainly many interesting solutions to start an VoiceXML IVR solution with open source software, one of the most famous and successfully tested is Public VoiceXML Browser. That's why I wanted to introduce it here so we can discuss further usage of this excellent piece of software.

What is publicVoiceXML?

publicVoiceXML implements (most of) the functionality described in the Voice XML 2.0 W3C Candidate Recommendation and is a so called Voice XML 2.0 browser. publicVoiceXML bridges the gap between the Voice XML script and the telephone lines. Voice XML scripts only provide the processing logic description of an IVR (Interactive Voice Response) application, publicVoiceXML takes care that this meaningfull XML tags are combined to real functionality of the OS, e.g. to start writing to disc when a VoiceXML record-tag is specified. For interpreting and parsing the VoiceXML2.0 scripts OpenVXI  is used, an Open Source Voice XML interpreter made by Speechworks. To implement the telephone networking functionality publicVoiceXML uses CAPI2.0 on Linux and on Windows. publicVoiceXML also takes care that text - strings that should be spoken to the user are converted to speech using a third party TTS engine like IBM or Rhetorical.

What is OpenVXI?

Open VXI is a portable open source library that interprets the VoiceXML dialog markup language. It closely follows the VoiceXML 2.0 draft specification, avoiding proprietary extensions of any kind. OpenVXI is only one component of a complete VoiceXML platform. It includes only simulated speech recognition, prompt and text-to-speech (TTS) capabilities, and telephony functions, with users responsible for providing integration to actual components. Nonetheless, OpenVXI provides a strong base that is far preferable to starting from scratch. publicVoiceXML uses OpenVXI 2.0.1 at the moment.

Why do I choosed PublicVoiceXML?

I have certainly many reasons, the first one its very easy to install configure. You can easily setup your home VoiceXML IVR system with 100% open source software and start testing and developping great applications. PublicVoiceXML run both on linux and windows operating systems. There is some optional software that you will need like gcc 3.x ( not very optional, its needed for compiling on linux ), Text to Speech Engine, CAPI 2.0, LibWWW, Xerces, Spider Monkey ...

The hardware part you'll need an ISDN card with CAPI driver on Linux/Windows, any CAPI 2.0 compatible card will work fine with the current PublicVoiceXML version. Just notice that the line should be configured point to point and the ISDN card should be an active one, not passive.

Installing and Configuring PublicVoiceXML

To install Public VoiceXML you need to compile  sources from sourceforge.net, you can find the latest version 3.0 available for both windows and linux.There is many issues related to the install so I want talk about everything in details here, you can check the install instructions with sources or ask specific question if I can help with it, the short answer is ./configure, make all and make install that all linux users know.Otherwise you can just simply get the binary version for windows users.

Configuration should be then done on config/OSBclient.cfg There are several switches to specify the behaviour of publicVoiceXML, most of them you should keep untouched besides you are sure what you do. The naming convention is client.(Component).variable-name, where Component describes a functional module like logging (log), http-fetching(inet), Java Script Interpreter (jsi), Voice XML Interpreter (vxi) etc. Here is a list of the most important ones:

  • client.log.filename ... Path and name of the log file
  • client.inet.cacheDir ... directory where publicVoiceXML caches files
  • client.inet.userAgent ... name (User Agent) of publicVoiceXML when it connects to a webserver
  • client.vxi.beepURI ... Path and name of the file played for a beep="true" event indication
  • client.vxi.TTSEngineName ... Name of the TTS engine to use (IBMViaVoice or Festival)
  • client.vxi.DDILen ... number of digits to wait, see DDI feature
  • client.vxi.DtmfTimeOut ... describe!
  • client.vxi.DtmfInterDigitTimeOut ... describe!
  • client.vxi.DtmfTermChar ... describe!
  • client.vxi.DtmfTermTimeOut ... describe!
  • testClient.ISDNNumber ... telephone number of running system

There are also some parameters you could define at Startup of the application:

  • url (filename) ... vxml file to start when a call is placed
  • channels (1|2| .. | 30) ... number of ISDN channels to use
  • calls (-1|n) ... number of calls to take in a row, only for testing purposes, it should be -1
  • config (filename) ... path and name of config file

Recommanded configuration

A recommanded software and hardware configuration of Public VoiceXML is certainly a linux system with gcc 3.x. An ISDN card with CAPI 2.0 driver http://www.capi.org/pages/hardware.php And Festival TTS Engine.

Certainly Apache, MySQL and PHP will be always there to test our dynamic VoiceXML applications. Its recommanded even by the Public VoiceXML team.

More informations :

Public VoiceXML Browser website
Public VoiceXML Sourceforge.net project page

Bookmark this article at these sites
Post a comment





(Email will remain hidden)





Please enter the security code you see here




Related entries
Email to a friend
Email this article to:


Your email address:


Message (optional):