VoiceXML for web developers: Hello World
December 17th, 2009 by Adam KalseyThis post is part of a series exploring voice applications and VoiceXML through the eyes of a web developer. For the rest of the series, see the index.
If you missed it, in the first installment of this series I created an application on Evolution and assigned it some phone numbers. For the rest of the series, I’ll be using that application to test my VoiceXML apps. If you want to follow along, go create your own Evolution account.
I’m going to start simple with my first application – just answer and speak some text, then hang up. This way we can get a look at the syntax needed for VoiceXML. Throughout this series, I’ll be building an application for Strato Pizza, a fictional pizza chain. My application here is simply a greeting played when someone calls the chain’s phone number.
As the name implies, VoiceXML is written in XML. So I start with an XML declaration and tell the browser what character encoding to use, just like any other XML document. Then I create a <vxml> element that will hold the application.
<?xml version="1.0" encoding="UTF-8"?> <vxml version = "2.1" > </vxml>
Inside this element I need a couple of structural elements. <form> is a container that separates different areas of input and output, sort of like different HTML forms and pages. <block> is a container that allows you to conditionally execute code. Although I’m not creating separate inputs and outputs or trying to conditionally execute code, these elements are still needed, since the next elements I’m going to create are required to be inside a <block> and a block must be inside a <form>. Since I’m not using them for anything, I don’t have to worry about any attributes right now.
Now my VoiceXML document looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
<form>
<block>
</block>
</form>
</vxml>
Great, now the basic structure is in place and I can put in the meat of the application. All I want to do is say something and hang up, so my application is pretty simple. I can say something by using a <prompt> element and the VoiceXML browser will perform text to speech and say whatever I typed.
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" >
<form>
<block>
<prompt>
Thanks for calling Strato Pizza.
</prompt>
</block>
</form>
</vxml>
That’s it. The whole document. I upload the document to my web server at the URL that I configured my application with in Evolution. When I call this application using the Skype number supplied in Evolution, a text to speech (TTS) engine speaks my text.
Related posts:
- Processing Input (VoiceXML for Web Developers)
- VoiceXML for Web Developers: Collecting Input
- Collecting touch tone input (VoiceXML for Web Developers)
- VoiceXML for Web developers: Introduction
- VoiceXML Variable Scoping
Tags: Tutorials, VoiceXML, web
If you found this post interesting or helpful, please consider either subscribing via RSS, becoming a fan on Facebook, or following us on Twitter.
RSS Feed





December 17th, 2009 at 8:25 am
VoiceXML for web developers: Hello World – http://bit.ly/6cXsnY
This comment was originally posted on Twitter
December 17th, 2009 at 12:18 pm
New series on @voxeo blog: VoiceXML for web developers. First two posts: http://tr.im/HUby and http://tr.im/HUbx
This comment was originally posted on Twitter