Introduction
voxBuilder ODE (Online Development Environment), as the name suggests, is a hosted VoiceXML Platform which allows developers to host/test VoiceXML-based Applications on a remote VoiceXML gateway. Similar to other web-based VoiceXML development platforms (such as Tellme Studio, BeVocal etc.), voxBuilder provides an external VoiceXML gateway and a configuration application to connect live telephony numbers/extensions with the VoiceXML-based telephony applications. voxPilot provides the environment free for the initial design and development. The application can then be deployed within Europe for a fee.
Local Calling Numbers for European Countries
voxBuilder supports testing of VoiceXML applications from multiple countries by providing local numbers. Currently voxBuilder provides local numbers for the following countries: Austria, Belgium, Denmark (through UK), France, Germany, Ireland, Italy, Netherlands, Norway, Portugal (through UK), Spain, Sweden, Switzerland, United Kingdom and the USA. Calling a US-based VoiceXML gateway can sometimes prove very expensive for international developers. Some hosting providers are starting to look at options such as Voice over IP support so that the internet can be used, but it is still progressive on VIP and frankly, nothing beats the experience of having the ability to showcase an interactive VoiceXML application over a phone.
Multiple language Support
Another key highlight of voxBuilder is that the development environment supports both Text-to-Speech and Speech Recognition in multiple languages. Currently supported languages include Danish, English, French, German, Hebrew, Italian, Spanish, Swedish and Turkish. This is a feature which would be very significant especially to European developers and other developers who would like to build their VoiceXML applications for multiple languages. voxBuilder’s support for multiple languages is based on an extension attribute "xml:lang" (similar to VoiceXML 2.0) which is applied to the following VoiceXML 1.0 tags – <grammar>, <prompt> and <vxml>.
Installation
As we have discussed voxBuilder is a remotely hosted development environment, so we don’t really have any installation. What we do need is a PC with a browser connected to the Internet to manage the different VoiceXML projects. voxBuilder allows VoiceXML project files to be hosted within its own environment or a remote project can be associated to a VoiceXML URL. If you use voxBuilder to remotely access your VoiceXML projects, you will need access to a web server that has its HTTP port (typically 80) outside the firewall. This will allow you to modify your static/dynamic VoiceXML application without constantly updating the project files in the voxBuilder.
First Looks – File Manager
(Click on the picture to enlarge)
The File Manager (shown above) is the key user interface to the voxBuilder. Its user interface, even though it is web-based, resembles the traditional desktop user interface (with menu drop downs and dialog boxes etc). As indicated earlier, voxBuilder allows a developer to separate different development activities into projects. The project can be hosted by voxBuilder itself. For a local project, voxBuilder requires the developer to upload all components of the VoiceXML application, including VoiceXML documents, grammar files, script files and audio files, to its remote server. A nice feature of the voxBuilder is that after a file has been uploaded, it can be remotely edited and validated through the web-based editor (shown below).
There is the restriction, however, of about 2MB storage space imposed by the voxBuilder. The local storage capability of voxBuilder could be useful for static projects, particularly proof-of-concept oriented prototype applications. A good practice that is enforced by voxBuilder is that every project should have an index.vxml which is treated as a starting point. If you would like to use a server-side scripting language such as Active Server Pages (ASP), Java Server Pages (JSP), Perl etc. you would select the project as a remote project, in which case you just need to provide a link to the index.vxml (or index.jsp etc.) page on your web server (e.g. http://myserver/myVoiceXMLProject/index.jsp).
For Java developers, voxPilot has recently partnered with a company called "Voice Components." VoiceComponents has built a set of 18 Java Beans which can be used as Servlets and JSP templates for the rapid generation of voxPilot compatible VoiceXML 1.0 presentation logic. For testing the VoiceXML application, one of the projects is required to be set as an active project.
VoiceXML 1.0 validation is provided by voxBuilder through the Validate tool (shown below).
VoiceXML Extensions
voxBuilder supports VoiceXML 1.0 based applications with a list of extensions. A complete tag summary and a report on voxBuilder’s compliance with the VoiceXML 1.0 specification is available at http://www.voxpilot.com/help/helpTagref.html. voxPilot’s modified VoiceXML DTD http://dtd.voxpilot.com/voice/1.0/voxpilot_voicexml-1.0.dtd includes a few extensions, including <debug>, <log>, <train> and <verify>.
Reusable Components
The benefit of reusable components for VoiceXML application development is clear. Recognizing that, voxBuilder ODE has initiated the development of reusable components as subdialogs. As detailed in theComponent Reference, currently subdialogs are available for a confirmation subdialog and recognition of various forms of date (e.g. a week from Sunday, Friday April 19th, etc.) and time input (noon, midnight etc).
"Calling your application" – Using your phone to test your application
Similar to any other hosted VoiceXML platform, voxBuilder allows developers to call and test their applications from a regular touch-tone phone. Depending on your country, you would pick theaccess number, and then call the voxBuilder application and test your application. The user will be asked to enter an eight digit id (typically the last 8 digits of your caller id) and a PIN. One suggestion here would be for voxBuilder to provide a seven digit user id instead of 8 digits for US based developers. voxBuilder dynamically creates an execution log of the application executed, which is then available through the "Log Viewer" tool (shown below).
Logs for the calls made can be either accessed in real-time through the user interface (shown below) or can be downloaded to a local computer for further analysis.
Conclusion
In nutshell, what voxBuilder brings to the table today is its support for multiple languages, local access numbers and support for multiple European countries. From a features perspective, I like the project based organization structure that voxBuilder imposes on the developers and the remote web-based editor and validation tool. My take on what should be added into the voxBuilder environment from a development tool perspective would be quick-start wizards for rapid dialogs and grammars generation, and a web-based simulation testing capability.
Resources
- Voxpilot Ltd.
- voxBuilder ODE
- voxBuilder Languages Supported
- voxBuilder Access Numbers
- voxBuilder FAQ
- VoxPilot’s VoiceXML DTD
- VoxPilot VoiceXML Tag Summary
- voice essential 1, voxPilot Edition
About Hitesh Seth
Hitesh Seth is Chief Technology Evangelist for Silverline Technologies, a global eBusiness and mobile solutions consulting and integration services firm. He is a columnist on VoiceXML technology in XML Journal and regularly writes for other technology publications including Java Developers Journal and Web Services Journal on technology topics such as J2EE, Microsoft .NET, XML, Wireless Computing, Speech Applications, Web Services & Integration. Hitesh received his Bachelors Degree from the Indian Institute of Technology Kanpur (IITK), India. Feel free to email any comments or suggestions about the articles featured in this column at hks@hiteshseth.com.