The ubiquitous "Hello, World" program ;-)
<vxml version = "2.1" >
<form>
<block>
<prompt>
Hello World. This is my first telephone application.
</prompt>
</block>
</form>
</vxml>
To deply this voice application, we need a voice platform. Voxeo provides a free service for developers to host their VoiceXML and maps it to a toll-free 800+PIN service, a direct-inward-dial (DID) number, a skype ID, as well as a SIP number. However, voxeo only supports static VXMLs for this free service. Using our own voice platform is a better idea. Or otherwise, you can go for Voxeo and others' paid services.
Next, filling up a field using speech recognition:
<vxml version="2.0">
<form>
<field name="BoyBand">
<prompt>Please enter the name of your favorite boy band</prompt>
<grammar type="text/gsl"> [ (en sink) hansen (sweet hearts) (kill me now)] </grammar>
</field>
</form>
</vxml>
Voicexml voice recognition is not dictation style at all, in that it uses a predefined set of grammars, which describe a list of things the person can say at a given point. This is called "Command-And-Control" style rather than the "Dictation" style. The above grammer is in Nuance GSL format rather than W3C SRGS format.
<noinput>
<prompt>I did not hear anything. Please try again.</prompt>
<reprompt/>
</noinput>
<nomatch>
<prompt>I did not recognize that character. Please try again.</prompt>
<reprompt/>
</nomatch>
How to take action depending on user's input?
<filled namelist="SouthParkCharacter">
<if cond="SouthParkCharacter == 'kenny'">
<prompt>Kenny has more lives than a cat.</prompt>
<elseif cond="SouthParkCharacter == 'cartman'"/>
<prompt>Cartman is not fat. He is big boned.</prompt>
</if>
</filled>
Other important points:
1. Good practice: Minimize TTS. Use audio prompts.
2. Support barge-in.
3. Avoid IVR style menus. Give the user a little freedom.
4. Dynamic application using PHP/JSP/ASP.
My work:
1. Using browser simulation to get the data from existing web applications and present it over the telephone.
2. Example: IIM results
3. No changes required in the existing application.