Cisco Cisco Customer Voice Portal 8.0(1) Developer's Guide

Page of 122
for each call, and the scratch space is stored in the session, Foo can access the Session
API to get the scratch space. Foo’s scratch space indicates that A is complete. It makes a
decision C based on the arguments passed to it and chooses option 3, therefore requiring
page D to be produced. Foo also notes that after producing this page, it is done.
7. Foo returns the VFC objects containing page D and returns with the exit state “Exit3”.
8. VXML Server produces the VoiceXML page and sends it to the voice browser.
9. The voice browser parsed the VoiceXML page and asks for the next one.
10. Finally, VXML Server notes that Foo returned an exit state of Exit3 so refers to the
application call flow to discover where to go once Foo returns an exit state of Exit3. It
determines that the next voice element to access is Bar. The call continues in this manner
until it ends.
Restrictions and Recommendations
Unified CVP tries to make as few restrictions on building custom elements as possible. However,
in order to ensure proper integration of custom voice elements with the rest of the system, some
restrictions must be set. Additionally, there are guidelines that do not necessarily need to be
followed, though they are recommended for design and tighter integration considerations.
Restrictions Include:
The voice element must produce VoiceXML using the Unified CVP Voice Foundation Classes
(VFCs). The VFCs are the mechanism through which the voice element produces the
VoiceXML to send to the voice browser and VXML Server is tightly integrated with them.
See 
 for a full description of the VFCs.
The voice element cannot define its own root document. The root document is automatically
generated by VXML Server and is vital for many features to function such as the ability to
activate hotlinks, perform logging, and activate the end of call action.
The voice element cannot use a 
<submit>
 or a 
<goto>
 to link to a VoiceXML page external
to VXML Server. When it is time to return to the voice element in a VoiceXML page, a URL
pointing back to VXML Server must be used. This is required by the design using VXML
Server as the abstraction layer between the voice browser and the voice element. The only
exception to this rule allows for the call to continue from a Unified CVP application to an
external application but only if steps are taken to properly end the VXML Server session
first.
The VoiceXML 
<form>
 the developer wishes the browser to visit first must be named start.
The voice element must obtain the 
VPreference
 object to use in all VFC constructors by
calling the 
getPreference()
 method in 
VoiceElementData
. This 
VPreference
 object
contains, among other things, the voice browser choice made by the application designer in
Builder for Call Studio (or dynamically in a start of call action). 
VPreference
 is a VFC
VoiceElementData
is described in more detail in the following sections.
Programming Guide for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 8.0(1)
62
Chapter 9: Configurable Elements
Voice Elements