Cisco Cisco Unified Customer Voice Portal 10.0(1) User Guide

Page of 138
C
HAPTER 
2:
 
U
NIVERSAL 
E
DITION 
C
OMPONENTS IN 
D
ETAIL
 
 
U
SER 
G
UIDE FOR 
C
ISCO 
U
NIFIED 
C
ALL 
S
ERVICES
,
 
U
NIVERSAL 
E
DITION 
 
 
 
AND 
U
NIFIED 
C
ALL 
S
TUDIO
 
 
56 
Root Document 
The subdialog context written by the developer must refer to a Universal Edition-generated root 
document. This is essential for proper integration of the VoiceXML insert element with Call 
Services. The root document call must look like: 
“/CallServices/Server?audium_vxml_root=true&calling_into=APP& 
namelist=element_log_value|RTRN1|RTRN2|…
” 
Where APP is the application name and RTRNX represent the names of all the element data, 
session data, and custom log entries (delimited by ‘|’ characters) the insert element returns, using 
the same naming convention described in the outputs section above. 
The purpose for this requirement is related to how events are handled within the root document. 
The Universal Edition-generated root document catches events such as the activation of a global 
hotlink or a hangup, which then requires the call flow to leave the insert element. The insert 
element, however, may have created element and session data or added custom content to the 
log. This information is stored in VoiceXML variables that would be deleted once the subdialog 
context is exited. So the root document needs to be told which VoiceXML variables to send 
along to Call Services when one of these events is triggered so that it can store them accordingly. 
In order to avoid problems that might occur if a global hotlink or hotevent was activated right 
after the insert element began the variables to be returned should be declared as near the start of 
the VoiceXML insert element as possible, even if they are not assigned initial values. 
Notes: 
•  The ability to use a standard ampersand in the root document URL instead of escaping it (as 
“&”) is voice browser dependent. Most browsers will accept the escaped version so try 
that first. 
•  If the insert element does not need to send back any data in the 
namelist
 parameter, only the 
element_log_value
 variable need be included (the parameter should look like this: 
“...
namelist=element_log_value
”). 
Example 
In the example below, a block is used to log the playing of the 
initial_prompt
 audio group. 
After this action, some inputs passed to it from Call Services are played. Once this is done, it 
creates two element variables named 
var1
 and 
var2
 and a session variable named 
sessvar
After this, it goes through a field that catches a number and when done saves the utterance to the 
activity log and returns the exit state less if the number is less than 5 and greater_equal 
otherwise. The 
<return>
 tag returns the exit state, log variable, the four variables from the root 
document (error, hotlink, hotevent, and action), the two element data variables, the session data 
variable and a custom log entry (the number captured). Also note that these last four variables 
are also passed to the root document call in the 
<vxml>
 tag so that events triggered within the 
insert element will correctly pass the data if it was captured by then. Note that the VoiceXML 
listed below may not function on all browsers without modification.