Lesson 11 -- Summary

In this tutorial, we created a travel application. Now that you know VoiceXML, you can adapt your knowledge to any number of industries, including airlines, financial services, health plans, retail, customer service, transportation and logistics, and many others.

The sample application in this tutorial is not trivial. It is a working VoiceXML application with 350 lines of code.

The tutorial has covered:

  • All but a few of the main VoiceXML elements.

  • A large number of attributes and properties.

  • Structural matters such as scope, root documents, event handling, and the form interpretation algorithm (FIA).

  • Creating and using SRGS grammars.

The VoiceXML elements we have covered

There are 56 VoiceXML elements. We have used or have discussed 43 of these elements in this tutorial. They are:

VoiceXML Element

See, for example:

VoiceXML Element

See, for example:

<assign>

Lesson 1

<link>

Lesson 8

<audio>

Lesson 9

<log>

Appendix A

<block>

Lessons 1, 6, 7

<menu>

Lesson 3

<break>

Lessons 4, 9

<noinput>

Lesson 8

<catch>

Lesson 8

<nomatch>

Lesson 8

<choice>

Lesson 3

<option>

Lesson 5

<clear>

Lesson 6

<param>

Lesson 7

<else>

Lesson 7

<phoneme>

Lesson 9

<elseif>

Lesson 7

<prompt>

Introduction,

Lessons 1, 4, 9

<emphasis>

Lesson 9

<property>

Lesson 6

<enumerate>

Lesson 3

<prosody>

Lesson 9

<error>

Lesson 8

<reprompt>

Lesson 8

<exit>

Lesson 8

<return>

Lesson 7

<field>

Introduction,

Lessons 1, 6

<say-as>

Lesson 9

<filled>

Introduction,

Lesson 1

<script>

Lesson 1

<foreach>

Lesson 7

<subdialog>

Lesson 7

<form>

Lesson 1

<throw>

Lesson 8

<goto>

Lesson 1

<value>

Lesson 1

<grammar>

Introduction,

Lesson 1

<var>

Lesson 1

<help>

Lesson 8

<voice>

Lesson 9

<if>

Lesson 7

<vxml>

Lesson 1

<initial>

Lesson 10

Supplementary VoiceXML topics

There are four other important VoiceXML elements that we have not used or discussed in this tutorial, but which are covered in the VoiceXML Tutorial Supplement, placed in this same location on MSDN.

They are:

  • Using the <data> element

  • Using the <object> element

  • Using the <submit> element

  • Using the <transfer> element

Other VoiceXML elements

Here are the final nine elements that are not covered either in this tutorial or in the tutorial supplement. These were not covered because we did not need them in the tutorial code and also because their usage is so straightforward that you will be able to use them without difficulty.

Element

Description

Example

<disconnect>

Causes the Platform to hang up on the user and throw a connection.disconnect.hangup event. Catch the event to perform post-hang-up processing.

<!-- silently disconnect on the third noinput -->

<catch event="noinput" count="3">

<disconnect/>

</catch>

<mark>

Sets a bookmark that allows you to determine when the user barged in on a prompt.

<prompt>

Fourth ranked Oklahoma

defeated Kansas 64 to 55.

<mark name="mark1"/>

Duke demolished North Carolina

State 91 to 61.

<mark name="mark2"/>

</prompt>

<meta>

Specifies general information about the VoiceXML document.

<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml">

<meta name="author"

content="John Smith" />

<meta name="version"

content="2.5.1" />

<p>

Identifies the enclosed text as a complete paragraph.

<prompt>

<p>This is paragraph one.</p>

<p>This is paragraph two.</p>

</prompt>

<paragraph>

Equivalent to <p>.

<record>

Records caller input.

<record name="personal_greeting" maxtime="60s" dtmfterm="true" beep="true">

<prompt>

At the tone, please record your personal greeting. When you're done, press pound.

</prompt>

</record>

<s>

Identifies the enclosed text as a complete sentence. Currently the <s> element has no effect on TTS output in the Tellme platform.

<prompt>

<s>This is sentence one.</s>

<s>This is sentence two.</s>

</prompt>

<sentence>

Equivalent to <s>.

<sub>

Specifies a string to be used for pronunciation in place of the enclosed string.

<prompt>

<sub alias="World Wide Web">

WWW

</sub>

</prompt>

<!-- TTS emits :World Wide Web" -->

Where to go for more information

There are other valuable sources of VoiceXML information on MSDN.

The VoiceXML Tutorial Supplement

As already noted, four important elements that were not discussed in this tutorial are covered by articles in the VoiceXML Tutorial Supplement. The supplement also includes a number of other articles relevant to VoiceXML development. These articles discuss various aspects and techniques of VoiceXML that are specific to the Tellme platform. They are valuable resources for any VoiceXML developer, however, since the Tellme platform conforms to the same VoiceXML specifications as do other platforms.

The VoiceXML 2.x Element Reference

A complete reference to all of the VoiceXML elements can be found at https://msdn.microsoft.com/en-us/library/ff934626.aspx. This catalog describes each element, lists its attributes (with defaults), and lists the element's allowed parents and children. As a VoiceXML developer, you will refer to it frequently.

Important

The VoiceXML 2.x Element Reference includes information that is specific to the Tellme platform. For example, it includes references to Version 2 and Version 3 (older versions of the Tellme platform) and to special Tellme element attributes ("Tellme extensions") and properties (tellme.xxxx). In addition, the defaults listed for attributes and properties are for the Tellme platform--these are often, but not always, the same as the defaults for other platforms.None-the-less, the element reference is a valuable resource for developing code for any platform, and it should be easy for you to filter out the information that is Tellme specific.