Beruflich Dokumente
Kultur Dokumente
Tutorial
VoiceObjects 7
Tutorial
VoiceObjects 7.1
To ensure that you are using the documentation that corresponds to the software you are licensed to use,
compare this version number with the software version shown in About VoiceObjects in the Help menu of the
software you are using.
Copyright
Copyright © 2001-2007 VoiceObjects and its licensors. All rights reserved.
VoiceObjects GmbH, Friedrich-Ebert-Strasse, 51429 Bergisch Gladbach, Germany
Published in Germany – Legal information January 2007
Information in this document is subject to change without notice and does not represent a commitment on the part
of VoiceObjects or any of its subsidiaries. The software described in this document is furnished under a license
agreement or nondisclosure agreement. The software may be used or copied only in accordance with the terms
of the agreement. You may not copy, use, modify, or distribute the software except as specifically allowed in the
license or nondisclosure agreement. No part of this document may be reproduced or transmitted in any form or by
any means, electronic or mechanical, including photocopying and recording, for any purpose, without the express
written permission of VoiceObjects or a subsidiary thereof.
Protected by German patent 101 47 341. Patents pending.
Companies, names, and dates used in examples herein are fictitious unless otherwise noted. If such names affect
copyrights or trademarks or others, please notify VoiceObjects by e-mail at vo-documentation@voiceobjects.com.
Trademarks
VoiceObjects is a registered trademark of VoiceObjects GmbH in Germany or other countries. VoiceObjects 7,
VoiceObjects Server, VoiceObjects Analyzer, VoiceObjects Desktop, and VoiceObjects Studio are trademarks of
VoiceObjects GmbH in Germany or other countries. Any other trademarks, trade names or service marks
mentioned in this document belong to their respective owners.
The material presented herein is based upon information that we consider reliable, but we do not represent that it
is error-free and complete. VoiceObjects is not making any representation or granting any warranty with respect
to such material, and the distribution of such material shall not subject VoiceObjects to any liability.
Table of Contents
TABLE OF CONTENTS ................................................................................................... 3
WELCOME TO VOICEOBJECTS TUTORIAL ...................................................................... 7
Content ................................................................................................................. 7
Organization ......................................................................................................... 7
Tutorial Application ............................................................................................... 8
Functionality..................................................................................................... 8
Dialog flow ....................................................................................................... 9
Using the Online Tutorial ...................................................................................... 9
Typographical Conventions ................................................................................ 11
Feedback and Questions.................................................................................... 11
BEFORE YOU BEGIN .................................................................................................. 12
LESSON 1 – GETTING STARTED .................................................................................. 13
Objectives ........................................................................................................... 13
Getting Started With VoiceObjects Desktop....................................................... 13
Open VoiceObjects Desktop ......................................................................... 13
Log into VoiceObjects Desktop ..................................................................... 13
Adding a User ..................................................................................................... 14
What Comes Next............................................................................................... 16
LESSON 2 – CREATING A PROJECT ............................................................................. 17
Objectives ........................................................................................................... 17
Creating a Project ............................................................................................... 17
The Main Desktop Window................................................................................. 19
What Comes Next............................................................................................... 20
LESSON 3 – CREATING OUTPUT ................................................................................. 21
Objectives ........................................................................................................... 21
Objects................................................................................................................ 21
Object Editors ..................................................................................................... 21
Output Objects.................................................................................................... 22
Creating an Output Object .................................................................................. 23
What Comes Next............................................................................................... 25
LESSON 4 – CREATING AND DEPLOYING A SERVICE .................................................... 26
Objectives ........................................................................................................... 26
Servers and Services.......................................................................................... 26
Configuring a New Service ................................................................................. 26
Configuring a Server Object ............................................................................... 28
Create a new Server object ........................................................................... 29
Use an existing Server object........................................................................ 30
Starting the Tutorial Service ............................................................................... 30
Calling the Application ........................................................................................ 32
Dialog Flow 1 ...................................................................................................... 33
What Comes Next............................................................................................... 33
VoiceObjects 7
Content
The Tutorial explains in a step-by-step approach how to get started with VoiceObjects Desktop
and how to build and run simple applications – introducing the basic objects provided by
VoiceObjects for application development and deployment. While completing these lessons,
you will also learn about some advanced features provided by VoiceObjects, e.g. to give your
dialogs a more natural hear and feel.
The Tutorial gives you a foundation for using the basic features of VoiceObjects Desktop and
building your first phone applications with it. If you want to learn more about additional features
– either while working through the lessons or after completing this Tutorial – refer to
VoiceObjects Help (or its corresponding PDF documents) which describes all features and
components of the VoiceObjects products in detail (see Appendix C – How To Learn More for
an overview on all available additional resources).
Especially refer to
• the Design Guide to learn more about designing applications within VoiceObjects.
• the Desktop Guide for details on each element and command within VoiceObjects Desktop.
• the Object Reference for a detailed description on the configuration of each available dialog
object.
LNote: The Tutorial explains how to build a small voice application and therefore only deals with
the voice channel. Other channels (video, text, or Web) or not covered here.
Organization
The Tutorial consists of the following lessons:
• Lesson 1 – Getting Started – describes how to open and log into VoiceObjects Desktop,
and how to create a new user – briefly introducing the concept of user management that is
provided by VoiceObjects.
• Lesson 2 – Creating a Project – describes how to create a project – introducing the
concept of projects within VoiceObjects – and gives you an initial tour of the main work
areas of VoiceObjects Desktop.
• Lesson 3 – Creating Output – introduces the general concept of objects, which is the
basic underlying concept of VoiceObjects. It explains how to create output by using an
Output object.
• Lesson 4 – Creating and Deploying a Service – introduces the configuration objects
Server and Service, explains how to configure both, and how to start an application in order
to be able to call into it.
• Lesson 5 – Structuring the Dialog Flow – introduces the structuring of dialog flows by
using Module objects.
VoiceObjects 7
• Lesson 6 – Interacting with the Caller – explains how to create an Input object to collect
input from the caller.
• Lesson 7 – Handling Events – introduces simple event handling strategies and explains
how to add both global and context-sensitive event handling to your dialog.
• Lesson 8 – Confirming Input – introduces a more complex object – the Confirmation
object – which is used to confirm input collected by the caller and, if required, to correct it.
• Lesson 9 – Using Layers – introduces the concept of layers and explains how to add a
custom layer to your application that changes the dialog behavior depending on the time of
the day the call comes in.
• Lesson 10 – Handling Dynamic Data – describes how to compute dynamic data in
VoiceObjects and explains how to use the Script object.
• Lesson 11 – Processing Conditions – explains how to make use of conditions to
influence the dialog behavior.
• Lesson 12 – Designing User-Friendly Applications – introduces the functionality of
navigation and random prompting, two additional dialog design features provided in
VoiceObjects.
• Lesson 13 – Logging the Results – explains how to store the call results into a log file in
order to evaluate them.
• Appendix A – Project Documentation – gives an example of how you can document your
project out of VoiceObjects Desktop.
• Appendix B – Overview Object Types – presents a list of all available objects, sorted by
categories, with their associated icons.
• Appendix C – How to Learn More – gives an overview on related resources provided by
VoiceObjects that help you to get started with VoiceObjects and for ongoing support, and
describes how to access them.
Tutorial Application
During the course of the Tutorial you will create a simple but complete application.
Functionality
The Tutorial application represents a life insurance service which is similar to that included in
the VoiceObjects sample application Prime Insurance.
The Prime Life Insurance service simply asks the caller for his/her gender and age and
calculates the life insurance fee based on the caller input.
During the course of the Tutorial several additional features will be added to the Life Insurance
application like a confirmation, a custom layer, event handling, etc. which makes it a complete
and feasible application.
VoiceObjects 7
Dialog flow
The following dialog flow shows an example dialog for the Prime Life Insurance service:
Female.
Caller
Twenty-eight.
Caller
Yes.
Caller
No.
Caller
VoiceObjects 7
Using UNIX/Linux
• In your VoiceObjects installation directory open the folder /platform/desktop/tutorial/en, and
click the file index.htm.
In all these cases VoiceObjects Tutorial will open up in a separate window.
Search
The Search button enables you to search for words in the VoiceObjects Tutorial and locate
topics containing these words. Full-text searching looks through every word in the VoiceObjects
Tutorial to find matches. When the search is completed, a list of topics is displayed in the left-
hand pane so you can select a specific topic to be displayed in the right-hand pane. Within this
topic, all words that match the search word will be highlighted in orange.
Glossary
The Glossary button provides a list of VoiceObjects-specific terms in the upper left-hand pane.
VoiceObjects 7
If you click a term, its corresponding definition is displayed in the lower left-hand pane.
Back
If you click Back you return to the previously viewed topic.
Print Topic
The Print Topic button opens up a print dialog in order to print the respective topic displayed in
the right-hand pane.
In addition to these buttons, you can also navigate through the VoiceObjects Tutorial by Text
Links: Text within a topic that is blue and underlined is a hyperlink that jumps to another related
topic or Web page.
Typographical Conventions
This document uses the following typographical conventions:
Bold Font Used to indicate any screen terminology like names of windows,
worksheets, editors, menus, boxes, tabs, folders, and fields.
All path specifications in this document use slashes (/) to apply to both Linux and Windows. If
you work on Windows you may also use backslashes (\).
VoiceObjects 7
If you do not have this information available contact your local VoiceObjects administrator or
see the Installation Guide for instructions on where to find this information.
VoiceObjects 7
Objectives
Lesson 1 describes how to open and log into VoiceObjects Desktop, and how to create a new
user – briefly introducing the concept of user management that is provided by VoiceObjects.
After completing this lesson you will know
• how to open and log into VoiceObjects Desktop,
• how to add a user to a VoiceObjects installation.
server denotes the network name or IP address of the physical server running
the VoiceObjects Desktop process, and
port denotes the Connector Port for the VoiceObjects Desktop process. The
port is set to 80 by default, but can be modified during installation and
configuration. See the Installation Guide or the Administration Guide for
details.
If the default value of 80 is used it is not necessary to specify the port (in
which case the colon must be omitted).
Example: http://192.168.1.20:80/VoiceObjects/Desktop
The VoiceObjects Start screen will be displayed. The Login screen will be loaded automatically
after a few seconds.
VoiceObjects 7
LNote: You can only log into VoiceObjects Desktop if an appropriate Desktop seat license is
available. If a message appears telling you that no more seats are available, contact your
administrator. For more information on license management within the VoiceObjects platform
see Chapter 4 – Managing Licenses in the Administration Guide.
The Open Project window will open up.
Adding a User
VoiceObjects provides the capability to create and maintain individual user accounts for all team
members, and to assign roles to them that match their responsibilities in the application
lifecycle. Access can be restricted to only those functions and views that team members need to
do their job.
If you have logged into VoiceObjects Desktop as voadmin, we strongly recommend to first
create a second user and to use this second user for proceeding with the Tutorial.
Caution: The voadmin account should only be used in emergency situations since any failure
may result in an unmanageable VoiceObjects installation.
To create a second user, do the following:
1. In the Open Project window, click Control Center to go straight to the main Desktop
window without creating a project. We will create a project in the next step with the new
user.
The main Desktop window opens up, which will be explained in more detail later on.
VoiceObjects 7
2. From the Tools menu, select Configure New User. This opens up a User editor (editors
will also be explained in more detail later on).
3. In the Name field of the upper left corner of the User editor, enter a name which should
correspond to your full name (e.g. John Smith).
4. In the User ID field in the User Credentials section, enter a User ID which will serve as
your login name (e.g. jsmith) and in the Password field enter a password for you.
LNote: User IDs must not contain blanks or special characters other than
underscores and must be unique within the repository.
5. In the User role field, select Server Administrator from the drop-down list. Server
Administrators have full access to all aspects of a VoiceObjects installation, as you will
need when working through the Tutorial.
The User editor looks like this now:
VoiceObjects 7
6. On the tool bar of the User editor, click Save and Close.
For a detailed information on user management within VoiceObjects and on user roles refer to
the Administration Guide.
7. From the File menu, select Exit.
LNote: You need to clearly log out this way (instead of just closing the browser window) to return
the Desktop seat license. For more information on Desktop seat licenses see Chapter 4 –
Managing Licenses in the Administration Guide.
8. Open VoiceObjects Desktop again (see Open VoiceObjects Desktop) and login as the user
you have just created, entering the respective user ID and password.
You will be back in the Open Project window, this time working in your own user account.
VoiceObjects 7
Objectives
Lesson 2 describes how to create a project – introducing the concept of projects within
VoiceObjects – and gives you an initial tour of the main work areas of VoiceObjects Desktop.
After completing this lesson you will know
• how to create a project within VoiceObjects Desktop,
• what the major elements of the main Desktop window are.
Creating a Project
After having successfully logged into VoiceObjects Desktop with the appropriate user role, (see
Lesson 1) you will find yourself in the Open Project window.
Next, you will learn how to create your own project.
Within the VoiceObjects platform, all applications developed with VoiceObjects Desktop are
handled as projects. Each project provides a collection of objects for creating applications.
The Open Project window contains a project selection list presenting all available projects and
its available project versions (VoiceObjects supports the use of different versions of a project,
e.g. for development or test purposes). When you log in for the first time the project selection list
will be empty.
VoiceObjects 7
Within the project selection list you can do one of the following: Open, copy, or delete a project
or project version, or modify its properties. For details refer to Chapter 2 – Working With
Projects in the Desktop Guide.
1. In the Open Project window, click Create New Project. The New Project window will
open up.
2. In the New Project window, enter a project name (mandatory, e.g. Tutorial) and a project
description (optional) for the new project.
3. By default, Version 1.0 is provided as project version name for the first project version. You
may modify the project version name, if desired, and again add an optional description.
4. Click Create and Open. Your new project will be created and the main Desktop window
opens up. The name of the new project is added to the project selection list.
LNote: If you have exited VoiceObjects Desktop and log in again later on, you open your Tutorial
project in the Open Project window by clicking it once in the project selection list, which will
display the available project versions below the project, and then selecting a project version.
For more information on creating new projects see Chapter 2 – Working with Projects in the
Desktop Guide.
Next, you will get introduced to the main Desktop window.
VoiceObjects 7
VoiceObjects 7
At the top of the main Desktop window, you can see the menu bar, which allows access to the
menus File, New, Tools, View, and Help.
Refer to Chapter 3 – VoiceObjects Desktop Elements in the Desktop Guide for a detailed
description of all elements of the main Desktop window.
VoiceObjects 7
Objectives
Lesson 3 introduces the general concept of objects, which is the basic underlying concept of
VoiceObjects. It explains how to create output by using an Output object.
After completing this lesson you will know
• what is meant by objects in the VoiceObjects context,
• what object editors look like,
• how to create an Output object.
Objects
Objects are the core components from which applications are built within VoiceObjects. Based
on an object-oriented approach the VoiceObjects platform contains different object types which
each provide specific functionality and properties.
Each individual object has a particular configuration and can be used wherever this specific kind
of behavior is needed. The object is created just once, but can be used multiple times within
different contexts. This reusability applies to single objects as well as to complex object
sequences. This reduces development and maintenance efforts significantly (see also
Reusability of Objects in Chapter 1 – Application Design – The Modular Approach in the Design
Guide).
VoiceObjects distinguishes between so-called dialog objects and configuration objects.
Dialog objects are used to build applications. VoiceObjects provides a lot of different types –
grouped into six categories. Appendix B – Overview Object Types contains an overview of all
dialog object types currently available. For details how to configure these objects see the Object
Reference.
Configuration objects are used to configure the VoiceObjects platform. User objects, which you
have already learned to know in Lesson 1 (see Adding a User) and projects, which you created
in Lesson 2 (see Creating a Project), belong to the configuration objects. The other two are the
Server object and the Service object, which you will learn to know in Lesson 4 – Creating and
Deploying a Service.
Object Editors
Objects are created and modified in editor windows that are called object editors. Object editors
have different features which are particular to each object type. Depending on the object type
you want to create or edit, the corresponding object editor opens up.
As an example, an Input editor – the object editor for an Input object – is shown below:
VoiceObjects 7
Each object editor contains, at the top, a title bar displaying the name of the object (after saving
it) and the type of the object editor and, below the title bar, a toolbar containing buttons for the
most frequently used commands when creating or editing objects.
Moreover, each object editor contains a Name field in the upper left corner to enter a unique
name for the object. Entering a name is mandatory, and an object cannot be saved without a
name.
Depending on the object type, two or more tabs are available in the corresponding object editor,
which contain all definitions of the object. Within one tab one or more sections, represented by
boxes, are available, which contain all attributes and parameters defining an object.
Output Objects
Any output presented to a caller is represented within VoiceObjects by an Output object. Thus,
Output objects are one of the most basic objects.
The Output object belongs to the object category Components. Objects grouped into the
Components category are higher-level objects, which provide fairly complex dialog processing
capabilities.
Output objects can either be autonomous or embedded as part of other objects such as Input,
Menu, or Confirmation objects.
VoiceObjects 7
In the voice and video channel, outputs may contain text that is read out through a text-to-
speech engine, or prerecorded audio or video files, possibly containing various dynamic content
as well as Silence objects.
For a detailed description of the complete functionalities of the Output object see Output in the
Object Reference.
In the following we will create a simple autonomous Output object that just plays back a simple
welcome message to the caller.
In the Output editor, enter Welcome as the name for the new Output object in the Name field at
the top of the editor window.
On the Definition tab, which is the main area for configuring objects in all object editors, you
see one section: the Output section. The Output section contains an empty Output item.
1. Type a welcome message (e.g. Welcome to the Prime Life Insurance service!) in the text
field of the Output item. This text will be read to the caller by a speech synthesis system
when running the application.
2. Leave all other values as default for now.
The Output section looks like this now:
VoiceObjects 7
As you will see during the course of this Tutorial there are several objects that may contain
multiple items (e.g. Grammar, Hyperlink, Input, Layer).
For an overview on the function of all fields within the Output section refer to Output in the
Object Reference.
In the Object Browser, you will now see a Components folder containing an Output folder,
containing your Welcome Output object.
VoiceObjects 7
VoiceObjects 7
Objectives
Lesson 4 introduces the configuration objects Server and Service, explains how to configure
both, and how to start an application in order to be able to call it.
After completing this lesson you will know
• what is meant by a server and a service,
• how to configure a Service object,
• how to configure a Server object,
• what the Control Center is and how to start an application in the Control Center.
VoiceObjects 7
2. In the Name field at the top of the editor window enter a name for the new Service object
(e.g. Tutorial).
3. In the Application Parameters section, specify the start object of the application
associated with this service. Typically, this is a Module object. Since we only have created
an Output object so far, which we want to listen to, select your Output object here.
To select the Welcome Output object as the start object, click the Context Menu button
to the right of the Start object field. From the context menu, select Browse and then
Output. In the Search Result window, click the Welcome Output object to link it into the
Start object field.
4. In the Language field, select the appropriate language for your application to run in (e.g.
English US). The language selected here is the language that is used if you leave Default
as the language parameter in any output or grammar definition.
#Tip: The Language field, as well as a lot of other fields across all object editors that allow
selecting input from a drop-down list, provides a so-called auto-complete function. This means
that if you enter for example just a single letter the selection in the drop-down list will be
reduced to all entries starting with this letter and the first entry that applies to the selection will
be entered into the field.
Example: if you enter “F” in the Language field the selection in the drop-down list will be
reduced to all available entries starting with an “F” (Finnish, French, French (CA), French (FR))
with Finnish being entered into the Language field.
For further details see Object editor fields in Chapter 6 – Object Editors in the Desktop Guide.
VoiceObjects 7
5. In the Communcation Parameters section, enter the unique name of the service in the
VSN (Reference ID) field (e.g. Tutorial). The VSN (VoiceObjects Service Name) is used to
identify the service when initiating it via an HTTP request from the media platform.
6. In the Driver field, select the appropriate driver for your media platform from the drop-down
menu.
7. For all other properties leave the default selections.
The Service editor will look like this now:
VoiceObjects 7
If it already exists you can use this Server object. For more information see Use an existing
Server object.
LNote: If the folder already contains a Server object with a different name or more than one
Server object ask your VoiceObjects administrator how to proceed.
2. In the Server editor, enter a name for the new Server object in the Name field at the top of
the editor window. It is recommended to use the name of its reference ID here (see below).
3. In the Configuration Parameters section, enter the reference ID for the server in the
Reference ID field. The default value is VOServer.
LNote: In order for the installation to work properly, the reference ID specified here
needs to be identical with the <servername> specified in the VOServer_Configuration.xml
file (see Before You Begin).
4. Leave all other values as default.
5. In the Hosted Services section, add the service which you want to be processed by the
server (e.g. Tutorial ). To add a service, click the Context Menu button to the right of
the Service field. From the context menu, select Browse and in the Search Result window
click the Tutorial Service object to link it into the Service field.
The Server editor will look like this now:
VoiceObjects 7
2. If there already exists a service in the Hosted Services section click the Add button to
add a new empty row to the list.
3. Click the Context Menu button to the right of the Service field. From the context menu,
select Browse and in the Search Result window click the Tutorial Service object to link it
into the Service field.
4. On the toolbar of the Server editor, click Save and Close.
VoiceObjects 7
The Control Center is loaded into a new tab in the right-hand pane of VoiceObjects Desktop. If
this tab already exists, the view switches to it.
In the Server Details section, click the Context Menu button to the right of the server name
and select Reload Service List. The list of services hosted on this server will be reloaded and
the service you have just created (Tutorial) will be added to the list and displayed in the Service
Manager section.
VoiceObjects 7
To start your service, click the Context Menu button to the right of the service name
(Tutorial) in the Service Manager section, and from the context menu select Start. After a while
the light to the left of the service name turns to green indicating that the status of the service is
started.
LNote: The Start command is only available in the context menu if a service is stopped (which is
also the status for a new service). If a service has already been started you need to select
Redeploy from the context menu in order to make any changes effective (see also the following
lessons).
server denotes the network name or IP address of the physical server running
the VoiceObjects Server process.
port denotes the connector port for the VoiceObjects Server process. The
port is set to 8099 by default, but can be modified during installation and
configuration. See the Installation Guide for details.
Reference ID denotes the unique name which identifies the service when initiating it
via an HTTP request from the media platform.
In order to check if the URL is valid, add &ping=server to it and enter it into your Web browser. If
it is correct you will see the status of the service (e.g. Started).
Example:
http://192.168.1.20:8099/VoiceObjects/DialogMapping?VSN=tutorial&ping=server
Now you can call the telephone number by which the new service can be reached.
VoiceObjects 7
Dialog Flow 1
The dialog flow for the current application just consists of one object so far:
When you call your application, the output “Welcome to the Prime Life Insurance service!” will be
played back to you over the phone.
VoiceObjects 7
Objectives
Lesson 5 introduces the structuring of dialog flows and the use of Module objects.
After completing this lesson you will know
• why to structure a dialog flow,
• how to create a Module object,
• what the Dialog Designer is,
• how to redeploy an application.
Module Objects
The Module object typically represents the start node in a dialog flow and is the basic
component when building applications.
The Module object belongs to the object category Components.
Module objects are intended to represent both stand-alone dialogs and sub-dialogs. The Prime
Insurance application, for example, includes the sub-applications Health Insurance, Life
Insurance, Car Insurance, Claim Check, and Claim Report, which are developed as separate
Module objects. The Prime Insurance Portal – again a Module object – combines these
applications into a single one.
As you will see later on, the Module object also allows you to specify global settings for an
application, say for event handling and navigation, which can be inherited by subordinate
objects in the dialog flow.
For further information on inheritance see also Chapter 1 – The Modular Concept in the Design
Guide.
VoiceObjects 7
1. From the New menu, select Module or click the Module button on the toolbar. An
empty Module editor will open up.
2. In the Module editor, enter Life Insurance as the name for the new Module object in the
Name field at the top of the editor window.
3. Expand the Welcome Message section by clicking the Maximize button in the right
corner of the toolbar or by clicking the left field of the toolbar.
#Tip: In VoiceObjects Desktop all sections of an object editor that are represented by boxes can
be expanded either by clicking the Maximize button in the right corner of the toolbar or by
clicking the left field of the toolbar. To collapse a box again, click the Minimize button in place of
the previous Maximize button , or click the left field of the toolbar again.
Since we have already created a welcome message for the Prime Life Insurance service with
creating the Welcome Output object in Lesson 3, we do not have to type the message into the
text field in the Welcome Message section but can link the Welcome Output object into it
instead.
To link the Welcome Output object into the text field in the Welcome Message section, do the
following:
1. Click the Context Menu button to the right of the text field.
2. From the context menu, select Browse and then Output.
3. In the Search Result window, click the Output object Welcome to link it into the text field.
VoiceObjects 7
1. In the Goodbye Message section, enter an appropriate goodbye message like Thanks for
calling. Goodbye!.
2. Leave all other values as default.
3. On the Module Editor toolbar, click Save and Close.
For an overview on all parameters that can be specified in the Module editor refer to Module in
the Object Reference.
In the Object Browser, you will now see a Module folder in the Components folder, containing
your Life Insurance Module object.
VoiceObjects 7
For more information on the Dialog Designer see Chapter 5 – Dialog Designer in the Desktop
Guide.
To open the Dialog Designer for the Life Insurance Module object, do the following:
1. In the Object Browser, open the Components folder, and then the Module folder.
2. Select the Life Insurance Module object and right-click it.
3. From the context menu, select Display Dialog. The dialog flow will be displayed in a
Dialog Designer in the right-hand pane of VoiceObjects Desktop.
Since the Life Insurance Module object doesn´t contain any other objects the dialog flow is very
simple. In the course of the Tutorial you will see the display develop into more complex dialog
flows.
Each item displayed in the dialog flow represents an object. The top left object of a dialog flow
represents the object that you selected to be displayed (in this case the Life Insurance Module
object).
If you double-click an object in the Dialog Designer of VoiceObjects Desktop the corresponding
object editor will open up.
A right-click on an object opens a context menu with a number of commands that are available
for that object.
Objects preceded by a plus box [+] include subtrees of one or more objects. Clicking the plus
box [+] will expand the corresponding object and display its subtree. Clicking a minus box [-] in
front of an object will collapse it.
Object names written in blue correspond to autonomous objects. Autonomous objects are
visible and accessible within the Object Browser and can be added to other dialogs.
Object names written in black correspond to embedded objects. Embedded objects are
automatically defined inside another object. They are only accessible within their parent object
and are not visible from within the Object Browser.
For detailed information on all display features of the Dialog Designer see Chapter 5 – Dialog
Designer in the Desktop Guide.
Later on you will see how you can manipulate objects within the Dialog Designer to create
applications quickly and easily.
VoiceObjects 7
Redeploying an Application
In order to test whether the structurally modified application is still working properly you need to
redeploy it.
1. In the Object Browser, right-click the Server object that hosts your service (VOServer).
2. From the context menu, select Control Center. The Control Center opens up.
3. In the Service Manager section, select the Tutorial service.
4. Click the Context Menu button to the right of the Tutorial service and click Redeploy.
You can now call your service again with the telephone number by which it can be reached.
Dialog Flow 2
The dialog flow of your application has changed slightly, now consisting of two prompts:
Again, the output “Welcome to the Prime Life Insurance service!” will be played back to you
over the phone, this time activated by a Module object, followed by a goodbye message.
VoiceObjects 7
VoiceObjects 7
Objectives
Lesson 6 explains how to create an Input object to request input from the caller and store the
result in a variable.
After completing this lesson you will know
• how to create an Input object,
• how to specify a TTG grammar,
• how to handle the result through a Variable object.
1. From the New menu, select Input or click the Input button on the toolbar. An empty
Input editor will open up.
VoiceObjects 7
2. In the Input editor, enter Ask for gender as the name for the new Input object in the Name
field at the top of the editor window.
VoiceObjects 7
1. Expand the Grammar section by clicking the Maximize button in the right corner of the
toolbar or by clicking the left field of the toolbar.
On the Voice/Text tab in the Grammar section, you can, in case of using the voice channel,
define a grammar for voice input (as opposed to DTMF input).
By default, the TTG check box is selected, indicating that text-to-grammar is used. This enables
you to define grammars by means of comma-separated lists of utterances without having to
bother about grammar formats specific to the underlying media platform.
When building voice applications in a rapid prototyping approach, it is often desirable to start the
definition of a grammar by just providing a couple of typical utterances a caller might say.
In the case of the Life Insurance application, a first TTG grammar will be used containing the
two possible genders.
2. Enter female and male, separated by a comma, into the TTG field in the Grammar section.
3. Leave all other values as default.
Your Grammar section will look like this now:
VoiceObjects 7
4. Leave all other values as default and on the toolbar of the editor click Save and Close.
The Caller gender Variable object will be linked into the Ask for gender Input object.
VoiceObjects 7
2. In the Object Sequence section, click the Context Menu button to the right of the
Object field. From the context menu, select Browse and then Input. In the Search Result
window, click the Ask for gender Input object to link it into the Object field.
3. On the Module Editor toolbar, click Save and Close.
Look at the Life Insurance Module object in the Dialog Designer.
To display the Dialog Designer for the Life Insurance Module object, right-click it in the Object
Browser and from the context menu, select Display Dialog.
As you can see the Ask for gender Input object has been added to the embedded sequence of
the Life Insurance Module object.
Dialog Flow 3
After redeploying your service in the Control Center (see Redeploying an Application in Lesson
5), call your application again and test it.
The following dialog flow shows a possible dialog for the current application:
VoiceObjects 7
Female.
Caller
1. From the New menu, select Input or click the Input button on the toolbar to open up an
empty Input editor.
2. In the Input editor, enter Ask for age as the name for the new Input object in the Name field
at the top of the editor window.
3. In the Input Request section, enter a request like Now please say your age. in the text
area.
4. Expand the Grammar section and in the Type field select Built-in from the drop-down list.
In the TTG field just enter number to refer to the built-in grammar of your media platform for
numbers.
Your Grammar section will look like this now:
5. In the Result Handling section, click the Context Menu button to the right of the
Variable field to create and link a new Variable object.
VoiceObjects 7
6. In the Variable editor, enter Caller age in the Name field at the top of the editor window.
Leave all other values as default and on the toolbar of the editor click Save and Close. The
Caller age Variable object will be linked into the Variable field in the Result Handling
section of the Ask for age Input object.
In the case of built-in grammars, the Slot field is left empty.
7. Leave all other values in the Input editor as default.
8. Finally, click Save and Close on the Input Editor toolbar.
Again, you can find the Ask for age Input object in the Input folder of the Object Browser and
the Caller age Variable object in the Variable folder.
Add the Ask for age Input object to the Life Insurance Module object as you have done with the
Ask for gender Input object previously:
1. In the Object Browser, double-click the Life Insurance Module object to open the
corresponding Module editor.
2. In the Object Sequence section, add a new row to the object list by clicking the Add
button on the toolbar.
3. Click the Context Menu button to the right of the new Object field and link the Ask for
age Input object by browsing.
4. On the Module Editor toolbar, click Save and Close.
Again, display the Dialog Designer for the Life Insurance Module object via its context menu in
the Object Browser. Find the Ask for age Input object added to the embedded sequence of the
Life Insurance Module object below the Ask for gender Input object.
Dialog Flow 4
After redeploying your service in the Control Center (see Redeploying an Application in Lesson
5), call your application again and test it.
The following dialog flow shows a possible dialog for the current application:
Female.
Caller
VoiceObjects 7
28.
Caller
In this case, click the Context Menu button to the right of the field into which you want to
insert the new object and, via the New Menu, select the object type you want to add. After
creating and saving it, the new object will be automatically linked into the object you have
started from.
In both cases autonomous objects will be created that will be displayed in the Object Browser.
2. In the Object Sequence section, add a second row by clicking the Add button on its
toolbar.
3. Click the Context Menu button to the right of the empty Object field. From the context
menu, select New and then Output. An empty Output editor will open up.
4. In the Output editor, enter Repeat caller gender and age as the name for the new Output
object in the Name field at the top of the editor window.
5. In the Output section, enter I have recognized your gender as in the text field.
6. At the end of this text, link the Caller gender Variable object by browsing for it via the
context menu.
7. Enter and your age as followed by the Caller age Variable object.
8. Leave all other values as default and on the toolbar of the editor click Save and Close.
The Repeat Caller gender and age Output object will be linked into the object sequence of the
Life Insurance Module object.
The Dialog Designer for the Life Insurance Module object now looks like this:
VoiceObjects 7
Dialog Flow 5
After redeploying your service in the Control Center again (see Redeploying an Application in
Lesson 5), test how your application has changed.
The following dialog flow shows a possible dialog for the current application:
Female.
Caller
Twenty-eight.
Caller
After providing a gender and an age the most recently created Output object will play the results
back to you. By this, you can now check if your input has been recognized and stored correctly.
LNote: Sometimes it is desirable to test the application functionality without having access to a
media platform. This can be accomplished by using the Debug mode. A Debug mode session
can be directly started from within the Control Center via the entry Debug Viewer in a service’s
context menu. This entry is only available for started services. For detailed information o the
Debug mode refer to Chapter 4 –Service Deployment in the Deployment Guide.
VoiceObjects 7
Objectives
Lesson 7 introduces basic event handling strategies and explains how to add global and
context-sensitive event handling to your dialog.
After completing this lesson you will know
• why event handling items should be defined,
• how to define global event handling,
• how to define context-sensitive event handling.
3. Click the Context Menu button to the right of the Object field and select New and then
Output. An empty Output editor will open up.
4. In the Output editor, enter a name for the Output object (Global No Input) in the Name
field.
5. In the text area, enter the following output:
Sorry?
VoiceObjects 7
9. On the toolbar of the Module editor, click the Save button to save your current object
without leaving its object editor.
VoiceObjects 7
1. Add a second event handling item by clicking the Add button on the Event Handling
toolbar.
2. Click the Context Menu button to the right of the Object field and select New and then
Ouptut. An empty Output editor will open up.
3. In the Output editor, enter a name for the Output object (Global No Match) in the Name
field.
4. In the text area, enter the following output:
Say again, please?
VoiceObjects 7
Finally, click Save and Close on the toolbar of the Module editor.
Field Parameter
Create a new Output object called Ask for age NI with the output
Object Sorry, I still couldn´t hear you. Please say your age, for example
thirty-five.
VoiceObjects 7
Field Parameter
Occurrence If >=2
Specify an event handling item for a No Match event with the following parameters:
Field Parameter
Create a new Output object called Ask for age NM with the
Object output Sorry, I couldn´t understand you. Just say your age, for
example thirty-five.
Occurrence If >=2
The Event Handling section of the Ask for age Input object looks like this now:
Finally, click Save and Close on the toolbar of the Input editor.
VoiceObjects 7
Dialog Flow 6
After redeploying your service in the Control Center again, call it and test how your application
behaves if you say nothing or say something not recognized by the grammar.
The following dialog flow shows an example dialog for the Prime Life Insurance service you
have created so far – this time including event handling:
Female.
Caller
No Input 1
Caller
Sorry?.
No Input 2
Caller
Sorry, I still couldn´t hear you. Please say your age, for
example thirty-five.
Twenty-eight years
Caller
Sorry, I still couldn´t hear you. Just say your age, for
example thirty-five.
Twenty-eight
Caller
VoiceObjects 7
Objectives
Lesson 8 introduces the Confirmation object used to confirm input collected by the caller and, if
required, to correct it.
After completing this lesson you will know
• how to configure a Confirmation object with a single correction item,
• how to manipulate dialog flows in the Dialog Designer.
Confirmation
So far, the Prime Life Insurance service just repeats back the recognized caller input through a
simple Output object. In this lesson you will learn how to specify a Confirmation object in order
to allow correction.
A Confirmation object is used to confirm and if necessary to correct the information collected in
the previous dialog. It belongs to the object category Components.
The Confirmation object is one of the more advanced objects. It can be used to confirm
individual caller inputs immediately after each is collected, or to confirm a summarized block of
items at the end of an input series. If the summary is rejected, the caller can specify which item
needs to be corrected. Thus, the Confirmation object can be configured to confirm several caller
inputs in one dialog step.
In the Life Insurance application a Confirmation object is used to confirm two inputs in a row.
The caller is asked to confirm the recognized gender and age. If the caller denies he or she is
asked again for his gender, age, or both, depending on what has been rejected.
1. From the New menu, select Confirmation or click the Confirmation button on the
toolbar. An empty Confirmation editor will open up.
VoiceObjects 7
2. In the Confirmation editor, enter Confirm gender and age as the name for the new
Confirmation object.
#Tip: If you configure a more advanced object like the Confirmation object, it is recommended to
save it from time to time by clicking the Save button on the toolbar of the editor.
VoiceObjects 7
3. Switch to the Deny tab and enter some rejecting utterances like no, not correct etc. in the
TTG field.
VoiceObjects 7
VoiceObjects 7
4. Add a second row by clicking the Add button in the toolbar of the Correction Mapping
section.
5. Define a second correction item to be processed when the caller answered “age” by linking
the Ask for age Input object into the Object field of the second correction item and entering
age into the TTG field of its Grammar section.
6. Add a third row to define a third correction item to be processed when the caller answered
both.
7. From the context menu right from the Object field select New and then Sequence to create
a new Sequence object that will ask for gender and age sequentially.
8. In the Sequence editor, enter Ask for gender and age as the name for the new Sequence
object.
9. In the Object Sequence section, link the Ask for gender Input object in to the Object field.
Add a new row by using the Add button on the toolbar and link the Ask for age Input object
into the second Object field. The Sequence editor looks like this now:
VoiceObjects 7
10. Click Save and Close on the toolbar of the Sequence editor to link the Sequence object as
a destination object into the third correction item.
Finally, click Save and Close on the toolbar of the Confirmation editor.
VoiceObjects 7
For a detailed description of all commands for manipulating objects in dialog flows provided on
the context menus of the Object Browser and the Dialog Designer refer to Chapter 4 – Object
Browser, Chapter 5 – Dialog Designer, and Chapter 7 – Basic Commands in the Desktop
Guide.
Dialog Flow 7
You have now added a confirmation to the Life Insurance application, which will do the
following:
The caller is asked to confirm their gender and age that have each been stored in a variable.
When the caller confirms the dialog proceeds with the next object in the dialog flow. When the
caller rejects the recognized input, the Ask for gender Input object, the Ask for age Input object,
or both are processed again, depending on what the caller rejected. Afterwards, the server
returns to the Confirmation object, starting over with the confirmation request, until the caller
finally confirms.
After redeploying your service in the Control Center, call it and test the confirmation behavior.
VoiceObjects 7
The following dialog flow shows an example dialog for the Prime Life Insurance service you
have created so far:
Female.
Caller
Twenty-eight.
Caller
No.
Caller
Age.
Caller
Twenty-eight.
Caller
Yes.
Caller
VoiceObjects 7
Objectives
Lesson 9 introduces the concept of layers, which is a basic feature of VoiceObjects, and
explains how to create a simple custom layer changing the dialog behavior depending on the
hour of day the call comes in.
After completing this lesson you will know
• what is meant by layers,
• how to create a Layer object having different states,
• how to implement a layer into an application.
Using a Layer
In the case of the Life Insurance application, a time-dependent custom layer will be
implemented to simply welcome the caller according to the time of the day (e.g. good morning,
good evening). A more sophisticated application would probably use such a layer to also modify
the application behavior according to the time of the day, i.e. to transfer the caller to an agent
during the business hours only.
The layer is implemented through a Layer object. In the Layer object you specify a specific
custom layer for an application by listing all states the corresponding layer can be in.
In the case of the Life Insurance application, there will be three possible states, one for the
morning, one for the afternoon and one for evening.
VoiceObjects 7
2. In the Layer editor, enter Time of day as the name for the new Layer object.
VoiceObjects 7
4. On the toolbar, click Save and Close. The Hours of Day Expression object will be linked
into the Object field of the State Indicator section.
For detailed information on Expression objects see Expression in the Object Reference.
Next, specify the states.
3. Specify a second state with afternoon as State ID and 12,13,14,15,16,17 as indicator value
(for all calls between 12:00h and 17:59h).
4. Specify a third state with evening as State ID and 18,19,20,21,22,23,24 as indicator value
(for all calls between 18:00h and 00:59h).
VoiceObjects 7
Your States section will look like this now (all State boxes minimized):
5. Finally, click Save and Close on the toolbar of the Layer editor.
In the Object Browser you will now find a Layers folder, containing your Time of day Layer
object with three states.
1. Open the Welcome Output object and click the Context Menu button to the right of the
Layer field of the Output item. Select the Time of day Layer object listed at the end of the
context menu and from the submenu select morning as the layer state for this Output item.
2. In the text field, modify the welcome message to Good morning and welcome to the Prime
Life Insurance service!.
VoiceObjects 7
3. Add a second Output item to the Output section by clicking the Add button . Again, link
the Time of day Layer object into the Layer field, this time selecting the layer state
afternoon as its value.
4. Enter Good afternoon and welcome the Prime Life Insurance service! into the text field of
the second Output item.
5. Add a third Output item to the Output section and link the Time of day Layer object into the
Layer field, this time selecting the layer state evening as its value.
6. Enter Good evening and welcome the Prime Life Insurance service! into the text field of the
third Output item.
The Welcome Output object looks like this now (one Output item minimized for display
purposes):
Finally, click Save and Close on the toolbar of the Output editor.
You have now specified three different welcome messages, which will be selected during the
call depending on the time of day.
VoiceObjects 7
Dialog Flow 8
You have now enhanced the Life Insurance application, providing slightly different dialog
behavior for the morning, afternoon and evening by creating and adding a custom layer.
Depending on the hour of day when the call comes in the caller will hear a different welcome
message.
After redeploying your service in the Control Center, call it and test this behavior. You will most
probably hear either the welcome message for the morning state or for the afternoon state
depending on when you are calling.
Use a Variable object containing a fix value as state indicator instead of the expression function
NOW if you want to test the other states.
The following call flow shows an example dialog for the Prime Life Insurance service for calls
between 12:00h and 17:59h – i.e. for callers calling in the afternoon:
VoiceObjects 7
Objectives
Lesson 10 briefly explains how to handle dynamic data within VoiceObjects and how to use the
Script object in order to return a value on the basis of input collected from the caller.
After completing this lesson you will know
• which objects to use to handle dynamic data
• how to specify embedded script code in a Script object
• how to pass parameters into the Script object and return a value.
VoiceObjects 7
A Script object can provide a return value, and thus act as a replacement for an Expression
object. The return value of the Script object is defined by the value of the last statement that is
evaluated within the JavaScript code.
The Script object belongs to the category Resources.
For further details on the usage and functionality of the Script object refer to Script in the Object
Reference.
In the case of the Life Insurance application you will use the Script object to calculate the
insurance fee for the caller based on the parameters gender and age that have previously been
collected and stored in variables.
VoiceObjects 7
In the Script editor, enter Compute life insurance fee as the name for the new Script object.
This code will return the life insurance fee based on gender and age.
VoiceObjects 7
1. Click the Context Menu button and browse for the Caller gender Variable object to add
it to the Parameter field. Enter gender in the Alias field to define the name under which the
parameter is accessible within the script code.
2. Add a second parameter to the Parameter Set section by clicking the Add button on its
toolbar. Browse for the Caller age Variable object to add it into the Parameter field, and
enter age into the Alias field.
3. Add a third parameter to the Parameter Set section to specify the variable that will return
the computed fee. Use the Context Menu button to create a new Variable object called
Life insurance fee. In the Alias field, enter fee.
Your Parameter Set section looks like this now:
Leave all other values as default and click Save and Close on the toolbar of the Script editor.
In the Object Browser you will now find a Resources folder, containing a Script folder, which
contains your Compute life insurance fee Script object.
VoiceObjects 7
The dialog flow for the Life Insurance Module object now looks like this:
VoiceObjects 7
Dialog Flow 9
You have now added two more objects to the dialog flow, which do the following:
The Compute life insurance fee Script object calculates the monthly fee for the caller based on
the gender and age provided and the Play life insurance fee Output object plays back the result
to the caller.
After redeploying your service in the Control Center, call it and test the application behavior.
The following dialog flow shows an example dialog for the Prime Life Insurance service you
have created so far:
Female.
Caller
Twenty-eight.
Caller
Yes.
Caller
VoiceObjects 7
Objectives
Lesson 11 introduces the use of conditions in order to influence the dialog behavior. Moreover it
simulates a transfer to an agent by the use of an Exit object. After completing this lesson you
will know
• what is basically meant by conditions in VoiceObjects,
• how to create an Exit object,
• how to create a Silence object,
• how to branch the dialog flow with an If object.
Conditional Processing
Depending on parameters such as user input, user profile, external data, date, time, etc. parts
of a dialog flow may or may not be processed.
If objects and Case objects can be used, to make parts of a dialog flow dependent on certain
conditions. An If object is used to split a dialog flow into two subtrees depending on a condition
evaluated at call time. A Case object is used to split the dialog flow into multiple subtrees
depending on one or more conditions evaluated at call time. For further details refer to the If and
Case object in the Object Reference.
In addition, preconditions can be used to express certain dialog conditions and influence the
dialog behavior. A precondition is a condition that is evaluated at call time before processing an
object. The object is only processed if the condition evaluates to true. For more information
about preconditions see Pre- and Postprocessing in the Object Reference.
In the Dialog Designer, objects with a precondition are indicated with a Precondition icon .
In the case of the Life Insurance application an If object will be used to influence the dialog flow
depending on the caller wishing to be transferred to an agent or not.
5. In the Object Sequence section of the Sequence editor, click the Context Menu button
to the right of the Object field and add a new Input object.
6. In the Input editor, enter Speak to an agent now? as the name for the new Input object.
7. Enter Would you like to speak to an agent now? in the text area of the embedded output in
the Input Request section.
VoiceObjects 7
8. In the Grammar section, enter yes, no in the TTG field to specify a classical Yes/No
grammar.
9. In the Result Handling section add a new Variable object called Yes/No answer to the
Variable field and enter sltTTG in the Slot field.
VoiceObjects 7
2. In the Exit editor, enter Simulate agent transfer as the name for the new Exit object.
3. In the Goodbye Message section, enter something like Hi! My name is Ray MacArthur. I
understand you're interested in life insurance. How can I help you? in the text field.
4. Click the Context Menu button to the right of the text field and create a new Silence
object via the context menu.
5. In the Silence editor, enter Very long pause as the name for the new Silence object.
6. In the Silence Duration section, select 60 Seconds from the drop-down list in the Duration
field.
VoiceObjects 7
7. On the toolbar of the Silence editor click Save and Close to add the Silence object.
The Goodbye Message section of the Exit object looks like this now:
8. In the Processing section of the Exit editor select Disconnect from the drop-down list in
the Dialog exit type field in order to disconnect the call after processing the Exit object.
On the toolbar of the Exit editor click Save and Close. The Exit object will be added to the
dialog flow in the next step.
VoiceObjects 7
1. In the If editor, enter Check if caller wants agent transfer as the name for the new If object.
In the IF section of the If editor you specify the condition that needs to be met in order to
process the THEN section (i.e. the caller said yes when being asked for an agent transfer).
2. In the IF section, select the equal function “=” from the drop-down list in the Function field
to check if argument [1] equals argument [2].
3. In the Arg. [1] field, add the Yes/no answer Variable object by browsing.
4. In the Arg. [2] field, enter yes.
The IF section looks like this now:
VoiceObjects 7
5. In the THEN section, add the Simulate agent transfer Exit object created previously into the
Object field by browsing for it via the Context Menu button .
6. On the toolbar of the If editor click Save and Close to add the If object to the object
sequence of the Offer option to connect to an agent Sequence object.
Finally, on the toolbar of the Sequence editor click Save and Close.
The dialog flow for the Life Insurance Module object looks like this now:
VoiceObjects 7
Dialog Flow 10
You have now added a Sequence object to the Life Insurance application, which contains two
objects. The first one is an Input object that asks the caller if he/she wants to be transferred to
an agent. The second object is an If object that, depending on the answer of the caller to the
previous question, either processes an Exit object that simulates an agent transfer or returns to
the Module object.
After redeploying your service in the Control Center, call it and test the application behavior.
The following dialog flow shows an example dialog for the Prime Life Insurance service you
have created so far:
Female.
Caller
Twenty-eight.
Caller
Yes.
Caller
Yes.
Caller
VoiceObjects 7
Objectives
Lesson 12 briefly explains some additional features available in VoiceObjects for creating
successful phone applications with respect to what is called a good Voice User Interface (VUI)
design. These features improve the design of the application with respect to its usability and its
hear and feel.
After completing this lesson you will know
• roughly what is meant by Voice User Interface design,
• what is meant by standard and custom navigation,
• how to specify custom navigation,
• what random prompting is and how it is specified.
VoiceObjects 7
VoiceObjects 7
4. Switch back to the Definition tab of the Life Insurance Module object.
5. Expand the Welcome Message section and enter something like If you want to talk to an
agent just say agent. in the text field (behind the linked Welcome Output object) to point the
caller to this opportunity.
6. On the toolbar of the Module editor, click Save and Close.
Dialog Flow 11
You have now added a hyperlink to the Life Insurance application, which allows the caller to
interrupt the dialog flow and directly talk to an agent.
After redeploying your service in the Control Center, call it and test this behavior.
The following dialog flow shows an example dialog for the Prime Life Insurance service you
have created so far:
VoiceObjects 7
Agent.
Caller
Random Prompting
Another valuable technique for good Voice User Interface design is called random prompting.
Random prompting means the playing of variations of a given prompt in a randomized way,
which means that when it comes time for the application to play a given prompt, there are
multiple versions of that prompt for the system to select from. Each time the application needs
to play that particular prompt, a different variant will be selected until all have been exhausted.
By this the typical robotic character of a phone application is minimized.
Prompts can vary either in their wording or simply in the way they're spoken.
Random prompts can be achieved by simply providing multiple Output items with the same
language layer, occurrence level, channel, custom layer (defined in the Layer field), and input
mode setting.
For further details on random prompting refer to the Output object in the Object Reference and
to Appendix A – Voice User Interface Design in the Design Guide.
In the case of the Life Insurance application random prompts will be specified for the Welcome
Output object embedded in the Life Insurance Module object.
2. Click the Add button on the toolbar of the Output section to add another Output item.
3. In the text field add a welcome message that differs from the one in the first Output item
with layer state morning, e.g. Good morning, this is Prime Life Insurance.
VoiceObjects 7
4. Add a third Output item with layer state morning again with a different welcoming prompt.
VoiceObjects 7
VoiceObjects 7
VoiceObjects 7
Objectives
Lesson 13 briefly explains how to store the results received from a caller request into a log file
in order to be able to evaluate them later on. This is done by a Log object.
After completing this lesson you will know
• how to create a Log object to store results,
• how to access the log file from within the Control Center.
Logging
Within VoiceObjects application-level logging information may be written to a log file, to the
media platform, to a custom database, or to the system database. This is done by using the Log
object.
The default channel for logging is writing to a service-specific file that can be accessed via the
Control Center (see Accessing the Log File).
Logging information may contain arbitrary dynamic content such as caller input, data retrieved
from back-ends, etc. It may be written out at any point during a call, or after the call has ended.
In the case of the Life Insurance application you will log the gender and age of the caller for
further dialog analysis purposes.
VoiceObjects 7
3. In the Log editor, enter Log caller data for dialog analysis as the name for the new Log
object.
4. In the Destination field, select Log File from the drop-down list, which indicates that the
Log item writes to a log file. A separate log file is created for each service.
5. Enter Gender: into the text field and browse for the Caller gender Variable object to add it
behind it. This will return the gender of the caller.
6. Next, enter Age: and add the Caller age Variable object by browsing. This will return the
age of the caller.
The Log caller data for dialog analysis Log object will look like this now:
VoiceObjects 7
VoiceObjects 7
The actual behavior of the Life Insurance application has not changed but results are stored into
a log file now.
After redeploying your service in the Control Center, call it several times to store some results.
VoiceObjects 7
Each service has two associated log files named VSN_service.log and VSN_error.log (where
VSN stands for the VoiceObjects Service Name of the respective service). The VSN_service.log
file contains messages written by the Log object with destination Log File. The VSN_error.log
file contains all error messages related to this service.
Log files can be viewed (up to a maximum size of 1 MB), and downloaded. Both viewing and
downloading are only possible if the log file is not empty.
To view a log file in a new window, click on the name of the log file. To download it, click the
Download button to the right of the log file name.
To view the log file for the Tutorial service, click Tutorial_Service.log. The log file will be
displayed in a separate window (for better readability the layout of the example log file below
has been slightly modified):
[Category: INFO]
[Log Name: Log caller data for dialog analysis]
[Label: ]
[Ref ID: 0.135.149:OVAPac1617bc0000000000003a03000001114bbf400d_BVO_Log]
[VSN: Tutorial]
[Dialog ID: OVAPac1617bc000000000000258d000001114bbb7c64]
[TS: 2007-03-13 16:25:04,174]
[DNIS: ]
[ANI: VoiceObjects Administrator]
Gender: male Age: 44
[Category: INFO]
[Log Name: Log caller data for dialog analysis]
[Label: ][Ref ID:
0.135.149:OVAPac1617bc0000000000003a03000001114bbf400d_BVO_Log]
[VSN: Tutorial]
[Dialog ID: OVAPac1617bc00000000000027a9000001114bbb7c64]
[TS: 2007-03-13 16:37:28,000]
[DNIS: ]
[ANI: VoiceObjects Administrator]
Gender: male Age: 54
VoiceObjects 7
Conclusion
We have reached the end of the Tutorial here.
You have been introduced to the basic functionalities of VoiceObjects Desktop and to the basic
objects available within VoiceObjects by building a complete voice application including event
handling, navigation, a custom layer and logging functionality.
By now, you will be able to build your own applications using VoiceObjects.
However, the features and objects that have been introduced during the course of the Tutorial
have not all been described in detail. Other features and a lot of additional objects available in
the VoiceObjects platform have not been introduced at all.
In order to get a detailed description of the entire functionality of VoiceObjects Desktop you
should read the Desktop Guide next.
In order to learn more about designing voice applications with the VoiceObjects platform read
the Design Guide.
If you want to get a closer look to all objects and their configurations refer to the Object
Reference.
See Appendix C – How To Learn More for an overview on all available additional resources and
how to access them.
VoiceObjects 7
VoiceObjects 7
3. In the Project Documentation window, select Dialog flow and object overview and click
Next.
VoiceObjects 7
4. In the Dialog Flow and Object Overview window, specify the object details to be included
in your dialog flow and your object overview. For details see Create Project Documentation
in Chapter 7 – Basic Commands in the Desktop Guide.
In the example documentation LifeInsuranceProjectDocumentation.pdf the settings as
shown in the screen above have been selected.
5. Click Create to start creating the documentation.
A PDF document will be generated containing a cover page (if selected), the dialog flow and the
object overview according to your selection, and a statistics page (see examples below).
See the file LifeInsuranceProjectDocumentation.pdf in the documentation folder of your
VoiceObjects installation for the complete example documentation.
For a detailed description of the project documentation functionality see Create Project
Documentation in Chapter 7 – Basic Commands in the Desktop Guide.
VoiceObjects 7
Examples
Cover page
The cover page lists general information about the name, the short description, the creation
date and the owner for both project and project version.
VoiceObjects 7
Dialog flow
The dialog flow shows the objects of the Life Insurance application in the same order as they
appear in the Dialog Designer. Within the dialog flow you will find hyperlinks to jump from an
object to its object definition in the object overview, if created. Available hyperlinks are indicated
by blue object names.
VoiceObjects 7
Object overview
The object overview lists all object definitions that are referenced within the Life Insurance
Module object. Within the object overview you will find hyperlinks to jump from an object to its
child objects. Available hyperlinks are indicated by blue object names.
VoiceObjects 7
Object statistics
The statistics page is automatically generated when an object overview is created. It lists all
object types and displays the total number of objects per type. The statistics page also serves
as a table of contents. By clicking an object type you arrive at the corresponding section in the
PDF file. Note that a hyperlink for an object type is only available if at least one object of this
type exists in your application.
VoiceObjects 7
Components Category
Objects grouped into the Components category are higher-level objects, which provide dialog
functionality frequently used within applications, such as menus, reading out lists and tables,
summarizing and confirming multiple caller input etc. This category also offers the most basic
objects necessary to interact with the caller, like the Output and Input object.
The objects of the Components category have various integrated system layers that provide for
example sophisticated event handling and dialog navigation capabilities.
VoiceObjects 7
Resources Category
Objects grouped into the Resources category provide access to external resources such as
grammar, prerecorded audio, or existing VoiceXML files. It also covers objects for back-end
access and custom logging.
VoiceObjects 7
Logic Category
Objects grouped into the Logic category provide low-level elements based on standard
programming constructs to control the logic of a dialog flow and the corresponding dialog
context.
VoiceObjects 7
Actions Category
Objects grouped into the Actions category are dialog elements that offer interactive dialog
control to the caller, e.g. pausing an application, being transferred to a call center agent, or
branching to a different part of the application.
Layers Category
The Layers category contains objects that provide custom layer definition capabilities.
VoiceObjects 7
OSDMs Category
The OSDMs category contains OpenSpeech™ DialogModules™ (OSDMs). OSDMs are
building blocks for voice applications, which accelerate the development process by packaging
application functionality for applications based on VoiceXML. They provide all prompts,
grammars, dialog flow, and other parameters required to address frequent speech application
tasks, like obtaining alphanumeric strings, dates, phone numbers, etc.
The following table lists all thirteen OSDM types available within the VoiceObjects platform
together with short descriptions and alias names by which the types are referred to in the
OSDM handbook.
VoiceObjects 7
VoiceObjects 7
VoiceObjects Help
VoiceObjects provides you with an Online Help that serves as a reference for using
VoiceObjects.
VoiceObjects 7
Contents
The Contents button displays all available books and pages of VoiceObjects Help in the left-
hand pane. When you click a closed book, it opens to display its sub-books and pages. When
you click an open book, it closes. When you click pages, the respective topics will be displayed
in the right-hand pane.
Search
The Search button enables you to search for words in VoiceObjects Help and locate topics
containing these words. Full-text searching looks through every word in VoiceObjects Help to
find matches. When the search is completed, a list of topics is displayed in the left-hand pane
so you can select a specific topic to be displayed in the right-hand pane. Within this topic, all
words that match the search word will be highlighted in orange.
Glossary
The Glossary button provides a list of VoiceObjects-specific terms in the upper left-hand pane.
If you click a term, its corresponding definition is displayed in the lower left-hand pane.
VoiceObjects 7
Back
If you click Back you return to the previously viewed topic.
Print Topic
The Print Topic button opens up a print dialog in order to print the respective topic displayed in
the right-hand pane.
In addition to these buttons, you can also navigate through VoiceObjects Help by Text Links:
Text within a topic that is blue and underlined is a hyperlink that jumps to another related topic
or Web page.
You can access this help by clicking the Help button in the toolbars of windows, editors or
boxes. A separate window will open up displaying the appropriate help topic.
VoiceObjects 7
applications. It can therefore serve as a reference that you may come back to from time to time
during ongoing voice application development work.
The Prime Insurance package consists of the application itself, which is provided as an XML
export file, and a set of audio and grammar files. Both parts are automatically installed by the
VoiceObjects Installer (unless you perform a minimal installation, or explicitly exclude them
during a custom installation).
For details on how to be able to call the application see the Prime Insurance Primer.
Printed Documentation
In addition to VoiceObjects Help there are also PDF documents available for printing. See
Overview VoiceObjects Documentation for a list of all documents currently available.
LNote: The content of the PDF documents completely corresponds to the online VoiceObjects
Help, except of the Installation Guide, which is only available as a PDF document. The Tutorial
PDF corresponds to the online VoiceObjects Tutorial.
You can find the following PDF documents directly on the VoiceObjects CD:
VO-Installation.pdf (Installation Guide)
VO-FAQ.pdf (Frequently Asked Questions)
VO-Troubleshooting.pdf (Troubleshooting Instructions)
TLNote: The content of the PDF documents completely corresponds to the online VoiceObjects
Help, except of the Installation Guide, which is only available as a PDF document. The Tutorial
PDF corresponds to the online VoiceObjects Tutorial.
VoiceObjects 7
VoiceObjects 7
Explanation of E-010-
VoiceObjects specific 20070330-VO7
terms as well as general
Glossary VO-Glossary.pdf
technical terms related to
conversational
technology.
Overview on all resources E-018-
available with 20070330-VO7
How To Learn
VO-Help.pdf VoiceObjects that help
More
you to get started and for
ongoing support.
Detailed description of E-016-
Infostore, the logging 20070330-VO7
Infostore Guide VO-Infostore.pdf
component of
VoiceObjects Server.
Step-by-step guide E-003-
Installation through the installation of 20070330-VO7
VO-Installation.pdf
Guide the VoiceObjects
platform.
Detailed description of E-004-
how to configure each 20070330-VO7
Object VO- dialog object with
Reference ObjectReference.pdf VoiceObjects Desktop as
well as using
VoiceObjectsXML.
Overview of the Prime E-011-
Prime
VO-PrimeInsurance Insurance sample 20070330-VO7
Insurance
Primer.pdf application provided with
Primer
VoiceObjects.
Explanation of the E-020-
functionality of the 20070330-VO7
Storyboard Manager – a
Storyboard VO-Storyboard tool to view, modify, and
Manager Manager.pdf print the storyboard,
which provides a detailed
list of all prompts used in
a voice application.
Detailed feature E-019-
description of 20070330-VO7
VoiceObjects Studio – the
Studio Guide VO-Studio.pdf client-side application
development environment
through any Eclipse-
based IDE.
General guidelines for E-023-
Trouble-
VO-Trouble troubleshooting when 20070330-VO7
shooting
shooting.pdf working with
Instructions
VoiceObjects products.
VoiceObjects 7
VoiceObjects 7
Contacting VoiceObjects
About VoiceObjects
VoiceObjects is redefining over-the-phone customer service for global enterprises and carriers.
By delivering adaptive, cost-effective self-service phone portals, VoiceObjects enables
organizations to personalize each caller’s experience, to integrate phone self-service into
comprehensive customer experience strategies, and to manage the complexity of the world’s
most sophisticated phone applications. VoiceObjects’ award-winning phone application server
software is used by leading companies including Adobe, T-Mobile and Volkswagen Financial
Services and provides personalized customer service experiences to more than 500 million
callers each year.
VoiceObjects Product Family
VoiceObjects provides enterprises with an open and flexible infrastructure to efficiently create,
deploy, manage, and analyze self-service phone portals. The VoiceObjects product family
consists of the following products:
• VoiceObjects Server
VoiceObjects Server, a phone application server, is the central component within the
VoiceObjects product family for service execution and management. It enables highly
scalable, carrier-grade deployment and management of personalized, over-the-phone self-
service applications. VoiceObjects Server generates dialogs dynamically at call-time,
provides application execution environment for online updates and rollbacks, supports
applications over voice, video, text and Web channels, and enables enterprise integration
through Service Oriented Architecture (SOA). VoiceObjects Server supports all major voice
and text browsers, VXML-based IVRs for voice and USSD-based browsers for text-based
applications.
• VoiceObjects Analyzer
VoiceObjects Analyzer is the Web-based service analysis environment within the
VoiceObjects product family. VoiceObjects Analyzer interacts with data written to Infostore
in real time, providing an up-to-the-minute graphical view of the status of the system. Pre-
configured reports allow instant analysis of the most prevalent questions.
• VoiceObjects Desktop
VoiceObjects Desktop is the easy-to-use Web interface for creating, testing, deploying and
monitoring applications.
• VoiceObjects Studio
VoiceObjects Studio is the client-side application development environment through any
Eclipse-based IDE (Integrated Development Environment).
VoiceObjects Server supports all major operating systems, relational database systems, Web
application servers, and media platforms.
VoiceObjects is committed to open standards, such as VoiceXML, and is a member of the W3C
and the VoiceXML Forum.
VoiceObjects is headquartered in San Mateo, Calif. and has subsidiaries in Germany and the
United Kingdom.
For more information visit www.VoiceObjects.com.
VoiceObjects 7
VoiceObjects Offices
Corporate Headquarters:
Internet: www.voiceobjects.com
EMEA Headquarters:
Internet: www.voiceobjects.com
Internet: www.voiceobjects.com
VoiceObjects 7
Technical Support
The VoiceObjects Technical Support team is available to assist customers and partners with
software installation, sizing recommendations, troubleshooting, enhancement requests and
other forms of assistance in using VoiceObjects products.
You can contact the VoiceObjects Technical Support by visiting the support Web site on the
internet, contacting the support team by e-mail, or calling with your questions.
LNote: Refer to the terms of your software license agreement or support contract to determine
the level of support available to you.
E-mail: support@voiceobjects.com
Internet: www.voiceobjects.com/support
E-mail: support@voiceobjects.com
Internet: www.voiceobjects.com/support
VoiceObjects 7
Training
VoiceObjects training courses range from an overview on VoiceObjects Server to specialized
classes covering nearly all topics and levels with technical, design or sales focus. Additionally,
VoiceObjects Partners can get “VoiceObjects Certified”.
Training courses are held at a VoiceObjects University Training Center (see below) or at your
premises. Our standard training program is continually extended to include new offerings. In
addition, we are happy to quote customized courses to meet your individual requirements: at a
partner or customer site, or over the Internet.
Technical track:
• VoiceObjects Phone Application Server
(2 days)
• Development of Voice Applications for VoiceObjects Server
(3 days)
• Development of Text and Mobile Web Applications for VoiceObjects Server
(1 day)
• VoiceObjects Best Practices
(3 days)
• Infostore and VoiceObjects Analyzer
(2 days)
• VoiceObjects XDK
(1 day – upon request)
• Installation and Maintenance of VoiceObjects
(2 days)
• Operation of VoiceObjects
(1 day – upon request)
• VoiceObjects Release Update
(1 day – upon request)
Design track:
• User Interface Design for Phone Channels
(1 day – upon request)
• Phone User Interface Design for Text and Mobile Web Applications
(1 day)
• Phone User Interface Design for Voice Applications
(4 or 5 days)
VoiceObjects 7
Certification workshops:
• VoiceObjects Certified Application Developer (Voice)
(1 day)
• VoiceObjects Certified System Administrator
(1 day)
• VoiceObjects Certified Sales Engineer
(1 day)
L Note: For a current training schedule or registration please refer to our Web site or contact us
via e-mail.
E-mail: training-us@voiceobjects.com
Internet: www.voiceobjects.com/training
E-mail: training-emea@voiceobjects.com
Internet: www.voiceobjects.com/training
VoiceObjects 7
Documentation Feedback
If you have any comments on the VoiceObjects documentation you are welcome to send your
feedback to vo-documentation@voiceobjects.com.
Please include the following information with your feedback:
• Version number of your VoiceObjects software
• topic title for VoiceObjects Help
or
• book title, chapter title and page number for printed documentation
• your suggestion how to improve the documentation
LNote: This e-mail address is only for documentation feedback; you will not receive a reply.