Cisco Customer Voice Portal Developer – Java Developer v11 (CVPDJ )

This 5-day class is a hands-on programming course for those using the CVP Java API to extend the functionality of CVP Call Studio. Participants will learn to write, compile, deploy and maintain custom components for CVP Call Studio and VXML Server. It will be assumed that participants are familiar with CVP Studio and Java. This course strongly emphasizes hands-on application development of Java classes to extend Self-Service applications using the Cisco Java API.

Course Objectives

After completing this course the student should be able to:

  • Introduction to the Java API, its capabilities and limitations
  • The different ways to extend Studio functionality (see below)
  • Using VXML Server administrative scripts to maintain Java
  • Introduction to Voice Elements and Voice Foundation Classes (VFCs) and their complexity

HANDS-ON PROGRAMMING TOPICS: 

  • Standard Actions and Decision
  • Configurable Action and Decision elements that display as new elements in Studio. Learn to configure various types of settings such as repeatable settings, dependent settings, settings that display as an enumeration list, etc.
  • Say it Smart plugins – Say it Smarts convert data into a list of audio files and/or text for TTS playback. For example, create a plugin to spell data to the caller.
  • Start of Call classes – execute code at the start of visit to an application. This is used to create session variables based on ICM passed data, log on to a database, set a default language and audio path based, read configuration settings from a file or database into local variables.
  • End of Call classes – execute code at the end of visit to an application, regardless of how the visit ends (hangup, complete, error, application transfer, telephony transfer).
  • Start of Application classes – execute application specific code whenever VXML Server is started or the application is updated. This is often used to create customer detail records.
  • End of Application classes – execute application-specific code whenever VXML Server is shut down or the application is suspended.
  • Get and Set Global and Application Data – Global variables and Application variables remain in memory between phone calls but can only be accessed through Java code.
  • Dynamic Configurations – used to configure Settings and Audio for Studio elements at runtime using Java. This is especially useful for building Dynamic Menus with varying number of options and audio prompts.
  • Extend existing Studio elements and Say it Smart Plugins- add settings, catch Java exceptions, encapsulate multiple elements
  • Extend Say it Smart Plugins- add multiple language capabilities, make existing Say it Smarts more resilient to errors.

Target Audience

    • Individuals that use the CVP Java API to extend the functionality of CVP Call Studio. Participants will learn to write, compile, deploy and maintain custom components for CVP Call Studio and VXML Server. Complete real-life Java samples are used as the starting point to allow students to test and understand and to quickly develop their own components.

Suggested Pre-requisites

The knowledge and skills that a student must have before attending this course are as follows:

  • Working knowledge of CVP Studio application development and deployment
  • Basic to intermediate experience programming with Java

Course Duration

5 days

Chapter 1: INTRODUCTION TO THE CVP JAVA API

  • Introduction to the CVP Java API
  • Custom Components Overview

Chapter 2: CREATING A STAND ALONE JAVA PROJECT IN ECLIPSE

  • Creating a Java Project in Studio Eclipse
  • Creating an Executable Java Class with a Main Method
  • Using the Eclipse Java Editor
  • Running a StandAlone Java Class in Eclipse
  • Collecting Input from the Console Window
  • Creating a Do While Loop in the Java code
  • Creating an If Else Statement
  • Using SimpleDateFormat to Format or Validate a Date

Chapter3: CREATING CVP JAVA PROJECT AND A STANDARD ACTION COMPONENT 

  • Creating a CVP Java Project Overview
  • Overview of CVP Classes and Interfaces
  • Creating a CVP Java Project in Studio Eclipse
  • Standard Actions
  • Creating a Standard Action Component
  • The Execution Method
  • The Session API
  • The SessionAPI for Action Elements: ActionElementData
  • The CVP Javadocs
  • Session API Method Summary
  • Working with Some of the ActionElementData API Methods
  • Testing the Java Component
  • Deploying the Studio Application (‘Compiling’ to create
  • runtime code)
  • JConsole to Run VXML Server Admin Scripts Remotely
  • The getANI() and getDNIS() Methods
  • Retrieving Session Data: getSessionData()
  • Retrieving Element Data: getElementData()
  • Testing the Java Component
  • Deploying the Studio Application (‘Compiling’ to create
  • runtime code)
  • Using the OAMP (Operations Console) to Transfer a Studio App
  • Debugging Your Application Using Log Files
  • Call Studio Debugger
  • Setting Element Data (2 parameters)
  • Setting Element Data (Four Parameters):
  • Setting Session Data

