From The Editor
by WDN Staff, August 25, 2000
Build Your Own Voice Portal With Tellme Studio!
View Discussions On This Article
Intrigued by the idea of voice access to back-end applications, my research into VoiceXML and related technologies led me across the path of
a very cool online tool that supports 100% online VoiceXML application development. The online development tool (and let me say that this may
be the first time I've ever referred to a Web site as a 'development tool'!) is Tellme Studio and it
is a living testament to the power of XML-based technologies. Once an account has been created at the Studio, developers can completely rely on the VoiceXML standard
to contruct live voice-based applications for wireless devices. Intrigued by the idea, I decided to revisit Tellme Studio and put it
through its paces to see if it delivers on the promise.
Some Background
If you're not familiar with the concept of voice portals or VoiceXML, let me refer you first to
our tutorial and the VoiceXML Forum
for more information. Basically, the driving concept is that not all consumers will want to access wireless content or applications through a pen-
or keyboard-based interface...never mind a 12-digit keypad. The logical next step is to make use of the traditional mode of communications that has
stood the test of time: the voice. A variety of voice "portals" have sprung up to service this audience including
Tellme, BeVocal, and Mobilee. Tellme
has created their Studio product for developers interested in hosting content on their service. A stated intention is to keep the
service free (or extremely low cost) for independent developers while charging larger accounts or businesses to host their applications. Before
continuing, if you haven't used Tellme at least once, give it a try by dialing 1-800-555-TELL. This will familiarize you with the information
in the rest of this article. A number of keywords can be used to access existing applications, including "Movies", "Airlines", and "Stock Quotes".
My First VXML App
After creating an account at the Tellme Studio, I was presented with a "My Studio" screen which contained a simple "Hello World!"
application already pre-constructed. Saving the application and registering it allows anyone to dial a 1-800
number and access the application! Also included within the studio is a complete VoiceXML tag reference as well as a handy library which
includes:
- Common VoiceXML "grammars" - built-in definitions that help the voice engine understand user commands
- Audio files - sounds to play for common commands such as help, goodbye, and stop
- Code modules - public VXML and JavaScript source code to handle common tasks
Like most self-respecting developers, I assumed that the "Hello World" app was far too simple for my vast talents so I deleted it...only
to kick myself a few minutes later as I struggled with some VoiceXML basics! Moving beyond that, I found that I gained a grudging respect
for the structure that XML forces upon the VXML developer - not unlike the rigid nature of WML. There is no fooling the XML parser
and voice interpreter and, unlike WML, you have the assurance that the end user will access the content correctly regardless of their device.
I decided to built a fairly straightforward application that will provide the user with voice content from three sources:
1. Text physically contained within the host VXML markup file
2. Text retrieved from a VXML file hosted at WirelessDevNet
3. Text generated dynamically from a database query at WirelessDevNet
To do this, I decided to present the user with a menu offering three types of information: the latest wireless industry news
from WirelessDevNet, the latest content added to WirelessDevNet, and a static amount of information on several leading companies
in the wireless industry. The VXML code used to implement this menu is shown below in Listing 1.
|
|
|
Listing 1 - The VXML Main Document
|
A few notes about the code above before we move on. The user is initally presented with a decision tree in the form of a
VXML . If the user chooses "Content", they will be taken to a text string within the file that
will be converted, on-the-fly, to speech by the Tellme voice processing engine. Saying "Company Info" (or "Company" or "Info")
will access a VXML source file stored at http://www.wirelessdevnet.com/channels/voice/company.vxml.
Of course, this content could be stored anywhere on the Web. Finally, saying "News" will cause a PHP script to be run on our server
that dynamically generates (formatted in VXML) the last 10 news headlines on WirelessDevNet. Listing 2 shows the PHP code used to produce
this (using the PostgreSQL database).
|
|
|
Listing 2 - The Dynamic PHP/VXML Script
|
Some Notes
Before testing your application, be sure to first use the Syntax Checker in order to validate your VXML. Once
you pass that test, dial into Tellme to test your application. Should your application fail, simply select the "View Log"
Button (under Debug Tool) to view a report of all the errors that were encountered. Like most debuggers, some
of the errors didn't nail down my problem (since I'm a newbie), but they did help me know where to look. For instance,
after some trial and error, I discovered that the items between the tags need to be lower-case - i.e.
news, content, etc., not News, Content, Etc.. When you're ready for the world to use your application,
select the Tellme Extensions link to move forward. There,
you'll need to tell the Studio where your root VXML file will be located and whether you'd like it published in the
Tellme Directory.
Accessing The Application
As I mentioned earlier, I registered the application for all the world to hear. To use this simple application, dial
1-800-555-TELL and say "Extensions" when prompted. The Application ID I was given is: 85367. To summarize, I found this mode
of application development to be incredibly powerful and rather easy to implement. The fact that VXML applications can be integrated
with traditional Web services and accessible via a public phone number in a matter of hours makes this technology a must-support
for enterprises and information providers looking to reach a large number of mobile users.
I'm curious to hear what you think the advantages and implications of this technology are so be sure to leave your comments with this article.
View Discussions On This Article