Cisco Cisco Unified Customer Voice Portal 11.0(1) Developer's Guide

Page of 103
C
HAPTER 
6:
 
D
YNAMIC 
E
LEMENT 
C
ONFIGURATIONS
 
 
P
ROGRAMMING 
G
UIDE FOR 
C
ISCO 
U
NIFIED 
CVP
 
VXML
 
S
ERVER 
 
 
 
AND 
C
ISCO 
U
NIFIED 
C
ALL 
S
TUDIO 
R
ELEASE 
4.1(1) 
 
 
 
 
35 
and free up the VXML Server port utilized by the call. The session is invalidated only after 
the execution method of the dynamic configuration is completed. This tag is rarely used and 
would be needed in a few circumstances where some external process takes the call away 
from VXML Server such as when using a CTI system to transfer the call to an agent. 
Substitution XML Format 
The DTD for element configuration XML documents contain a tag 
<substitute>
 that is used to 
define substitution. Substitution is the process of constructing a value from a combination of 
static and dynamic content. It is used as a way for a developer to use dynamic content in an 
element configuration without having to resort to a dynamic configuration. Substitution can be 
used throughout an element’s configuration such as settings, audio, VoiceXML properties, etc. 
See the User Guide for Cisco Unified CVP VXML Server and Cisco Unified Call Studio for more 
on substitution. 
Since the DTDs of the documents returned by the XML API are the same as those for static 
element configurations produced by Builder for Call Studio, dynamic configurations may also 
utilize substitution. Using substitution in dynamic configurations, however, makes little sense as 
the dynamic configuration is produced by programming code which could just as easily set the 
appropriate value rather explicitly rather than assemble it using substitution. To be 
comprehensive, this section briefly describes the contents of the 
<substitute>
 tag.  
A value for a setting, audio source, audio TTS or any other configuration option that supports 
substitution contains static content combined with integer values encapsulated by braces. When 
this format is detected, VXML Server knows to replace (substitute) the parts encapsulated in 
braces with the dynamic data. For example,  “
http://{0}/grammar/{1}
” as a value for a 
setting indicates to substitute some dynamic content for “{0}” and “{1}”, where the indices are 
used for uniqueness (the same index can be used multiple times in the same value or in separate 
values if applicable).  
This is where the 
<substitute>
 tag comes in. Each 
<substitute>
 tag specifies what dynamic 
data to substitute for a particular number surrounded by braces. The 
index
 attribute must be an 
integer that matches the number to substitute. A diagram of what it can contain is shown in 
Figure 6-3.