Part I: Developing Inbound Applications: Generate a VXML File | Gateway Tutorial

The timeofday application requires dynamically generate vxml file based on the time of the call. Voicent Gateway has incorporated Tomcat as its default web server. The application installed to the gateway is similar to any Tomcat web application, except the file format is VXML instead of HTML. If you are new to Java servlet and JSP technology, please take some time to get yourself familiar with these technologies.

It is not necessary to use the default web server. Actually you can use any web server of your choice. However, the discussion is beyond the scope of this tutorial.

1. Create Application JSP File

Rename timeofday.vxml to timeofday.jsp under <tddir>/webapps and type-in or copy-paste the following to the file:

<?xml version="1.0"?>
                    <vxml version="1.0">

                        <%@ page import="java.util.Date" %>
                        <%@ page import="java.text.SimpleDateFormat" %>
                        <&
                        response.setHeader("Cache-Control","no-cache");
                        Date d = new Date(System.currentTimeMillis());
                        SimpleDateFormat f = new SimpleDateFormat("hh:mm a");
                        %>

                        <form id="td">
                            <block>
                                <audio src="audio/welcome.wav"/>
                                <%= f.format(d) %>
                            </block>
                        </form>
                    </vxml>
2. Re-record The Audio Prompt

Re-record the audio message such that it ends with "... The current time is".

3. Create web.xml File

Under <tddir>/webapps, create a directory named WEB-INF. Under WEB-INF, create a file named web.xml with the following content.

<?xml version="1.0" encoding="ISO-8859-1"?>
                <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

                <web-app>
                        <servlet>
                            <servlet-name>timeofday</servlet-name>
                            <servlet-class>timeofday</servlet-class>
                        </servlet>
                        <servlet-mapping>
                            <servlet-name>timeofday</servlet-name>
                            <url-pattern>/timeofday.jsp</url-pattern>
                        </servlet-mapping>
                    </web-app>
4. Compile the VXML File

The jsp file you created in the previous step is the source code for time-of-day service. The Tomcat server incorporated in the gateway only takes compiled jsp files.

To compile the jsp file, you need the jspc compiler included in the Tomcat release. You also need Java SDK (J2SE) from Sun Microsystems. Please download and install these two programs before continue.

To compile, use

<Tomcat dir>/bin/jspc.bat timeofday.jsp

The jspc compiler should generate a file called timeofday.java. If the program complains about JASPER_HOME and JAVA_HOME, please set these environment variables to their corresponding values. For details, please refer to Tomcat document.

Create a directory named classes under <tddir>/webapps/WEB-INF.

Now compile it using the javac compiler.

<JDK dir>/bin/javac -classpath <Tomcat dir>/lib/jasper-runtime.jar;<Tomcat dir>/common/lib/servlet.jar -d ./WEB-INF/classes timeofday.java

Now you should have the compiled java class file called timeofday.class under WEB-INF/classes.

5. Changed the Configuration File and Re-install the Application

Change the following line in timeofday.conf

appurl = /td/timeofday.vxml

to

appurl = /td/timeofday.jsp

Invoke the application setup dialog from Voicent Gateway, remove the Time of Day application and install it again. The gateway should restart automatically.

6. Call in to hear the TimeOfDay Service

The basic timeofday service is complete. When you call in, you should hear the current time of the day.

The next section contains some information for you to test dynamically generated vxml files.

Download the sample code: timeofday_step3.zip.