Chapter 4: STANDARD DECISIONS 

  • Standard Decisions
  • Creating a Standard Decision Element with the Eclipse Wizard
  • Standard Decision Java Code
  • Standard Decision Example: Check a Date is Valid
  • Classroom Example – Java Code

Chapter 5: CALL START COMPONENTS

  • Call Start Component
  • Reference: VoiceXML Properties
  • Creating a Call Start Component
  • Call Start API (From the Javadocs)
  • On Call Start Component Example
  • Configuring Studio to Invoke the Call Start Class

Chapter 6: CALL END COMPONENTS

  • Call End Component
  • Creating a Call End Component: Implement EndCallInterface
  • CallEndAPI Methods
  • LastException Session Variable
  • Summary of Methods for the CallEndAPI
  • Classroom Example: WriteFileEndCall
  • ElementHistory and ExitStateHistory – ReadOnlyList
  • GetAllElementData

Chapter 7: CONFIGURABLE ACTION ELEMENTS 

  • Configurable Action and Decision Elements
  • Creating a Configurable Action Element in Eclipse
  • Adding the Methods for Studio to Display the Element
  • Displaying the New Configurable Element in Studio
  • Defining Settings and ElementData
  • Defining the Settings – Settings Constructors
  • DateTimeActionElement
  • Displaying the New Configurable Element in Studio
  • Retrieving the Settings in the doAction Method
  • More getSettingValue Methods Used in the doAction
  • Working with Repeatable Settings
  • Configuring a Setting’s Dependencies
  • Extending an Existing Studio Action Element
  • Example 1 – Extending the Database Element
  • Example 2 – Extending the Database Element by Adding Settings

Chapter 8: CONFIGURABLE DECISION ELEMENTS

  • Configurable Decision Elements
  • Create a Configurable Decision Element with Eclipse Wizard
  • Methods for Studio to Render the Configurable Element
  • The getExitStates Method
  • Sample of a Configurable Decision Element
  • The doDecision() Method Used by VXMLServer at Runtime
  • Overview of Methods for the Configurable Decision Element

Chapter 9: SAY IT SMART PLUGINS

  • Create a Say it Smart Plugin Using the Eclipse Wizard
  • Methods for Studio to Display the Say it Smart Plugin
  • Implementing the SayItSmart plugin in Studio
  • Spelling nonAlphaNumerics

Chapter 10: APPLICATION START, APPLICATION END AND GLOBAL DATA

  • Global and Application Data, Start and End Application Classes
  • JConsole to Create or View Global and Application Data
  • The Global API
  • Application Start Classes
  • Application End Classes
  • Writing the Application Start Class
  • public class ApplicationStartAPI
  • Sample Application Start Class
  • Sample Application Start Class: Reading an XML File with XPath
  • Application End Classes
  • Writing the Application End Class
  • Public class ApplicationEndAPI
  • Accessing Global and Application Data in Studio
  • Example – Accessing Global and Application Data in Studio

Chapter 11: DYNAMIC CONFIGURATIONS

  • Dynamic Configuration
  • Invoking a Dynamic Configuration in Studio
  • Dynamic Configuration for a Form Element
  • Configuring Audio For Dynamic Voice Element Configurations
  • Creating Audio Groups and Audio Items Using Java
  • Example – Dynamic Configuration for a Form Element

Chapter 12: MISCELLANEOUS CLASSES 

  • The Database Element and ResultSetList
  • Example – Retrieving the size of a ResultSetList
  • Retrieving the Data from a ResultSetList
  • On Error Notification
  • GetAllElementData and GetAllSessionData Methods

Chapter 13: JAVA GLOBAL DEPLOYMENT AND CREATING JAR FILES

  • Common (Global) Deployment Overview
  • Common (Global) Deployment of Custom Java Components
  • Non-CVP Java Libraries
  • Java JDK Versions
  • Creating a Java Jar File in Studio Eclipse
  • Deploying the Custom Jar File
  • Say it Smart Plugins to Speak Formatted Data
  • Creating the Say it Smart Class