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

Page of 79
C
HAPTER 
10:
 
S
AY 
I
S
MART 
P
LUGINS
 
 
C
ISCO 
CVP V
OICE
XML 3.1
 
 
  
Programmer 
Guide 
 
Chapter 10: 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 CVP VoiceXML Server and CVP 
VoiceXML Studio as easily as CVP VoiceXML 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 CVP VoiceXML 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 CVP VoiceXML Studio and 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 CVP VoiceXML Studio displays the 
plugin. A plugin that is to appear in 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 are 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 
 
 
Copyright 2001 - 2005 Audium Corporation.  All Rights Reserved. 10/05
 
65