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

Page of 103
C
HAPTER 
12:
 
S
AY 
I
S
MART 
P
LUGINS
 
 
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) 
 
 
 
 
64 
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 VXML Server and Call 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 Call Studio and VXML 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 Builder for Call Studio displays the 
plugin. A plugin that is to appear in the Builder 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 are used to render the same data (such as one that