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

Page of 98
C
HAPTER 
12:
 
S
AY 
I
S
MART 
P
LUGINS
 
 
V
OICE
XML
 
P
ROGRAMMING 
G
UIDE 
 
 
 
FOR 
C
ISCO 
U
NIFIED 
C
USTOMER 
V
OICE 
P
ORTAL 
R
ELEASE 
4.0(1) 
 
 
 
 
61
 
Chapter 12:
 Say It Smart Plugins 
Similar to the ability for a developer to create custom elements, a developer can create their own 
Say It Smart plugins. A developer can produce plugins that handle brand new Say It Smart types 
as well as plugins that extend the functionality of existing Say it Smart plugins. Due to the 
integration requirements for Say It Smart plugins, they can be built only by using the Java API. 
Custom Say It Smart plugins are integrated into both Unified CVP VoiceXML Server and 
Unified CVP VoiceXML Studio as easily as Unified CVP Say It Smart plugins are. They can be 
deployed for a specific application or shared across all applications and are configured in the 
Studio in the same manner Unified CVP Say It Smart plugins are. With such seamless 
integration and effortless deployment, a developer can, over time, create entire libraries of 
custom Say It Smart plugins to use for their voice applications or potentially for resale.  
This chapter describes in detail how to create custom Say It Smart plugins and integrate them 
into both Unified CVP VoiceXML Studio and Unified CVP VoiceXML Server.  
Design 
Say It Smart plugins were designed to be very simple to build, extend, and deploy. Much of the 
design mirrors that of custom configurable elements, though Say It Smart plugins are simpler 
and set far fewer restrictions. Their sole purpose is to take input representing formatted data and 
convert it into a list of pre-recorded audio files with TTS backups and pauses if desired. 
Similar to configurable elements, a Say It Smart plugin is constructed by creating a Java class 
that extends an abstract base class, 
SayItSmartBase
. The base class defines abstract methods 
that must be implemented by the plugin to describe how Unified CVP VoiceXML Studio 
displays the plugin. A plugin that is to appear in VoiceXML Studio must implement a Java 
marker interface named 
SayItSmartPlugin
. Unlike elements, though, Say It Smart plugins have 
two execution methods, one for converting data to a set of audio files with TTS backups, and the 
other for converting the data using TTS only. These execution methods may throw a 
SayItSmartException
 that is used to indicate the inability of the plugin to convert the data 
passed to it. 
The configuration of a Say It Smart plugin involves four options. The first is the Say It Smart 
type (such as phone number or date). Each type must be defined in a separate plugin class. The 
second option is the chosen input format. Input formats list how to expect the input data to arrive 
(such as a date with just the month and year or a date with the month, day and year). A plugin 
defines all the input formats it supports. The next option is the chosen output format. Output 
formats list how to render the converted data (such as reading back a time where 12:00AM is 
read back as “noon” as opposed to “12 A M”). Output formats are dependent on input formats, 
so when the input format changes, the list of output formats available changes accordingly. The 
plugin defines these dependencies using a configuration method. The final option is the fileset. 
Filesets determine what group of audio files is used to render the same data (such as one that 
reads back a better-sounding number by requiring more audio files). Filesets are dependent on