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

Page of 122
Unlike element settings, which are defined in a simple one-dimensional array, audio groups
are combined into sets. This is done to facilitate organization and ease of use when configuring
the voice element in the Builder. When right-clicking on the Audio Groups folder in the
Element Configuration Pane, the dropdown menu lists all the audio group sets. The designer
can then choose an audio group within a set by selecting the appropriate name from the
submenu. This method is used to return the audio groups for the element and the sets they
belong to.
A single audio group is contained within a single 
AudioGroup
 instance (
AudioGroup
 is
found in the 
com.audium.server.voiceElement
 package). The object encapsulates the
audio group’s real name, display name, and description. The display name is shown within
the dropdown menu in the Builder, the real name is used for all other situations. The audio
group description is displayed as a tool tip when the cursor points to the audio group in the
Element Configuration Pane.
The 
AudioGroup
 class also defines setting dependencies. As with element settings, the
appearance of audio groups can also depend on the values of certain settings. Again, this
exists to simplify configuring a complex voice element in the Builder. For example, an audio
group that introduces a confirmation menu would not be necessary if a setting determining
if a confirmation should exist is turned off. See the previous section describing the
getSettings()
 method for a full description of how dependencies work. Configuring audio
groups to depend on settings works the same way as configuring settings to depend on other
settings.
The audio groups are arranged in sets by storing them in a 
HashMap
 Java collection. The
keys of the 
HashMap
 are the names of the audio group sets and the values of the 
HashMap
are arrays of 
AudioGroup
 instances that belong to their set. The array represents the audio
groups to display within that set. The order specified in the array is the order they appear in
the Builder.
String[] getAudioGroupDisplayOrder()
This method is provided for the developer to determine the order in which the sets of audio
groups appear in the Builder. The 
String
 array is a list of set names in the order in which
they should appear in the dropdown menu. The values must match those used as keys to the
HashMap
 returned by the 
getAudioGroups()
 method.
Interaction Logging
As listed in one of the recommended guidelines, interaction logging is a Unified CVP-defined
mechanism for voice elements to record to the VXML Server logs the actions of a caller when
they are interacting with the voice browser. Many voice browsers have the ability to record
detailed logs of a phone call and a caller’s interaction with a VoiceXML page. These logs,
however, are stored on the voice browser, which may be inaccessible or at least difficult to
access. Additionally, logs on the VXML Server side and the browser side would need to be
cross-referenced in order to determine what happened in a particular call. It would be desirable
to store all pertinent information in one place, which is what the interaction logging attempts
to do. Interaction logging is stored in the application’s activity log, which already stores other
information such as the ANI and DNIS, what elements were visited in the call with what exit
states, element data, etc. While it does not have the fine level of detail that a browser log can
Programming Guide for Cisco Unified CVP VXML Server and Cisco Unified Call Studio Release 8.0(1)
67
Chapter 9: Configurable Elements
Voice Elements