Cisco Cisco Unified Customer Voice Portal 10.0(1) Guía Del Desarrollador
![Cisco](https://files.manualsbrain.com/attachments/7380d0050044647c30f5c24bbbf5d0c0b6d9bb84/common/fit/150/50/faa183d287233c52228cfea3dbc2a127fe780f60564fcb0955d9c3d1cd23/brand_logo.png)
C
HAPTER
9:
C
ONFIGURABLE
E
LEMENTS
V
OICE
XML
P
ROGRAMMING
G
UIDE
FOR
C
ISCO
U
NIFIED
C
USTOMER
V
OICE
P
ORTAL
R
ELEASE
4.0(1)
40
Chapter 9: Configurable Elements
The large array of Unified CVP Elements bundled with Cisco Unified CVP software encapsulate
a lot of functionality a typical voice application requires. There are, however, situations where
more customized, proprietary, or robust elements are desired. This is certainly the case with
action and decision elements, which tend to be highly specialized for interfacing with proprietary
backend systems or implementing custom business logic. To a lesser extent this applies for voice
elements as well. Cisco Unified CVP has tried to provide pre-built voice elements that cover
most of what a typical voice application requires. There is always the option of using VoiceXML
insert elements to handle a situation that there are no voice elements to manage. The
disadvantages of VoiceXML insert elements, however, are in their inconsistencies across various
voice browsers, the size they can be before management becomes burdensome, the difficulty of
interacting with backend systems, and their overall performance. Custom voice elements are the
best way to achieve these goals as they are fast, use the Unified CVP Voice Foundation Classes
(VFCs) that work consistently across multiple voice browsers, and are built with Java, so
complex calculations and integrations are simple.
a lot of functionality a typical voice application requires. There are, however, situations where
more customized, proprietary, or robust elements are desired. This is certainly the case with
action and decision elements, which tend to be highly specialized for interfacing with proprietary
backend systems or implementing custom business logic. To a lesser extent this applies for voice
elements as well. Cisco Unified CVP has tried to provide pre-built voice elements that cover
most of what a typical voice application requires. There is always the option of using VoiceXML
insert elements to handle a situation that there are no voice elements to manage. The
disadvantages of VoiceXML insert elements, however, are in their inconsistencies across various
voice browsers, the size they can be before management becomes burdensome, the difficulty of
interacting with backend systems, and their overall performance. Custom voice elements are the
best way to achieve these goals as they are fast, use the Unified CVP Voice Foundation Classes
(VFCs) that work consistently across multiple voice browsers, and are built with Java, so
complex calculations and integrations are simple.
Cisco Unified CVP software was designed to be modular without compromising integration.
Custom elements are integrated into both Unified CVP VoiceXML Server and Unified CVP
VoiceXML Studio as easily as Unified CVP Elements are. They can be deployed for a specific
application or shared across all applications and are configured in the VoiceXML Studio
alongside Unified CVP Elements, including supporting dynamic configurations. With such
seamless integration and effortless deployment, a developer can, over time, create entire libraries
of custom elements to use for their voice applications or potentially for resale.
Custom elements are integrated into both Unified CVP VoiceXML Server and Unified CVP
VoiceXML Studio as easily as Unified CVP Elements are. They can be deployed for a specific
application or shared across all applications and are configured in the VoiceXML Studio
alongside Unified CVP Elements, including supporting dynamic configurations. With such
seamless integration and effortless deployment, a developer can, over time, create entire libraries
of custom elements to use for their voice applications or potentially for resale.
Due to the requirements to integrate with both VoiceXML Studio and the VoiceXML Server,
configurable elements can only be constructed using the Java API. This is not to be confused
with standard action and decision elements, both of which can be constructed using both Java
and XML APIs. It is the configuration of a configurable element that places demands that can
only be met by the Java API. Building standard action and decision elements are fully explained
in Chapter 7: Standard Action Elements and Chapter 8: Standard Decision Elements.
configurable elements can only be constructed using the Java API. This is not to be confused
with standard action and decision elements, both of which can be constructed using both Java
and XML APIs. It is the configuration of a configurable element that places demands that can
only be met by the Java API. Building standard action and decision elements are fully explained
in Chapter 7: Standard Action Elements and Chapter 8: Standard Decision Elements.
This chapter describes in detail how to create custom voice, action, and decision elements and
integrate them into both VoiceXML Studio and the VoiceXML Server.
integrate them into both VoiceXML Studio and the VoiceXML Server.
Design
Configurable elements are built by extending an abstract Java class. This base class lays out the
methods used to identify the element’s configuration, how it is executed, and any utility methods
available to it. The developer simply implements the appropriate methods and uses the Java API
provided to build the element. Within the execution method, the developer is then free to use
Java in any way possible, such as creating a complex class hierarchy, accessing files or backend
systems, utilizing third party libraries, even communicating with external systems via HTTP or
RMI. Voice elements must extend
methods used to identify the element’s configuration, how it is executed, and any utility methods
available to it. The developer simply implements the appropriate methods and uses the Java API
provided to build the element. Within the execution method, the developer is then free to use
Java in any way possible, such as creating a complex class hierarchy, accessing files or backend
systems, utilizing third party libraries, even communicating with external systems via HTTP or
RMI. Voice elements must extend
VoiceElementBase
, action elements
ActionElementBase
,
and decision elements
DecisionElementBase
, all found in the