Review: Audium 3
In our product review section so far we have reviewed a number of different tools and technologies that are available for the development and testing of VoiceXML-based applications. One of the chief characteristics that we have seen with those tools is that their main focus is to enable editing, creating and testing VoiceXML applications. This review is different, as we're discussing a dynamic server-side framework which allows developers to create interactive and dynamic server-based applications.
It is quite possible that as developers, we can utilize server-side scripting technologies such as Java Server Pages (JSP), ASP.NET, Perl, PHP, Cold Fusion etc. to generate VoiceXML output. On the other hand, we could use a server-side framework which would allow us to dynamically build a VoiceXML application without even writing VoiceXML dialog logic by hand. The benefits of a server-side framework clearly include:
- Dynamic generation of VoiceXML
- Abstracts the complexity involved in creating production quality conversational applications--for instance automatic generation support for error handling, session management, etc.
- VoiceXML is an evolving standard. For instance, today 1.0--which is considered as a standard today--has a lot of portability issues (it doesn't specify a grammar format to be supported by VoiceXML implementations) where as 2.0 is still in draft stage with the W3C. Until the time a clear standard evolves (hopefully 2.0 will be available as an official recommendation soon), there exists incompatibility with different implementations of VoiceXML platforms. A server-side framework can maintain this compatibility by building this as part of the logic.
- Depending on the toolsets available with the server-side framework, business/application logic can be abstracted into modular components and be plugged appropriately.
- Possibly even generate applications for different user-interfaces: browsers, voice browsers, wireless devices etc.
One of the emerging server-side VoiceXML dynamic application platforms is Audium from Audium Corporation. The Audium platform (as illustrated by the picture below--click on the thumbnail to see a larger version of that image) includes the two key components:
- Audium Builder, which enables a developer to interact with and build/configure the VoiceXML application
- Audium Server, which includes the following components: Voice Application Manager, Call Service Logic, Audium Dialog Module Inventory, Data & Application Connectivity, Rules Engine and Audit & logging facilities. This is the runtime of the Audium platform and manages the overall dynamic generation of the application, application management, reusable modules and backend connectivity.
Audium currently supports the VoiceXML 1.0 specification and has embedded logic to support the following VoiceXML implementations:
A new version of the product (beta 1, release 3) was available in time for this review. This newer version builds on top of the existing version and the major difference is that the product now supports a Java Swing-based graphical user interface for designing the call flow and setting up the other properties of the application. If you are familiar with Audium, then this new interface replaces the web-based simplified checker board interface.
The current release version of Audium is Version 2. It is available for developers to download from Audium's website. Pricing is per port of the deployed VoiceXML platform.
As we have seen in the previous section there are two main components of the Audium product: server and builder. Accordingly, installation of the environment involves two main components:
- Audium Common Platform & Builder are installed on a file system, typically in a location like "C:\Program Files\Audium". This location is also the value of the AUDIUM_HOME environment variable.
- Audium Web Server Component is available as a WAR (J2EE Web Archive) and needs to be deployed on a J2EE Web Application Server. Currently, Audium only utilizes the Servlet aspect of the J2EE platform and hence can be deployed on a servlet engine. Currently supported application servers include, Apache Tomcat 4.0.1, BEA Weblogic 6.0/6.1 and JBoss. The application server environment used in my review was Apache Tomcat 4.0.1.
First looks - Audium Builder
Now that we have learned about the various components of the platform, let's start developing dynamic applications. We start with the most visible aspect of the Audium solution, the Audium Builder. Audium Builder (shown in figure below) is the graphical environment for configuring and building VoiceXML applications for the Audium platform. The figure shows a graphical representation of the simple "Hello World" application which includes three main steps: Call Start, and Audio module which utilizes Text-to-Speech to say "Hello World" and Call End.
As illustrated by the previous screenshot, an application in Audium is comprised of set of different components. Known as "Module Inventory," Audium includes a pre-built set of basic speech application modules which can be used as part of the call flow. As shown below, Audium includes modules for forms, menus, playing back audio prompts/text-to-speech, recognizing basic inputs (credit card, currency, date, digit etc.), VoiceXML features such as transfer/record etc. As a developer it is also possible to build you own set of modules as well.
We will look into the process of developing an application using the Audium platform in the section below, but before we go further let's see how our application executes. If you start your servlet engine (Apache Tomcat here) and then open the following URL in Internet Explorer,http://localhost:8080/Audium/Server?application=HelloWorld, you would get an output similar to this.
Instead of opening the application in Internet Explorer, if you connect this URL with your VoiceXML gateway (externally hosted by a Voice Service Provider or in your company) then you should be able to execute it.