Sie sind auf Seite 1von 148

Front cover

IBM WebSphere Voice Server for


Multiplatforms V5.1.1/V5.1.2
and Genesys Voice Platform: An
Interoperability Guide
Use Media Resource Control Protocol
(MRCP) for interoperability

Apply best practices to VoiceXML


development

Learn advanced integration


tips

James Chamberlain
Julie Breitfelder-Parker
William Harrison
Steve Castro

ibm.com/redbooks Redpaper
International Technical Support Organization

IBM WebSphere Voice Server V5.1.1/V5.1.2 and


Genesys Voice Platform: An Interoperability Guide

October 2005
Note: Before using this information and the product it supports, read the information in “Notices” on page v.

First Edition (October 2005)

This edition applies to Versions 5.1.1 and 5.1.2 of WebSphere Voice Server.

This document created or updated on October 28, 2005.

© Copyright International Business Machines Corporation 2005. All rights reserved.


Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents

Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
The team that wrote this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

Chapter 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 WebSphere Voice Server for Multiplatforms
V5.1.1 and V5.1.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 WebSphere Voice Server overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 WebSphere Voice Server V5.1.1/V5.1.2 features. . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Overview of WebSphere Application Server Network Deployment. . . . . . . . . . . . . 5
1.2.3 WebSphere Application Server with IBM HTTP Server . . . . . . . . . . . . . . . . . . . . . 5
1.2.4 WebSphere Edge Server Load Balancer component . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.5 WebSphere Deployment Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6 Tools and Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.7 Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Overview of Genesys Voice Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 High level architecture design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Typical Interactive Voice Response scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Chapter 2. Requirements, planning, and installation . . . . . . . . . . . . . . . . . . . . . . . . . . 17


2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Telephony and Interactive Voice Response Architecture . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Basic deployment topology without Genesys CTI. . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Advanced deployment topology without Genesys CTI . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 WebSphere Edge Server Load Balancer topology . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 WebSphere Voice Server V5.1.x requirements, planning, and installation . . . . . . . . . . 25
2.3.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 Genesys Voice Portal Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5 Genesys Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5.2 Installing the software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Chapter 3. Developing voice-enabled applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


3.1 What is VoiceXML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.1.1 Key benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 A brief overview of VoiceXML specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.1 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.2 Common attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 A simple TTS example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4 A simple ASR example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.5 Adding a new TTS application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.5.1 Deploy and test the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.6 Adding a new ASR application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

© Copyright IBM Corp. 2005. All rights reserved. iii


3.6.1 Deploy and test the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Chapter 4. Known issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95


4.1 Genesys Voice Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.1.1 Audio prefetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.1.2 SRGS grammar support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.1.3 Genesys Studio Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Chapter 5. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101


5.1 Where to find the log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2 Using the WebSphere Voice Server Administrative Console . . . . . . . . . . . . . . . . . . . 103
5.3 Using Tivoli Performance Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.4 Using the WebSphere Collector Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5 Using the Voice Toolkit Voice Trace Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.6 Installation troubleshooting help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.7 Configuration troubleshooting examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.7.1 Genesys Voice Communication Server Monitor . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.7.2 WebSphere Voice Server Genesys configuration examples . . . . . . . . . . . . . . . 116
5.8 ASR troubleshooting examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.8.1 WebSphere Voice Server troubleshooting No-Input and No-Match problems . . 118
5.8.2 WebSphere Voice Server troubleshooting audio quality problems . . . . . . . . . . . 120
5.8.3 WebSphere Voice Server other ASR troubleshooting tips . . . . . . . . . . . . . . . . . 121
5.9 TTS troubleshooting examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.9.1 WebSphere Voice Server TTS Voice Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.9.2 WebSphere Voice Server TTS mispronounces certain words . . . . . . . . . . . . . . 123
5.9.3 WebSphere Voice Server other TTS troubleshooting tips . . . . . . . . . . . . . . . . . 123

Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131


IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

iv IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Notices

This information was developed for products and services offered in the U.S.A.

IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that does
not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not give you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.

The following paragraph does not apply to the United Kingdom or any other country where such provisions
are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.

This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.

Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.

IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.

Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.

This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.

COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and
distribute these sample programs in any form without payment to IBM for the purposes of developing, using,
marketing, or distributing application programs conforming to IBM's application programming interfaces.

© Copyright IBM Corp. 2005. All rights reserved. v


Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:

AIX® IBM® Rational®


Balance® ibm.com® Redbooks (logo) ™
DB2® Illustra™ Redbooks™
Eserver® IntelliStation® Tivoli®
Eserver® Notes® WebSphere®
ETE™ Perform™

The following terms are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States
and other countries.

Intel (logo) Intel NetStructure™ Intel®


Intel Dialogic® Intel Xeon™

The following terms are trademarks of the Microsoft Corporation in the United States, other countries, or both:

Microsoft® Windows Server™


Microsoft Internet Explorer® Windows®

The following terms and all Java-based trademarks and logos are trademarks or registered trademarks of Sun
Microsystems, Inc. in the United States, other countries, or both.

J2EE™ JavaServer™ JSP™


JavaBeans™ Java™ JVM™
JavaServer Pages™ JDK™ Sun™

The following terms are trademarks of other companies:

Genesys is a trademark of Genesys in the United States, other counties, or both.

Gordon Kapes is a trademark of Gordon Kapes, Inc. in the United States, other countries, or both.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.

Red Hat is a trademark of Red Hat in the United States, other countries, or both.

SUSE is a trademark of Novell in the United States, other countries, or both.

The following is a list of W3C terms claimed as a trademark or generic term by MIT, ERCIM, and/or Keio on behalf of the
W3C:
򐂰 W3C®, World Wide Web Consortium (registered in numerous countries), HTML (generic), HyperText Markup Language
򐂰 HTML (generic), HyperText Markup Language
򐂰 HTTP (generic), Hypertext Transfer Protocol
򐂰 XML (generic), Extensible Markup Language
򐂰 XHTML (generic), The Extensible HyperText Markup Language
򐂰 XSL (generic), Extensible Stylesheet Language

Other company, product, and service names may be trademarks or service marks of others.

vi IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Preface

Next generation IBM® WebSphere® Voice Server V5.1.1 and V5.1.2 products leverage the
power of IBM WebSphere Application Server, IBM's flagship product and leader in the
industry. WebSphere Voice Server V5.1 is the first release of a novel (patent pending)
architecture for speech servers, based on WebSphere Application Server. No other speech
server in the industry can match the on demand capabilities that WebSphere Voice Server is
able to provide as a result of its WebSphere Application Server base. Add the power of the
Java™ 2 Enterprise Edition (J2EE™) platform including the runtime, services, and container
management, and the result is a powerful speech server that integrates into existing IT
infrastructures. Having voice on the same network as visual and data applications greatly
reduces the initial speech investment. It simplifies the management and achieves improved
integration with customer content, a feat that no other speech vendor can match.

The Genesys Voice Platform: Enterprise Edition (GVP:EE) V6.5.5 software product delivers
next generation voice processing that meets advanced call-routing and voice self-service
needs for a contact center enterprise. It utilizes standard Intel® NetStructure™ DM3
architecture hardware for telephony support and a VoiceXML V2.0 compliant browser for
application programming interfaces.

IBM’s WebSphere Voice Server V5.1.1/V5.1.2 and the Genesys Voice Platform products
support full open standards using the following:
򐂰 Speech Recognition Grammar Specification (SRGS) V1.0 for grammars
򐂰 Semantic Interpretation for Speech Recognition (SISR) for semantic interpretation
򐂰 Speech Synthesis Markup Language (SSML) V1.0 for Text to Speech markup
򐂰 Voice eXtended Markup Language (VoiceXML) V2.0 for speech application markup
򐂰 Media Resource Control Protocol (MRCP) V1 Draft 4 for interoperability between the
Interactive Voice Response (IVR) and speech server

This IBM Redpaper is a guide for integrating IBM’s Websphere Voice Server V5.1.1/V5.1.2
and Genesys Voice Platform products.

In this paper, we consider best practices as applied to Voice User Interface (VUI) design. We
implement and deploy a simple voice-enabled application using the Genesys Voice Platform
and WebSphere Voice Server V5.1.1/V5.1.2.

We will demonstrate how to develop, test, and deploy a simple voice-enabled application
using the VoiceXML markup language. We also demonstrate the use of Automatic Speech
Recognition (ASR) and Text to Speech (TTS) voice technologies through examples.

With this paper, you can tailor and configure WebSphere Voice Server and the Genesys
Voice Platform in simple and complex topologies.

We assume you have a basic knowledge of Interactive Voice Response (IVR) systems and
voice-enablement of applications using VoiceXML, Genesys Voice Platform, WebSphere
Voice Server, and WebSphere Application Server.

© Copyright IBM Corp. 2005. All rights reserved. vii


The team that wrote this Redpaper
This Redpaper was produced by a team of specialists from around the world working at the
International Technical Support Organization, Raleigh Center.

James Chamberlain is a Senior Software Engineer and certified Senior IT


Specialist. He is a project leader at the ITSO, Raleigh Center. He has over 24
years of experience in the IT industry and specializes in pervasive computing
technologies. His areas of expertise include e-commerce, pervasive
computing, portals, AIX®, Linux®, and Java programming. He also
architects, designs, and develops solutions using J2EE, XML, Web Services,
and IBM software products including WebSphere and DB2®. Before joining
the ITSO, James worked for IBM Global Services on e-commerce system
development for IBM Business Partners. He majored in Computer Science at
Iowa State University.

Julie Breitfelder-Parker is the WebSphere Voice Server V5.1 Technical


Leader for the worldwide team responsible for new WebSphere Voice Server
product. She is a senior programmer with 20 years of software development
experience at IBM. Before joining the WebSphere Voice Server team, she
led IBM plant floor automation software products specializing in the
automotive and data collection industries.

William Harrison is a Principle Consultant with Genesys


Telecommunication Laboratories. He has 15 years of experience in the
Computer Telephony Integration field. He has been with Genesys Labs for
five years and has over 30 years experience in the Information Technology
and Call Center field. His area of expertise is the Genesys Voice Platform.

Steve Castro is a Senior Technical Consultant for Viecore, a leading


systems integration firm specializing in enterprise-level customer self-service
solutions. He has worked at Viecore for over four years. His areas of
expertise include IVR solution designs, creation and integration of IVR, CTI
and speech applications, and installation and configuration of IVR and CTI
solutions. One of his primary platforms of expertise is the Genesys Voice
Platform.

Thanks to the following people for their contributions to this project:

And a specials thanks to our support staff at the International Technical Support Organization,
(ITSO) Raleigh Center:
Margaret Ticknor
Jeanne Tucker
Tamikia Barrow
Linda Robinson

viii IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Thanks to our ITSO management:

Jere Cline
Manager, ITSO Raleigh Center

Here is a special thanks to our IBM Pervasive Computing sponsor:

Mary Fisher
IBM Boca Raton, Florida

Become a published author

Join us for a two- to six-week residency program! Help write an IBM Redbook dealing with
specific products or solutions, while getting hands-on experience with leading-edge
technologies. You'll team with IBM technical professionals, Business Partners and/or
customers.

Your efforts will help increase product acceptance and customer satisfaction. As a bonus,
you'll develop a network of contacts in IBM development labs, and increase your productivity
and marketability.

Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html

Comments welcome
Your comments are important to us!

We want our papers to be as helpful as possible. Send us your comments about this
Redpaper or other Redbooks™ in one of the following ways:
򐂰 Use the online Contact us review redbook form found at:
ibm.com/redbooks
򐂰 Send your comments in an e-mail to:
redbook@us.ibm.com
򐂰 Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HZ8 Building 662
P.O. Box 12195
Research Triangle Park, NC 27709-2195

Preface ix
x IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
1

Chapter 1. Introduction
This chapter provides an introduction to IBM's WebSphere Voice Server for Multiplatforms
V5.1.1 and V5.1.2 products with the Genesys Network Edition (formerly called Voice Web
Application Platform) V6.5.4 and Genesys Voice Platform (GVP) Enterprise Edition V6.5.5
products. These products interoperate based upon the Media Resource Control Protocol
(MRCP) Version 1 Draft 4 specification, the speech industry's standard interface for any
speech client such as a VoiceXML browser in any IVR to communicate with a speech server.
Both products strongly support open standards such as VoiceXML V2.0, Speech Recognition
Grammar Specification (SRGS) V1.0, Semantic Interpretation Speech Recognition (SISR)
V1.0, and Speech Synthesis Markup Language (SSML) V1.0. Open standards allow
customers to reach new levels of innovation while continuing to deliver the increased
productivity that is necessary to improve the bottom line.

This chapter contains the following:


򐂰 Overview of WebSphere Voice Server for Multiplatforms V5.1.x
򐂰 Overview of Genesys Voice Platform (GVP)

© Copyright IBM Corp. 2005. All rights reserved. 1


1.1 WebSphere Voice Server for Multiplatforms
V5.1.1 and V5.1.2
In this section we will examine a high level architecture and design of WebSphere Voice
Server.

1.2 WebSphere Voice Server overview


IBM’s WebSphere Voice Server V5.1.1/V5.1.2 leverages the power of WebSphere
Application Server. WebSphere Application Server is IBM's flagship product and leader in the
industry. WebSphere Voice Server V5.1 is the first release of a novel (patent pending)
architecture for speech servers, based on WebSphere Application Server. Combining IBM
WebSphere Voice Server and WebSphere Application Server means that speech customers
can take advantage of the on demand features of WebSphere Application Server, which is
critical to the nature of self service applications with speech. WebSphere Voice Server
features include:
򐂰 Load balancing
򐂰 Scalability
򐂰 Fail over
򐂰 Recovery
򐂰 Maintenance
򐂰 Serviceability
򐂰 Management
򐂰 Administration

No other speech server in the industry can match the on demand capabilities that WebSphere
Voice Server is able to provide as a result of its WebSphere Application Server base.
WebSphere Voice Server V5.1.1/V5.1.2 runs as a Java 2 Enterprise Edition (J2EE)
Application inside WebSphere Application Server and the result is a powerful speech server
that integrates into existing IT infrastructures. Having voice applications on the same network
as visual and data applications greatly reduces the initial speech investment. It simplifies the
management and achieves improved integration with customer content, which is a feat that
no other speech vendor can match.

1.2.1 WebSphere Voice Server V5.1.1/V5.1.2 features


This section is a brief highlight of the WebSphere Voice Server features. Refer to WebSphere
Voice Server for Multiplatforms V5.1.1/V5.1.2 Handbook, SG24-6447 for a comprehensive
description with examples and instructions for use.

Administrative ease of use


Ease of use is critical to today's speech applications. Speech solutions requiring minimal time
and skill required to get the speech system up and running (installation, configuration) will
save development dollars and allow for rapid Return-on-Investment (ROI). When problems
arise, System Administrators are expected to identify and resolve system problems quickly.
Down time must be minimized if system or application problems occur.

2 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
To administer, configure, and monitor WebSphere Voice Server you can use these tools:
򐂰 Administrative console
򐂰 Command line tools
򐂰 Scripts

The Administrative Console application is a Web application that runs on a WebSphere


Application Server for administration and monitoring of resources. On a WebSphere Voice
Server, an additional view is added to the Administrative Console to allow monitoring of
speech resources. System administrators can obtain at-a-glance knowledge of their system
by reviewing a single interface. It is also a centralized configuration tool. The console
provides administrators with :
򐂰 Views of overall system status and detailed status of Automatic Speech Recognition
(ASR) and Text to Speech (TTS) resources
򐂰 Views of general resources such as system status and free memory
򐂰 The capability to start and stop the voice servers
򐂰 Configurability of the ASR and TTS engines, preloaded grammars, lexicons, and installed
voices

Command line tools are provided to start and stop servers, add or remove servers to a cell,
and obtain the status of a server.

The WebSphere Application Server wsadmin tool provides the ability to execute scripts. You
can use the wsadmin tool to manage a WebSphere Voice Server installation, configuration,
application deployment, and server runtime operations. The WebSphere Application Server
supports Jacl, an alternate implementation of the interpreted script language Tool Command
Language (TCL), written in Java.

Open standards supported


Standards provide flexibility in creating speech architectures for clients. With open standards,
clients get a greater reuse of their existing infrastructure, thereby lowering the costs of
speech projects. The following standards are supported:
򐂰 Media Resource Control Protocol (MRCP) Version 1 Draft 4
򐂰 VoiceXML V2.0 and V2.1 specification
򐂰 VoiceXML V2.0 Built-in Grammar Types for all languages
򐂰 Speech Recognition Grammar Specification (SRGS) V1.0
For more information about SRGS, visit this URL:
http://www.w3.org/TR/2004/REC-speech-grammar-20040316
򐂰 Speech Synthesis Markup Language (SSML) V1.0
For more information about SSML, visit the following URL:
http://www.w3.org/TR/2004/REC-speech-synthesis-20040907
򐂰 Support for Semantic Interpretation for Speech Recognition (SISR) - W3C Working Draft
1, dated April 2003
For more information about SISR, visit the following URL:
http://www.w3.org/TR/2003/WD-semantic-interpretation-20030401

Supported operating systems


򐂰 Microsoft® Windows® Server™ 2003
򐂰 Red Hat Enterprise Linux WS/ES/AS V3.0 Update 1 for Intel platforms
򐂰 SUSE Linux Enterprise Server (SLES) V8.0 SP2a or SP3

Chapter 1. Introduction 3
For a list of all the currently supported platforms, visit this Web site:
http://www.ibm.com/software/pervasive/voice_server/system_requirements

Supported languages
WebSphere Voice Server V5.1.x supports several different languages. All languages have
been extensively tested with the GVP products. Table 1-1 lists the supported language ASR
and TTS / Concatenative Text to Speech (CTTS) available. WebSphere Voice Server uses the
third generation of CTTS.

Table 1-1 Supported languages for WebSphere Voice Server V5.1.x


Language WebSphere Voice Server WebSphere Voice Server
V5.1.1 (Linux) and V5.1.1 (Linux) and
V5.1.2 (Microsoft V5.1.2 (Microsoft
Windows Server 2003) Windows Server 2003)
ASR Support CTTS Support

Female
Male

United States (US) English Yes Yes


Yes

United Kingdom (UK) Yes Yes


English Yes

Australian (AUS) English Yes Yes


Yes
*Uses UK English CTTS

Canadian French Yes Yes


Yes

German Yes Yes


Yes

Latin American Spanish Yes Yes


Yes

Japanese Yes Yes


Yes

Simplified Chinese Yes Yes


No

Currently, WebSphere Voice Server V5.1.1 and V5.1.2 have the restriction of one language
for each WebSphere Voice Server machine. We will be updating the list of languages in the
future. Check the IBM WebSphere Voice Server Web site for the most recent list of supported
languages and the current status of the one language restriction.

Text to Speech (TTS)


WebSphere Voice Server fully supports the SSML standard. TTS supports lexicons for
specifying pronunciations. Large lexicon files can be preloaded at WebSphere Voice Server
startup and persisted for all phone calls. A voice can be specified by its voice-name attribute,
by gender, or can default to the specified voice on the WebSphere Voice Server machine per
language.

For each voice, the application developer can control the various prosody values.

Text to Speech supports embedded audio files within SSML text.

4 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Automatic Speech Recognition (ASR)
WebSphere Voice Server V5.1.1 and V5.1.2 provide robust speech recognition capabilities
with silence and speech detection support that reduce false barge-ins in noisy environments.
ASR supports the use of lexicons to provide high quality additional pronunciations.

IBM TTS Connector for Genesys GVP for WebSphere Voice Server
The Genesys Network Edition (formerly called Voice Web Application Platform) V6.5.4 and
Genesys Voice Platform Enterprise Edition V6.5.5 support Media Resource Control Protocol
(MRCP) for ASR only. Genesys provides the ability to write a custom dynamic link library to
support TTS. IBM provides a TTS Connector for Genesys CD-ROM that is included in its
WebSphere Voice Server base license media pack. This TTS Connector interfaces with
Genesys but uses the MRCP protocol for accessing the TTS engines on the WebSphere
Server machine.

1.2.2 Overview of WebSphere Application Server Network Deployment


WebSphere Voice Server provides customers with a portion of IBM WebSphere Application
Server Network Deployment Version V5.1.1. This is provided as part of the WebSphere Voice
Server base license with no additional charge. WebSphere Voice Server includes the
following WebSphere Application Server Network Deployment features:
򐂰 WebSphere Application Server with IBM HTTP Server
򐂰 WebSphere Edge Server Load Balancer component
򐂰 WebSphere Application Server Deployment Manager

1.2.3 WebSphere Application Server with IBM HTTP Server


WebSphere Voice Server uses WebSphere Application Server because its infrastructure
running as a J2EE Enterprise Application within WebSphere. WebSphere Voice Server
provides additional Administrator Console extensions that enable the following benefits:
򐂰 At-a-glance system monitoring
򐂰 Additional panels with changeable configurations
򐂰 Diagnosis and troubleshooting of problems
򐂰 Starting and stopping of WebSphere Voice Servers from a single Administrator’s Console
or with WebSphere Application Server's administrative scripting using Jacl.
This benefit means administrative tasks can be automated.

WebSphere Application Server allows system administrators to use the same administration
capabilities for the user interface or speech components of Tier 1, the customer application
server (e.g. VoiceXML) of Tier 2, and the customer content server (e.g. database) of Tier 3.

Some of the provided features are:


򐂰 Common Administrative Console
򐂰 Runtime Error, Warning and Informational Alarms
򐂰 Ability to enable trace and troubleshoot in real-time
򐂰 Detailed Runtime panel for seeing CPU and Memory, status of ASR and TTS engines and
their current allocation
򐂰 Detailed Configuration panel to easily change the most important WebSphere Voice
Server parameters.
򐂰 Ability to stop and restart WebSphere Voice Servers as needed

Chapter 1. Introduction 5
1.2.4 WebSphere Edge Server Load Balancer component
WebSphere Voice Server uses Load Balancer as the single point of access to your
WebSphere Voice Server farm from the IVR. Load Balancer provides on demand speech
technology. By on demand, we do not mean technology for the sake of technology. On
demand is about enabling you to participate in new ways of doing business so that your
company has the ability to respond to any customer demand, market opportunity or external
threat. In today's competitive business, a lack of system availability means a loss of customer
satisfaction, which in turn, impacts your revenue. Many companies operate 24x7, meaning
that the days of scheduled downtime where the application is not available are no longer
acceptable. If a critical application is not available, end users get frustrated and shop around.
Failover and recovery are no longer luxuries; they are now requirements.

The Load Balancer provides capabilities for continuous access to speech, encompassing not
only fail-over and recovery, but also full serviceability to take a machine gracefully out of
service with no impact to availability or loss of speech requests. The Load Balancer allows for
adding or removing WebSphere Voice Server machines on demand without changing the
configuration on the IVR or on any other machine except for the Load Balancer.

This provides horizontal scalability. The Load Balancer allows WebSphere Voice Server
machines with different operating systems or hardware capabilities to be assigned a weight
based upon the capabilities of each machine. For example, a quad processor machine can
be assigned a weight where it receives twice as much work as a dual processor machine.
The Load Balancer can be seamlessly added to your existing network in order to benefit from
all its features. Its easy to install and configure and it utilizes standard TCP/IP protocols.

The Load Balancer can also be configured for full high availability.

The Load Balancer software is lightweight and can run on a low-end machine.

The Load Balancer has a number of useful features:


򐂰 It detects whether a voice server is unavailable or inaccessible and does not continue to
send messages on to this server.
򐂰 It uses the number of new, active, and complete connections to determine which server
should receive the message.
򐂰 The addition of a ping advisor allows the Load Balancer to more accurately determine
when a server fails or recovers.
򐂰 If one voice server fails, or needs to be taken out of service, the other servers will take
over the load dynamically.
򐂰 Voice servers can be added dynamically to the Load Balancer providing the scalability to
increase the number of engines available. You only have to change the Load Balancer
configuration. No changes are required on the IVR or any other Voice server machine.
򐂰 A weight can be assigned to each voice server based upon its hardware capabilities. This
allows a cluster to be made up of a combination of high and low-end machines. For
example, a quad processor can be assigned a weight double that of a dual processor
machine.
򐂰 You can gracefully take a voice server out of service for maintenance without losing any
calls. The current work on that voice server completes normally. Because the weight is
zero, the Load Balancer no longer sends the machine any new work. When the active
number of connections is zero, the machine can be taken out of service.

6 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Restriction: The Genesys Voice Platform (GVP) V6.5.5 cannot be used with the
WebSphere Edge Server Load Balancer component for ASR. However, when using GVP
V6.5.5 with the IBM TTS Connector, the WebSphere Edge Server Load Balancer
component is fully supported for TTS.

1.2.5 WebSphere Deployment Manager


WebSphere Voice Server uses Deployment Manager to create a network of WebSphere
Voice Server systems that are configured to run as a group known as a cell. The Deployment
Manager capability provides centralized configuration, administration and workload
management for the entire cell. One computer is designated as the central deployment
manager machine to oversee the cell from a single Administrative Console. This
Administrative Console is an extension of the classic WebSphere Application Server console.

Each Deployment Manager manages one cell. When a voice server is added to this cell it is
referred to as a node. Each Deployment Manager can manage multiple nodes, which can be
installed on different operating systems.

Deployment Manager can run on a low end machine as it is lightweight. You can install
Deployment Manager on the same machine with Load Balancer.

The use of Deployment Manager in a voice server deployment provides a number of benefits
to the administrator. These include:
򐂰 Multiple WebSphere Voice Servers can be managed from a single location, either as a
group, or independently.
򐂰 Servers can be brought in or out of operation using the Administrative Console on the
Deployment Manager.
򐂰 Can see at a glance which servers are running and which are stopped.
򐂰 Support for Jacl scripts to automate common system administration functions.
򐂰 With WebSphere Voice Server console extensions, system administrators can see the
CPU, memory and active status of ASR and TTS engines on any WebSphere Voice
Server machine in the cell.

1.2.6 Tools and Components


WebSphere Voice Server includes the WebSphere Voice Toolkit. The Voice Toolkit V5.1 is
based upon Eclipse and integrates into WebSphere Studio Application Developer or
WebSphere Site Studio Developer V5. The Voice Toolkit V6 builds upon IBM's Rational®
Application Developer (RAD) or Rational Web Developer (RWD) and is available as a free
download. Both sets of products provide a single tooling strategy for voice and data
applications speeding the development and testing of grammars, lexicons, troubleshooting
and analysis. So customers can deploy their applications faster, using common tooling with
Eclipse. Application developers do not have to learn a new tool for each application type.

In particular, the Voice Toolkit provides GUI tools for:


򐂰 Editors for testing grammars using speech, text, or enumeration with the ability to listen to
each synthesized request and adjust the results.
򐂰 Grammar Development Editor that allows rapid SRGS XML or ABNF grammar
development
򐂰 Lexicon Development Editor for building pronunciations.
򐂰 Grammar Test Tool that allows for batch testing of grammars for incremental
improvement.

Chapter 1. Introduction 7
򐂰 Voice Server Trace Analysis tool for troubleshooting, analysis and tuning of your speech
applications available in the Voice Toolkit V6.

1.2.7 Interoperability
For WebSphere Voice Server Interoperability, refer to WebSphere Voice Server for
Multiplatforms V5.1.1/V5.1.2 Handbook, SG24-6447 or visit the following URL:
http://www.ibm.com/software/pervasive/voice_server/ivrgateway.html

1.3 Overview of Genesys Voice Platform


The Genesys Voice Platform is available in two versions; Genesys Voice Platform: Enterprise
Edition (GVP:EE) and Genesys Voice Platform: Network Edition (GVP:NE). The Enterprise
Edition is normally deployed in small to medium companies behind their corporate PBX. The
voice is connected to the local PBX using Intel NetStructure combined media board and
switch vendor specific Line-Side T-1 cards through T-1 CAS signaling (Robbed-bit). The
Network Edition is used in large Corporate operations that have offices located around the
country or world. This version would connect directly to the Long Distance Service Provider
Central Office (CO) with ISDN-PRI lines connected to the Intel NetStructure combined media
boards in the Genesys VCS servers.

Genesys Voice Platform (GVP) is an interactive voice response platform that uses VoiceXML
to deliver flexible, and standards-based, next-generation voice processing. VoiceXML offers
the flexibility to interface with any application server or speech server that supports VoiceXML
such as WebSphere Application Server and WebSphere Voice Server.

To integrate with WebSphere Voice Server, GVP uses the Media Resource Control Protocol
(MRCP) for Automatic Speech Recognition (ASR), and a custom Dynamic Link Library, IBM
TTS Connector, that was created with the Genesys TTS SDK for interfacing with third party
Text to Speech.

Note: GVP:EE V6.5.5 and GVP:NE V6.5.4 only support Microsoft Windows 2000 Server.
Because Microsoft Windows 2003 is not supported by GVP, GVP and WebSphere Voice
Server cannot be installed on the same machine. For more information about GVP and
WebSphere Voice Server requirements, see Chapter 2.

For more information about the Genesys Voice Platform, please visit the following URL:
http://www.genesyslab.com/contact_center/products/interactions/voice_platform.asp

Registered users can have access to technical documentation and support. For more
information about Genesys documentation and support, or to obtain a user logon, visit the
following URL:
http://genesyslab.com/support

1.3.1 High level architecture design


There are several ways Genesys Voice Platform can be architected with WebSphere Voice
Service, depending on the version of Genesys Voice Platform that you use.

Genesys Voice Platform:Network Edition V6.5.4


Genesys Voice Platform:Network Edition (GVP:NE) is for large-scale deployments. It
comprises several primary components:

8 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
򐂰 Voice Communication Server (VCS) handles TDM calls using Intel NetStructure DMV
cards, contains the VoiceXML 2.0 Browser to interpret VoiceXML applications, and ASR
support with MRCP. Each VCS machine can support a maximum of four trunks.
򐂰 Voice Web Provisioning System (VWPS) uses SQL databases and Sun™ ONE to store
server configuration, customer information, and application profiles. It also provisions
network servers and voice applications.
򐂰 Voice Web Manager (VWM) administers and manages all network functions. It has event
collection and event-processing software that produces call detail records for reporting
and billing.
򐂰 If you are using TTS, then the Text to Speech Advanced Interface Module (AIM) enables
the platform to incorporate third-party TTS technology for use in voice Web applications.
In our case, this allows GVP:NE to utilize the IBM TTS Connector to access the
WebSphere Voice Server TTS support.
򐂰 If you are using call transfer, then Genesys CTI Server(s)
򐂰 IBM WebSphere Application Server as the application and Web server hosting VoiceXML,
grammars, audio, and lexicon files
򐂰 A management workstation is simply a machine with a browser for accessing the various
URLs to configure, administer or monitor the system.

Genesys Voice Platform:Network Edition V6.5.4 using Computer Telephony Interface (CTI) is
illustrated in Figure 1-1 on page 10. The Genesys CTI server shown actually represents a
series of servers providing CTI functionality behind the premise PBX.

Chapter 1. Introduction 9
Figure 1-1 GVP:NE with CTI

Genesys Voice Platform: Network Edition without Computer Telephony Interface (CTI) is
illustrated in Figure 1-2 on page 11.

10 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 1-2 GVP:NE without CTI

Genesys Voice Platform: Enterprise Edition V6.5.5


Genesys Voice Platform: Enterprise Edition (GVP:EE) is for small scale deployments. It
comprises several primary components:
򐂰 Genesys Voice Platform (GVP) has the VCS and VPM functionality. It handles TDM calls
using Intel NetStructure DMV cards, contains the VoiceXML V2.0 Browser to interpret
VoiceXML applications, and provides support for application provisioning, ASR support
via MRCP and third party TTS dynamic link libraries (i.e. IBM TTS Connector). Each GVP
machine can support a maximum of four trunks.
򐂰 If you are using call transfer, then you need Genesys CTI Servers.
򐂰 IBM WebSphere Application Server as the application and Web server hosting VoiceXML,
grammars, audio, and lexicon files.
򐂰 A management workstation is simply a machine with a browser for accessing the various
URLs to configure, administer or monitor the system.

Genesys Voice Platform: Enterprise Edition using Computer Telephony Interface (CTI) is
illustrated in Figure 1-3 on page 12. The Genesys CTI server shown actually represents a
series of servers providing CTI functionality behind the premise switch.

Chapter 1. Introduction 11
Figure 1-3 GVP:EE with CTI

Genesys Voice Platform: Enterprise Edition without Computer Telephony Interface (CTI) is
illustrated in Figure 1-4 on page 13.

12 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 1-4 GVP:EE without CTI

1.3.1.1 Redpaper Lab environment


The lab environment used for this Redpaper is illustrated in Figure 1-5 on page 14. The
Gordon Kapes System 930 Telephony Simulator replaces the PBX and is configured as a
DMS 100 ISDN-PRI to emulate a Central Office switch.

Chapter 1. Introduction 13
Figure 1-5 GVP:EE as configured for this Redpaper

1.3.2 Typical Interactive Voice Response scenario


Typically, business applications that are enabled for voice are either inquiry or
transaction-based functions or applications.

For example, a customer can invoke a query application to retrieve information from a
database. Account balances, weather reports, movie listings, or stock quotes can now be
obtained from a customer contact center’s IVR. These are common examples of query
applications that can be enabled for voice. Usually, the application guides the customer
through a series of menus and forms aided by instructions, prompts, and choices. The
application uses either prerecorded audio files or Text to Speech (TTS), a technology that
synthesizes spoken language from text. The customer can use spoken words to make
selections and provide information. When the database records are retrieved, the system
presents the information by playing back audio files.

On the other hand, a transaction application is used for the purpose of performing specific
tasks. Transferring funds between accounts and the buying and selling of stocks are popular
examples of this type of application. In the above scenarios, the application starts by
authenticating the customer through an identification process, and then uses a series of
windows to guide the customer to enter the required data such as the source and target
accounts for a funds transfer transaction. The system plays instructions, prompts, and

14 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
available options using prerecorded audio files or by performing Text to Speech. The
customer responds using spoken commands. When the required data is collected, the
system performs the transaction and returns the result.

This functionality is achieved through the use of VoiceXML applications. In Genesys Voice
Platform, VoiceXML applications can be developed and deployed using Genesys Studio.

To develop and tune your grammars, use the Voice Toolkit for WebSphere Studio. The Voice
Toolkit for WebSphere Studio has critical grammar and lexicon development utilities as well
as a grammar test tool for rapid grammar development.

Chapter 1. Introduction 15
16 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
2

Chapter 2. Requirements, planning, and


installation
In this chapter we look at the hardware and software requirements to deploy a simple
Genesys-WebSphere Voice Server configuration and a complex configuration. The examples
shown and described are not intended, nor should they be used, as a requirements diagram
for your particular deployment. Before deploying any solution, you need to consult with your
user community, IT department, software vendors, and developers to create the architecture
that best meets your needs. After that, the amount of hardware and the hardware
configuration (RAM, disk storage, number of processors, and so on) can be purchased.

© Copyright IBM Corp. 2005. All rights reserved. 17


2.1 Overview
Proper sizing of an IVR system requires some time and a lot of leg work. There is no out of
the box solution that will solve any customer’s needs for a Voice Self Service system.
Because your customer’s first question will be What is my return on investment?, it is good
practice to follow this plan:
1. First you must determine what your needs are.
2. Determine which IVR system will meet those needs.
3. Get quotes from vendors.
4. Convince the finance group of the need to expend the funds.

When you have met these challenges, you can then purchase the hardware and software.
After that, the fun begins. In this chapter, we explore a couple of different architectures,
discuss the software that we install, and then the installation and configuration of that
software.

In planning a voice system using WebSphere Voice Server speech technologies, you must
determine:
򐂰 The number of ports that need to be supported
򐂰 The languages required
򐂰 The Genesys products required and the appropriate configuration
This includes the number of gateway systems you require to connect to WebSphere Voice
Server.
򐂰 The number of Automatic Speech Recognition (ASR) engines and how many will be active
at any one time
򐂰 The number of Concatenative Text to Speech (CTTS) engines, and how many will be
active at any one time
򐂰 The number of machines you require, as a function of the number and speed of the
processors available in each machine
򐂰 The type of LAN necessary

Note: It is not possible to give definitive information about exactly what size or number of
machines you will need for your Genesys and WebSphere Voice Server system in this
documentation. Only approximate guidelines can be provided, and it is essential that any
implementation be tested with realistic call volumes before it is put into production.

For Genesys guidance about capacity planning for your specific configuration, contact your
Genesys representative.

For WebSphere Voice Server guidance about capacity planning for your specific
configuration, contact your IBM representative.

2.2 Telephony and Interactive Voice Response Architecture


In this section, we look at sample architectures for basic and advanced deployments. These
architectures are based on the IVR being located in the corporate facility behind the premise
PBX.

Genesys GVP:EE V6.5.5 supports the Intel NetStructure combined media boards shown in
Table 2-1 on page 19. Multiple media boards are also supported up to a maximum of 96 ports

18 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
using T-1 for a single IVR or up to a maximum of 120 ports using E-1 for a single IVR. Also
available are the JCT 24 and 48 port Intel Dialogic cards which can only be used behind the
switch as they do not support ISDN line signaling. Please review the Genesys Voice Platform
Enterprise Edition Deployment V6.5 Deployment Guide for more information about these
boards.

Table 2-1 Intel NetStructure combined media boards supported by Genesys GVP:EE V6.5.5
Product Ports Network Interface Signaling

DM/V480A-2T1 48 voice + 60 2 T-1 Digital


conferencing ISDN PRI
CAS
(robbed bit)

DM/V960A-4T1 96 4 T-1 Digital


ISDN PRI
CAS
(robbed bit)

DM/V600A-2E1 60 voice + 60 2 E-1 Digital


conferencing ISDN PRI
CAS
(R2MF)

DM/V1200A-4E1 120 4 E-1 Digital


ISDN PRI
CAS
(R2MF)

D/240JCT-T1 Up to 24 1 T-1 Digital


ISDN PRI
CAS
(robbed bit)

D/300JCT-E1 Up to 30 1 E-1 Digital


ISDN PRI
CAS
(R2MF)

D/480JCT-1T1 Up to 24 1 T-1 Digital


ISDN PRI
CAS
(robbed bit)

D/480JCT-2T1 Up to 48 2 T-1 Digital


ISDN PRI
CAS
(robbed bit)

D/600JCT-1E1 Up to 30 1 E-1 Digital


ISDN PRI
CAS
(R2MF)

D/600JCT-2E1 Up to 60 2 E-1 Digital


ISDN PRI
CAS
(R2MF)

Chapter 2. Requirements, planning, and installation 19


To learn more information about Intel’s media processing boards, visit Intel’s media
processing boards Web page:
http://www.intel.com/design/network/products/telecom/boards/mediaprocessing.htm

2.2.1 Basic deployment topology without Genesys CTI


Figure 2-1 shows the minimum requirement to deploy a solution using Genesys Voice
Platform:Enterprise Edition (GVP:EE) V6.5.5, WebSphere Voice Server and WebSphere
Application Server. This environment can support a maximum of four trunks of telephony.
There is no Computer Telephone Integration (CTI) in this deployment.
򐂰 The GVP EE machine comprises the VCS and VPM functionality. This machine has Intel
NetStructure combined media boards installed for telephony support. The VoiceXML V2.0
Browser executes on this machine and acts as a MRCP Client for ASR. The IBM TTS
Connector is installed and acts as the MRCP client for TTS.
򐂰 The IBM WebSphere Voice Server is a MRCP server handling the ASR and TTS
requests. The ASR and TTS engines execute on this machine.
򐂰 The WebSphere Application Server along with IBM HTTP Server are the application and
Web server for the deployment. The VoiceXML applications, grammars, lexicons, and
audio files are hosted on this machine.

Figure 2-1 Basic deployment solution using GVP:EE

2.2.2 Advanced deployment topology without Genesys CTI


Figure 2-2 on page 22 shows a more advanced environment. This deployment using
Genesys Voice Platform:Network Edition V6.5.4 would support as many IVR ports as

20 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
required which would determine the number of VCS servers required. Each GVP VCS server
can support up to four IVR trunks, however, you would need to size the server accordingly.
This would depend upon the application that is being developed and whether it requires Text
to Speech (TTS) and Automatic Speech Recognition (ASR). Each application has its own
usage requirements that need to be determined during the deployment stage.

The IBM WebSphere Application Server supports the application requirements or back-end
business logic. The IBM HTTP Server (installed as part of WebSphere Application Server)
servers as the Web server hosting the VoiceXML application, grammars, lexicons and audio
files. IBM WebSphere Application Server powers IT infrastructures with more demanding
loads and is the industry leader.

Each Genesys Voice Platform allows a single MRCP ASR URL so that it points to a single
WebSphere Voice Server machine. This can be configured using the GVP Configurator,
which is discussed in “Configuring Genesys GVP” on page 35.

Genesys GVP:EE and GVP:NE are not capable of supporting the IBM WebSphere Voice
Server using ASR behind the Load Balancer. However, there are several options. If you have
built failover and redundancy into your PBX, then each VCS will be configured to use a single
WebSphere Voice Server machine. You can use a one-to-one relationship between the
Genesys VCS machine and the WebSphere Voice Server machine. You can also have
several Genesys VCS machines using a single WebSphere Voice Server assuming that
WebSphere Voice Server machine’s CPU and memory support it. For example, you may
have a single quad 3.2 GHz WebSphere Voice Server machine, that handles the load of two
VCS four trunk systems.

However, when using GVP:EE V6.5.5 and GVP:NE V6.5.4 with the IBM TTS Connector, the
Load Balancer is fully supported for TTS.

Because the Deployment Manager and Load Balancer require low-end machines, we have
installed them together on a single dual processor machine. The Deployment Manager
enables easy administration of the WebSphere Voice Server machines. The Load Balancer
insures that TTS requests get load-balanced among all of the WebSphere Voice Server
machines and provides a measure of failover, recovery and serviceability to our environment.

Chapter 2. Requirements, planning, and installation 21


Figure 2-2 Advanced deployment solution

The IBM Web Voice Service TTS servers can be behind a load balancer. The number of
needed WebSphere Voice Servers has to be determined based on an application’s active
duty cycle for TTS, the TTS language and voices active, and the percentage of dynamic TTS
text.

Using Genesys caching options


By default when the GVP software is installed, the caching option is set to CnInet as shown in
Figure 2-3 on page 23. This caches the static VoiceXML pages but not the audio files. To
support caching of audio files and jsp pages you use the WinInet caching option. To enable
this feature, deselect the CnInet box and select the On option in the WinInet drop-down
menu. All cached file will then be stored in the C:\Documents and Settings\Default
User\Local Settings\Temporary Internet Files\Content.IE5 folder on the local VCS
Machine.

After any changes are made to the configuration screen, you must save the configuration,
stop, and restart the GVP Watchdog service.

22 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 2-3 VCS Configuration

IBM HTTP Server as Web server


The IBM WebSphere Application Server machine also has IBM HTTP Server installed by
default. The IBM HTTP Server can be used to host VoiceXML, audio, grammars, and lexicon
files. You need to set the MIME types of these files on the IBM HTTP Server. Please refer to
WebSphere Voice Server for Multiplatforms V5.1.1/V5.1.2 Handbook, SG24-6447 for further
instructions.

If you use the IBM HTTP Server cache, then the caching options within the Genesys GVP
must be turned off. To do this, select CnInet and select the Off option in the WinInet menu.
Save the configuration, stop, and restart the GVP Watchdog service.

2.2.3 WebSphere Edge Server Load Balancer topology


This section addresses the scalability and high availability features made available through
the WebSphere Edge Server Load Balancer component.

Chapter 2. Requirements, planning, and installation 23


Scalability
This is the ability to increase or decrease size or capability in cost-effective increments with
minimal impact on the unit cost of business and the procurement of additional services. It also
pertains to the capability of a system to adapt readily to a significant fluctuation in volume or
demand.

Vertical Scaling
WebSphere Application Server supports vertical scaling or the ability to have multiple
application server instances running on a single machine. However, the performance of a
single WebSphere Application Server is so optimized that this is almost never required.
Many extremely large Web-based businesses run with only a single instance of the
application server running on a single machine. WebSphere Voice Server does not support
vertical scaling given that it is not needed to support a large number of ASR and TTS engines
running on a single machine.

Horizontal scaling
As explained in the WebSphere Voice Server section, horizontal scaling is achieved by
seamlessly adding addition WebSphere Voice Server machines as demand grows. Each
machine is assigned a unique weight based upon its hardware capabilities.

For GVP:NE, additional VCS systems can be added as more ports are required. Each VCS
machine can handle a maximum of four trunks.

Genesys products’ high availability


Genesys Voice Portal:Enterprise Edition and Network Edition do not support high availability
(HA) for the Voice Communication Server because the VCS is hard wired to the telephone
interface. The Voice Communication Server can be down while the Intel NetStructure
combined media board in the VCS server is still up so the switch will have no way to detect
that the VCS is not operational. However, you could program the switch or central office to
redirect calls on ring-no-answer.

Genesys products' ASR MRCP high availability


If you require failover and recovery at the VCS level, then configure multiple ASR MRCP
servers for each of your POP gateways. All requests are routed to the first ASR MRCP server
in the list. If the first ASR MRCP server is unavailable, VCS automatically routes requests to
the next ASR MRCP server in the list. When the first ASR MRCP server is available, VCS will
automatically route requests back to it.

For GVP:NE, this is done through the Voice Web Provisioning System (VWPS). The GVP:EE
Configurator does not support this functionality in the base product.

WebSphere Voice Server TTS high availability


For Text to Speech, to achieve high availability, you can have a Load Balancer in front of the
WebSphere Voice Servers running TTS. The IBM TTS Connector is configured to point to the
cluster address of the Load Balancer for TTS requests. So the high availability is not achieved
through Genesys, but through the load balancer.

Load Balancer: simple high availability


The Load Balancer high availability feature involves the use of a second Load Balancer
machine. The first Load Balancer machine performs load balancing for all the client IBM TTS
Connector traffic as it does in a single Load Balancer configuration. The second Load
Balancer machine monitors the health (status) of the first machine, and takes over the task of
load balancing if it detects that the first Load Balancer machine has failed.

24 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Each of the two machines is assigned a specific role, either primary or backup. The primary
machine sends connection data to the backup machine on an ongoing basis. While the
primary is active (load balancing), the backup is in a standby state, continually updated and
ready to take over, if necessary.

Load Balancer with mutual high availability


The Load Balancer has a mutual high availability feature which involves the use of two Load
Balancer machines. Both machines actively perform load balancing of client IBM TTS
Connector traffic, and both machines provide backup for each other. In a simple high
availability configuration, only one machine performs load balancing. In a mutual high
availability configuration, both machines load balance a portion of the client IBM TTS
Connector traffic.

2.3 WebSphere Voice Server V5.1.x requirements, planning,


and installation
This section presents the hardware and software requirements that must be met in order to
install WebSphere Voice Server V5.1.1 or V5.1.2 in a Microsoft Windows or Linux
environment.

2.3.1 Hardware
Always refer to the WebSphere Voice Server Information Center for the latest hardware
requirements.

Requirements
Supported hardware for WebSphere Voice Server include machines that meet the minimum
hardware criteria defined in Table 2-2 and Table 2-3.

Table 2-2 Minimum supported hardware


Processor Memory (RAM) Free Disk Space Network Other

Intel Pentium® III processor, 1 GHz or 2 GB 2 GB TCP/IP CD


equivalent processor

Table 2-3 Text to Speech (TTS) server disk space requirements by voice
Language WebSphere Voice Server WebSphere Voice Server
(Male voice) (Female/2nd voice)

Australian English 286 MB 264 MB

French Canadian 177 MB 292 MB

German 287 MB 339 MB

Japanese 63 MB 322 MB

Latin American Spanish 200 MB 360 MB

Simplified Chinese n/a 253 MB

UK English 286 MB 264/276 MB

US English 275 MB 317/321 MB

Chapter 2. Requirements, planning, and installation 25


2.3.1.1 Planning the appropriate LAN configuration
To handle the transport of voice data and control information between all the GVP and
WebSphere Voice Server machines, place all these machines on a dedicated local area
network (LAN). The minimum requirement is for a 100 Mbps full duplex Ethernet network, or
equivalent. The LAN technology used must be appropriate for the number of channels and
machines.

It is difficult to be precise in estimating the saturation point for a specific configuration. If you
have questions about these issues, contact your IBM or Genesys representative who can
give you advice on capacity planning.

2.3.2 Software
The following sections discuss the software requirements.

Operating system requirements


WebSphere Voice Server V5.1.1 and V5.1.2 support the following operating systems:
򐂰 Red Hat Enterprise Linux WS/ES/AS V3.0 Update 1 only (2.4 Kernel) for Intel Pentium III
processor (1 GHz or higher) or equivalent hardware
򐂰 SUSE LINUX Enterprise Server 8 V1.0, powered by United Linux V8.0 (SLES-8) with
Service Pack 2a or 3 for Intel Pentium III processor (1 GHz or higher) or equivalent
hardware
򐂰 Windows Server 2003 Enterprise or Standard editions

Always refer to the WebSphere Voice Server Information Center for the latest software
requirements.

Installation
Refer to the WebSphere Voice Server for Multiplatforms V5.1.1/V5.1.2 Handbook,
SG24-6447 for step-by-step instructions, including screenshots for each operating system
supported by WebSphere Voice Server.

WebSphere Voice Server also provides a Getting started with IBM WebSphere Voice Server
for Multiplatforms Guide on the base CD-ROM. This provides a checklist approach for getting
the product installed quickly. Additional installation instructions are also available in the
WebSphere Voice Server Information Center.

Configuring WebSphere Voice Server for use with Genesys


All Genesys customers will need to run a configuration script so that WebSphere Voice
Server is configured correctly for the GVP:EE and GVP:NE products.

Use these steps to configure each WebSphere Voice Server for use with Genesys.
1. Ensure that WebSphere Application Server is running.
2. Change the directory to the WebSphere Application Server installation path, such as
/opt/WebSphere/AppServer/bin (the Linux default installation directory) or C:/program
files/WebSphere/AppServer/bin (the Windows default installation directory).
3. Run the ./configureGenesys.sh file for Linux, or the configureGenesys.bat file for
Windows platforms.
4. Stop and then restart WebSphere Application Server.

Example 2-1 on page 27 shows the output from running the script on a Linux system:

26 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Example 2-1 Running configureGenssy.sh on a Linux WebSphere Voice Server machine
[root@wvsdev112 bin]# cd /opt/WebSphere/AppServer/bin
[root@wvsdev112 bin]# ./configureGenesys.sh
WASX7209I: Connected to process "server1" on node wvsdev112 using SOAP connector; The type
of process is: UnManagedProcess
------------------------------------------------------------------------
- configureGenesys - updates Voice Server config for Genesys platform -
------------------------------------------------------------------------
configureGenesysI: Found WVSAdminConfig service.
configureGenesysI: Updating configuration values...
configureGenesysI: Update completed.
configureGenesysI: Done.
[root@wvsdev112 bin]#

Tuning WebSphere Voice Server for use with Genesys


The best and latest resource regarding tuning WebSphere Voice Server is in the WebSphere
Voice Server Information Center under Tuning.

2.4 Genesys Voice Portal Platform


Both GVP:NE and GVP:EE versions use the same standards-based VoiceXML applications,
however the hardware and software prerequisites are very different. The basic components
are required for each machine, but the number of servers required have to be sized based on
the number of IVR ports required and call traffic.

2.4.1 Hardware
In this section, we review the hardware requirements and peripheral equipment needed to
interface with the phone switch.

Requirements
The server hardware is the same for both the GVP:EE and the GVP:NE versions. Because
there are many makes of machines, refer to the Genesys GVP Deployment Guide for
guidance. If the make of machine you wish to use is not listed contact the Genesys Tech
Support center, give them the information about the hardware and they can get verification as
to its compatibility.

To process the voice portion of the call, an Intel NetStructure combined media board is
required. Refer to Table 2-1 on page 19 for the list of supported boards.

All cards ending in E1 are European Protocols and the cards ending in T1 are for the North
American Protocol. More information about the supported Intel NetStructure combined media
boards can be found in the Genesys Voice Platform Enterprise Edition 6.5 Deployment
Guide.

2.4.2 Software
In this section, we look at the software requirements and the installation procedures for
installing an IVR solution using Genesys GVP and IBM WebSphere Voice Server.

Be aware that WebSphere Voice Server requires GVP:EE V6.5.5 to be at Release Number
6.5.500.73 or higher. For GVP:NE V6.5.4, IBM tested with the following levels in Table 2-4 on
page 28.

Chapter 2. Requirements, planning, and installation 27


Table 2-4 GVP: NE V6.5.4 Component levels
GVP:NE Component Version/Release Level

Voice Communication Server (VCS) Version 6.5.410.34

Voice Web Text to Speech (TTS AIM) Version 6.5.400.62


Voice Web Provisioning System (VWPS) Version 6.5.400.22
Voice Web Manager Version 6.5.400.72

Requirements
The basic operating system software is the same for both the EE and NE versions.
򐂰 Microsoft Windows 2000 Server with Service Pack 4
򐂰 Microsoft Internet Explorer® V6.0 SP1
򐂰 Microsoft XML Parser V4 SP2
This product can be downloaded from http://www.microsoft.com/downloads
򐂰 Windows 2000 components:
– Microsoft Information Server: Common Files
– Microsoft Information Server: Internet Information Server Snap-in
– Microsoft Information Server: World Wide Web Server
– Management and Monitoring Tools: Simple Network Management Protocol
Depending upon your internal IT department policies, you should apply any security
patches for Microsoft Windows 2000 released after Service Pack 4. Additionally, there
might be special requirements for other software outside of the Genesys GVP
requirements that your IT department can provide.
򐂰 Intel Dialogic Driver Software and Global Call Protocols
The software for the Intel NetStructure combined media boards is provided by Genesys on
the GVP Third Party Intel Dialogic Installation CD. Use this CD to install the drivers
because it will install all drivers and Point Releases required.
򐂰 WinZip compatible utility
A WinZip compatible utility is required for the installation of GVP third party software.

GVP:EE optional software:


򐂰 Microsoft SQL Server 2000 SP1
This is only required if you are planning on installing the Voice Application Reporter
component.

GVP:NE additional software requirements:


򐂰 Microsoft Data Access Component 2.7
򐂰 URLScan Filter for IIS Setup
򐂰 Sun ONE Directory Server V5.1 SP2
򐂰 Microsoft SQL Server 2000 Enterprise Edition SP3
򐂰 MySql (only if implementing TTS)

Always check the latest Deployment Guide and Release Notes for the version you are
installing because software requirements change as new releases or maintenance release
are introduced.

28 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Installing the Intel Dialogic Drivers

Important: All prerequisites must be installed prior to beginning the Intel Dialogic® and
GVP software. Antivirus software must be disabled for the installation of Intel Dialogic and
GVP software. The Windows user must have full local administrator rights before installing
Intel Dialogic and GVP software.

Note: It is good practice to install the Intel NetStructure hardware after you have
completed installing the Intel Dialogic software. The reason for this is that the drivers are
not yet available on the hard drive. If you install the Intel NetStructure hardware before you
install the software, then you continue to see the found new hardware wizard as shown
Figure 2-4 on page 30. If this is the case, always cancel the found new hardware wizard
until you have completed the installation of the Intel Dialogic software.

The installation of the Intel Dialogic drivers can be found on the GVP Third Party Intel Dialogic
CD. To ensure proper installation, you must invoke the following batch program:
\Geneys\Dialogic\InstallDialogic.bat

This batch program installs all the necessary Intel Dialogic software:
򐂰 Intel Dialogic System Software Release SR5.1.1
򐂰 Intel Dialogic Service Pack 1
򐂰 Intel Dialogic Global Call Protocols V4.0
򐂰 Intel Dialogic PTRs 28779, 31128 and 31164

Important: This install performs several automated reboots. It is important that the Intel
Dialogic install is done on the console for this reason. Remote installations cause issues
with the installation of Intel Dialogic software.

Note: Approximately five reboots are performed automatically during the Intel Dialogic
software installation. However, the second installation for the Intel Dialogic Service Pack 1
gives you prompts. Accept all the defaults and when prompted to reboot the server, click
OK.

After the Intel Dialogic Drivers complete the installation cycle, then you can install your Intel
NetStructure combined media board in the server according to the hardware instructions
provided with it.

Here are the installation steps:


1. When the server boots up for the first time after you install the card, Microsoft Windows
2000 runs the Found New Hardware Wizard as shown in Figure 2-4 on page 30. Click
Next to continue.

Chapter 2. Requirements, planning, and installation 29


Figure 2-4 Windows Found New Hardware Wizard
Screen shot reprinted by permission from Microsoft Corporation

2. Next the Found New Hardware Wizard prompts you for what you want the wizard to do as
shown in Figure 2-5. Select Search for a suitable driver for my device (recommended)
and click Next.

Figure 2-5 Windows Install Hardware Device Drivers


Screen shot reprinted by permission from Microsoft Corporation

30 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
3. Next you are asked where to search for the driver files as shown in Figure 2-6. Select
Specify a location and click Next.

Figure 2-6 Windows Locate Driver Files


Screen shot reprinted by permission from Microsoft Corporation

4. Next, you are prompted to insert the manufacturer’s installation disk into the driver. In the
Copy manufacturer’s files from: field, browse to C:\Program Files\DIALOGIC\DRVR and
select dlgcdm3_nt4.inf as shown in Figure 2-7. This is the INF file for the board we are
using in this IBM Redpaper, which is the Intel NetStructure DM/V480-2T1 combined media
board. Click OK to continue.

Figure 2-7 Windows prompt to insert manufacturer’s driver installation disk


Screen shot reprinted by permission from Microsoft Corporation

Chapter 2. Requirements, planning, and installation 31


5. You are now be prompted to install this driver as shown in Figure 2-8. Click Next to
continue.

Figure 2-8 Windows Driver Files Search Results


Screen shot reprinted by permission from Microsoft Corporation

6. Finally, you are shown the window that indicates Windows has finished installing the
software for this device as shown in Figure 2-9. Click Finish to complete the installation.

Figure 2-9 Window Hardware Driver Completion


Screen shot reprinted by permission from Microsoft Corporation

32 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
7. In the Windows Device Manager, you should see the DM3 device listed under Other
Devices as shown in Figure 2-10. Click the + if Other Devices is not already expanded.

Figure 2-10 Microsoft Windows Device Manager


Screen shot reprinted by permission from Microsoft Corporation

8. Run the initial configuration of the Intel NetStructure combined media board by opening
the Intel Dialogic Configuration manager. Select Start →Programs →Intel Dialogic
System Software →Configuration Manager - DCM. Select the local computer name
and click Connect as shown in Figure 2-11.

Figure 2-11 Intel Dialogic connection wizard

Chapter 2. Requirements, planning, and installation 33


9. You are prompted to assign a firmware file, as shown in Figure 2-12. For our example, we
chose ml2_dsa_dms.pcd because we setup as DMS with the Gordon Kapes System 930
Telephony Simulator. This firmware choice varies, based on your switch vendor or central
office.

Figure 2-12 Intel Dialogic firmware selection list

10.You are presented with the Intel Dialogic Configuration Manager window as shown in
Figure 2-13. This configuration manager has configuration utilities that can be run as
needed. To start the Intel Dialogic System Service, click your DM3 card with the illustrated
red dot. Click the green dot from the action palette to start the Intel Dialogic System
Service. You will see a status while the service is starting. When it has started, you will
see the card with a green dot as shown in Figure 2-14 on page 35.

Figure 2-13 DM3 Configurator with services stopped

34 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Note: The display name for the card comes from the configuration files and can be
misleading. In our examples in Figure 2-13 on page 34 and Figure 2-14 the display name
of the card is ML2_48 0. This can have naming conventions that will confuse the user
because it does not seem to apply to the actual card you are using. This is something that
can be overlooked because it is just a display name.

Figure 2-14 DM3 Configurator with services started

11.At this point the Intel Dialogic System Software has been installed, configured and is
running.

Installing Genesys GVP


The installation of the Genesys GVP software has been automated through the install
processes provided on the GVP CDs or downloaded software. Depending on which version
you are installing, more information can be found in the Genesys GVP Deployment Guide.
This document is available on the documentation CD or through the Genesys Technical
Support Web site at:
http://genesyslab.com/support

The documentation CD is also available for download from the Genesys FTP site.

Configuring Genesys GVP


1. After the installation process has be completed, it is now time to configure the VCS server
within the GVP environment. There two methods you can use, depending upon the
version that was installed. If the GVP:NE was installed, the configuration is done through

Chapter 2. Requirements, planning, and installation 35


the Voice Web Provisioning System (VWPS). If the GVP:EE was installed, configuration is
done through the GVP Configurator. In this document we will be working with the GVP:EE
edition. To start the GVP Configurator, run the Startup.exe from the GVP Installation CD.
Select GVP Configurator as shown in Figure 2-15 and click Next.

Figure 2-15 GVP Installation Wizard

2. GVP Configurator begins to run. When Configurator is ready to configure the Intel
NetStructure combined media board, you are prompted to redetect the boards if this is a
new installation or if the Intel NetStructure combined media board has changed since the
previous board detection as shown in Figure 2-16. For this example, because the board
was already previously configured, click No.

Figure 2-16 Intel NetStructure Board Dectection

3. You are presented with the GVP Configurator dialog window as shown in Figure 2-17 on
page 37. In Step 1, we set the VCS mode to in front of the switch because we are setup
with the Gordon Kapes System 930 Telephony simulator, which simulates being directly
connected to a central office and not a switch. Step 2 can be skipped because the Intel

36 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
NetStructure combined media board is already configured. In Step 3, set Enable TTS to
None because we are using the IBM Text to Speech connector. Set Enable ASR to MRCP
because we are using a MRCP server to talk to WebSphere Voice Server. In the MRCP
URL, enter the URL to the MRCP recognizer. This is in the format of:
rtsp://websphere_voice_server_hostname/media/recognizer
For our example. we set this to:
rtsp://9.42.171.78/media/recognizer
In the MRCP Port, enter the port that the MRCP server is listening to for client
connections. In our example, this port is 554. Step 4 can be left unconfigured because we
are not integrating with CTI in this example. If we were to integrate with the Genesys
Framework for CTI with GVP, this is where you would configure your parameters for the
Genesys I-Server. Click Apply Configuration and the configuration of the GVP Server is
complete.

Figure 2-17 GVP Configuration

Tip: There is an advantage if you use the WebSphere Voice Server host name instead of
its IP address. If you want to quickly change the WebSphere Voice Server that a GVP:NE
VCS or GVP:EE machine points to, you do not have to run the GVP Configurator again.
You can simply go to the etc/hosts file and remap the hostname to a different IP address.

If you have specified the IP address or wish to change the host name used, then you must
rerun the GVP Configuration, stop Watchdog, and restart it.

Genesys and WebSphere Voice Server use port 554 by default. If you need to change this
port, here is how you do it in Genesys. Please refer to the WebSphere Voice Server
Information Center for an example script that changes the
com.ibm.voice.server.rtspbridge.port configuration parameter.

Chapter 2. Requirements, planning, and installation 37


Note: In these instructions, we assume that you are rerunning the configurator, not the
initial installation. If you are performing the initial installation, you see Not Configured for
your board in Step 2 of Figure 2-17 on page 37.

If this is the case, or if you need to change board settings, click Configure....You are
presented with the Intel NetStructure Board Configurator dialog window as shown in
Figure 2-18.

Figure 2-18 Intel NetStructure Board Configuration

4. Configure call type settings, protocol settings and switch related settings in this window.
For this example, we are using Bridging with inbound & outbound for the call type
settings. Our Signaling Protocol is T1-ISDN with Protocol Variation set to DMS. Our Trunk
Type is ISDN with Line Type/Coding set to ESF/B8ZS.
5. Click OK to continue. Click Apply Configuration and OK to finish the GVP configurator.

Installing TTS Connector for Genesys GVP for WebSphere Voice Server
The IBM TTS connector is a dynamic link library that allows Text to Speech processing with
GVP:NE VCS or GVP:EE. The IBM TTS Connector takes each request and sends an MRCP
SPEAK request to the WebSphere Voice Server machine (just like a MRCP Client that fully
supports TTS). This must be installed after all of the other GVP components have been
installed. The CD-ROM is provided by IBM and is included in the base media pack for
WebSphere Voice Server V5.1.1 or V5.1.2.
1. Figure 2-19 on page 39 through Figure 2-24 on page 41 demonstrate the installation of
the TTS Connector for Genesys GVP for WebSphere Voice Server.
Enter the information as it appears on those screens. When you have completed that
series, continue with Figure 2-25 on page 42.

38 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 2-19 IBM TTS Connector with WebSphere Voice Server installation initial screen

Figure 2-20 IBM TTS Connector for WebSphere Voice Server license agreement

Chapter 2. Requirements, planning, and installation 39


Figure 2-21 IBM TTS Connector Configuration screen

Figure 2-22 IBM TTS Connector installation summary screen

40 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 2-23 IBM TTS Connector installation of files completed

Figure 2-24 IBM TTS Connector start TTSREG configuration

Chapter 2. Requirements, planning, and installation 41


Figure 2-25 TTS Configuration GUI

2. Enter the following information:

Note: It is very important to reenter the same information provided on Figure 2-21 on
page 40. For example, specify in Figure 2-25 on page 42 the same language, and exact
number of female and male channels you entered in Figure 2-21 on page 40.

a. In the top of the window, enter the following information:


• TTS Name: IBM
• Language Code: en-AU (or the language you specified on Figure 2-21 on page 40
for the TTS Language)
• TTS Engine Language Code: en-AU (should already be set)
• DLL Name: IBMTextToSpeech.DLL
b. Select the Female Voice and enter the following information:
• Voice Name: female
• ServerAddress: (leave blank)
• ServerPort: (leave blank)
• Number of Channels: 24
This must match the line on Figure 2-21 on page 40 for the Number of Channels for
Female Voice.
c. Select the Male Voice and enter the following information:
• Voice Name: male
• ServerAddress: (leave blank)

42 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
• ServerPort: (leave blank)
• Number of Channels: 24
This must match the line on Figure 2-21 on page 40 for the Number of Channels for
Male Voice.
d. Click OK.
e. Click YES when asked if you really want to register.
f. Click Close.
3. Open the Services dialog box and select Start →Control Panel →Administration
Tools →Services.
a. Right-click the Watchdog service, and select Restart.
b. When restarting, the progress bar closes. Make a call to confirm that TTS works
properly.

Configuring the IBM TTS Connector for Genesys GVP for WebSphere
Voice Server
The TTS Connector configuration file, IBMTextToSpeech.ini, is located in the cn\config folder
in the Genesys installation directory. You can edit these parameters. Refer to the WebSphere
Voice Server Information Center for detailed information about these parameters. You have
to restart the Watchdog service for these changes to take effect.

2.5 Genesys Studio


Genesys provides on their GVP installation CD a Windows GUI application called Genesys
Studio. This application provides a quick and easy method of developing GVP voice
applications using VoiceXML. This interface allows the user to develop applications in Java
Server Pages (JSP™). It is not required that you be an accomplished VoiceXML or HTML
programmer, just that you are familiar with those concepts.

VoiceXML applications can be written using most any text editor, however there are some
special objects available within the Genesys Studio palettes that are not available in any
other form of documentation. These objects are known as TXML objects and are used
specifically within the Genesys environment.

Additional information about the installation and use of Genesys Studio can be found in the
Genesys Studio Developer’s Guide. This guide can be found on the Genesys Documentation
CD or at the Genesys Tech Support site.

2.5.1 Hardware
Genesys Studio can be run on any workstation capable of running Microsoft Windows XP
Professional with Service Pack 1, Microsoft Windows 2000 Server or Professional with
Service Pack 4.

2.5.2 Installing the software


Install the following software before installing Genesys Studio.

Requirements
You will need the following software loaded on the workstation and a workstation with the
following hardware requirements where you will install the Genesys Studio:

Chapter 2. Requirements, planning, and installation 43


򐂰 One of the following operating systems:
– Microsoft Windows XP Professional with Service Pack 1
– Microsoft Windows 2000 Server or Professional with Service Pack 4.
򐂰 Microsoft Internet Information Server (IIS)
򐂰 Microsoft Internet Explorer 6.0 SP 1 or higher
򐂰 Microsoft Data Access Components 2.6 or higher
򐂰 Microsoft XML Parser 4 Service Pack 2

Hardware requirements
You will need a workstation with an Intel Pentium III processor 1 GHz or higher and at least
256 MB of memory.

Installation
When you have installed the prerequisite software, put the Genesys GVP installation CD in
the CD drive and close the drive. The setup application automatically starts. If you are
installing from a downloaded version, go to the machine and directory where the GVP
software is located to run the setup application.

When the wizard starts, select Genesys Studio and continue. The wizard guides you
throughout the installation.

44 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
3

Chapter 3. Developing voice-enabled


applications
In this chapter we introduce the various components in designing, building, and deploying
VoiceXML applications through Genesys Studio. This chapter shows a simple TTS
application as well as a simple ASR application, and also briefly discusses VoiceXML and its
advantages.

© Copyright IBM Corp. 2005. All rights reserved. 45


3.1 What is VoiceXML?
Voice eXtensible Markup Language (VoiceXML) is a standards-based markup language that
integrates voice technology with Web-based development offering flexible, powerful, and
portable interactive voice response applications. Because VoiceXML is standards-based,
interactive voice response applications can be used across many vendor-specific platforms.

3.1.1 Key benefits


VoiceXML has all the capabilities of traditional proprietary interactive voice response
systems. Because VoiceXML is Web-based and runs on Web or application servers, it can be
tightly integrated with a variety of Web applications enabling greater flexibility. Because
VoiceXML is standards-based, it is highly portable and does not need to run on proprietary
systems. This means VoiceXML offers greater flexibility.

3.2 A brief overview of VoiceXML specifications


VoiceXML is a World Wide Web Consortium standard (W3C). Therefore the specifications of
VoiceXML are standardized and listed on the W3C Web site. For further information about the
VoiceXML V2.0 standard, visit the following URL:
http://www.w3.org/TR/voicexml20

3.2.1 Elements
VoiceXML V2.0 has an array of elements that can go into a VoiceXML document. For a list of
elements and their functions in the VoiceXML V2.0 standard, visit the following URL:
http://www.w3.org/TR/voicexml20

3.2.2 Common attributes


VoiceXML has attributes that can be assigned to a VoiceXML document. An example of
common attributes include version and language. For a list of attributes and their definitions
for the VoiceXML V2.0 standard, please visit the following URL:
http://www.w3.org/TR/voicexml20

3.3 A simple TTS example


Our simple Text to Speech application will be for a bank that we call The Bank of ITSO. The
customer calls the bank’s 800 number, and enters his or her ID, and then is given their
balance. The IBM TTS servers convert the type directions to speech to be played back to the
customer. The call flow is shown in Example 3-1.

Example 3-1 A simple TTS example


Customer: Dials Bank of ITSO’s 800 number.

IVR: Thank you for calling Bank of ITSO.

IVR: Using your telephone key pad please enter your twelve digit account number

Customer: Enters 12 digit account number.

46 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
IVR: Please enter your four digit PIN.

Customer: Enters 4 digit PIN.

IVR: Please wait while your account balance is retrieved.

IVR: Your account balance is one thousand three hundred sixty one dollars and forty two
cents. Thank you for banking at the Bank of ITSO. Goodbye

For this example, we are using the Genesys Studio application. Figure 3-1 is a diagram that is
provided on the GVP Installation CD. This tool provides a palette of objects that provide the
step-by-step functions of building an IVR application. There are six drop-down palettes
designed to assist in each step. These objects are drag and drop onto the application screen.
Every Genesys Studio application must have a Start and Stop object. Refer to the Genesys
Studio Developer’s Guide for more information about this product and its individual
components.

Figure 3-1 Genesys Studio

Chapter 3. Developing voice-enabled applications 47


1. The first step of all applications is the Start block. Drag the Start object from the Palette
frame to the design screen. Double-click the object to display the properties. Click
Application Settings and select APPID. This makes the APPID appear in the TYPE
window. You must now add a value for the application. It can be any name you wish to
give it, but it should be representative of the application you are writing. See Figure 3-2.

Figure 3-2 Start Block Application Settings tab

2. Next, click RootMap. On this page you must click More... See Figure 3-3.

Figure 3-3 Start Block RootMap tab

You are presented with a menu. Scroll down and select com.telera.speechenabled. See
Figure 3-4 on page 49.

48 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 3-4 Key/Value pair settings

WebSphere Voice Server ASR does contain support for DTMF and speech grammars.
However, we are using the Genesys DTMF support so that this application is using just
WebSphere Voice Server for Text to Speech.
3. Because this is a Text to Speech application, the value must be set to false as shown in
Figure 3-5. Click OK.

Figure 3-5 Key/Value pair dialog box

When the application has been completed and compiled, a JSP page generates.
Example 3-2 shows the code when generated as a JSP page.

Example 3-2 Start.jsp


<?xml version="1.0" encoding="utf-8"?>
<%@ page language="java" import="java.util.*" %>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
if ((request.getMethod()).equalsIgnoreCase("HEAD")) {
return;
}
%>
<vxml version='2.0' xmlns='http://www.w3.org/2001/vxml'>
<property name='termchar' value='D' />
<%
session.setAttribute("PAGEID" ,"START");
processBegin(pageContext);

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{

Chapter 3. Developing voice-enabled applications 49


setPageItem(pageContext,"APPID", "tts");
}

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"APP_LANGUAGE", "en-US");
}

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"ScriptID", "0");
}

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"VOXFILEDIR", "Voxfiles/en");
}
%><property name="com.telera.speechenabled" value="false"/>
<form>
<block>
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("PROMPT1.jsp"));

out.print( "'/>" );
%>
</block>
</form>
<catch event="connection.disconnect.hangup">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "?ACTION=HUP");

out.print( "'/>" );
%>
</catch>
<catch event="error">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch><%
setPageItem(pageContext,"ReportItem_ReportingEnabled", "0");

// ****************************************************
// If this is a new session, ROOTDOCUMENT will be undefined
// and the session should be updated. Otherwise, this is
// a session continuing in a new callflow, and we should not
// update the session.

50 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
// ****************************************************

boolean isRootDocumentFetch = false;

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
session.setAttribute("ROOTDOCUMENT",
encodeUtf8Path(getBaseURL(pageContext) + "/START.jsp"));
}
else
{
String tempRoot = (session.getAttribute("ROOTDOCUMENT")).toString();
if (tempRoot.endsWith("START.jsp"))
{
isRootDocumentFetch = true;
}
}

java.util.Enumeration params = request.getParameterNames();


String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();
value = request.getParameter(name);
session.setAttribute(name, value);
}

processAnywhere(pageContext);
%>
</vxml>
<%

processEnd(pageContext);

if (!isRootDocumentFetch)
{
createReportItemStack(pageContext);
sendCallStartReportData(pageContext);
}
%>

<%!
public void processBegin(PageContext localPageContext){

public void processAnywhere(PageContext localPageContext){

public void processEnd(PageContext localPageContext){

}
%>

4. Next, we drag a Prompt block onto the design screen. To connect the Start block to the
Prompt block, place your cursor on the black output part of the Start block. Hold down the
left mouse button and drag the line to the input port on the top of the Prompt block. When

Chapter 3. Developing voice-enabled applications 51


this is completed, double-click the object to open the properties.
The first properties tab is the Standard tab which is on all objects (See Figure 3-6). You
have the opportunity to name the block. However, this name must be unique for the entire
project. You also notice an Outports section that is greyed out on this object. Outports is
the number of exit ports this object will have. On some objects you have the opportunity to
set the number of Outports to your needs. If you do this, it requires special coding in the
Edit Custom Code section to select the port you which to exit from based on some criteria
that has been determined by menu selections or data entered.

Figure 3-6 Prompt properties Standard tab

5. Click Play Data to enter the test you want the application to play. See Figure 3-7 on
page 53. This is done by selecting Text from the menu. Next, type the text you want to be
played in the box below the Type.
WebSphere Voice Server supports using Text to Speech lexicons for handling specific
abbreviations and acronyms. You can use the Voice Toolkit for WebSphere Studio to
create TTS lexicon files that contains pronunciations using Symbolic Phonetic
Representations (SPR) phonologies and then preload those lexicons when WebSphere
Voice Server is started. These lexicons will then be used for all Text to Speech operations.
When you have finished, click Add. If you want a pause between phrases, then enter the
text in separate text boxes.

52 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 3-7 Prompt properties Play Data tab

6. After Add has been clicked, the text will appear in the large window. See Figure 3-8. The
use of a lexicon file for the ITSO acronym will cause the TTS engine to play back ITSO
correctly. No modification to the text is required. When this is done, click More...

Figure 3-8 Prompt properties Play Data tab with prompt added

Chapter 3. Developing voice-enabled applications 53


7. In the Advanced setting window, you must select Use TTS to tell the application to use the
TTS engine to play what you have entered. See Figure 3-9. If you want the application to
pause after the prompt is played, enter a value in the Pause block for the number of
seconds to wait before proceeding to the next object.

Note: If this value is set too high, the caller might hang-up thinking there is a problem.

Figure 3-9 Prompt properties advanced settings

The compiled code for this jsp page is shown in Example 3-3.

Example 3-3 Compiled code for Prompt1.jsp


<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" import="java.util.*"%>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
StringBuffer headerVxml = new StringBuffer();
String label = "";
StringBuffer data = new StringBuffer();

try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
if (request.getMethod().equalsIgnoreCase("HEAD")) {
return;
}

session.setAttribute("PAGEID", "PROMPT1");

processBegin(pageContext);

java.util.Enumeration params = request.getParameterNames();


String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();

54 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
value = request.getParameter(name);
session.setAttribute(name, value);
}

label = lookUp(pageContext, "ROOTDOCUMENT");

// Header Section

headerVxml.append("<vxml version=\"2.0\" xmlns=\"http://www.w3.org/2001/vxml\"


application=\"");
headerVxml.append(label);
headerVxml.append("\">\n");

// Header Section End --- Contd...

// Body Section

headerVxml.append("<script src='Languages/");

headerVxml.append("en-US/PlayConstantsTTS.js'/");
headerVxml.append(">");
headerVxml.append("<script src='Languages/");
headerVxml.append("en-US/PlayBuiltinTypeTTS.js'/");

headerVxml.append(">");
out.print(headerVxml);
headerVxml.setLength(0);

%>
<script>
var f = new Format();
var pb;
</script>
<form>
<grammar mode="dtmf" version="1.0" root="fundX" type="application/srgs+xml"
xml:lang="en-US">
<rule scope="public" id="fundX">
<one-of>
<item>0 0 0 0 0 0 1</item>
</one-of>
</rule>
</grammar><block><prompt bargein="false" xml:lang="en-US">Thank you for calling The Bank
of ITSO<audio src="StudioIncludes/break500ms.vox"/>
</prompt></block><field>
<prompt timeout="0s" xml:lang="en-US"/>
</field>
<catch event="nomatch noinput">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("INPUT1.jsp"));

out.print( "'/>" );
%>
</catch>
</form>
<%
processAnywhere(pageContext);

Chapter 3. Developing voice-enabled applications 55


%></vxml><%

// Footer Section - End

processEnd(pageContext);

%>

<%!
public void processBegin(PageContext localPageContext){

public void processAnywhere(PageContext localPageContext){

public void processEnd(PageContext localPageContext){

}
%>

8. We need to have a way of entering the customer's account number. This is accomplished
by putting an Input object on the design screen. In the palette menu, select the Advanced
menu. From the objects displayed, drag the Input object to the design screen. Connect
the Prompt1 block to the Input1 block and then double-click to open the properties. You
can now give the block a name on the Standard tab. See Figure 3-10.

Figure 3-10 INPUT1 Standard tab

9. Click Play Data and type in the text you wish to have played, as discussed for the
previous block. See Figure 3-11 on page 57. Click Add when you have finished.

56 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 3-11 INPUT1 Play Data tab

10.The text now appears in the play list as shown in Figure 3-12. Click More...

Figure 3-12 Completed Play Data information

11.As in the last block, we must now set the application to use the TTS engine to play back
the test you entered. Check the Use TTS check box as shown in Figure 3-13. At this point

Chapter 3. Developing voice-enabled applications 57


we can choose to allow the caller to barge-in and start entering digits before the prompt
has finished playing. To do this, simply set the Barge-in property to True. We now need to
set a reasonable time to pause and let the caller enter the digits by entering a value in the
Pause window. Three seconds seems to work the best. Click OK.

Figure 3-13 Input1 Advanced settings

12.Click Input Attributes as shown in Figure 3-14. Because we set the application not to be
speech-enabled, be sure that the Enable ASR box is not checked. Set the minimum and
maximum number of digits the user is allowed to enter. You can also set the amount of
time to wait between digits before taking an error route out of the object. It is not required,
but some developers prefer to enter a termination character. The most common one is
usually the pound sign. The input will either wait the Inter Digit Delay before continuing or,
if you have designated a termination character, the application will continue on at the time
the character is entered on the phone set. After all entries have been made, click OK.

Figure 3-14 Input Attributes

13.The next screen is the Retry prompts as shown in Figure 3-15 on page 59. On many of the
objects, you will notice two red ports on the side of the object. These are the error output
ports and, with the exception of the Start block, there are two default ports that are defined

58 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
as No-input and No-match. The application will exit through the Noinput port should the
caller wait the Pause time and not enter any digits. The application will exit through the
No-match port should the user enter too many or too few digits as defined in the minimum
and maximum digits.
There are three retry prompts available to use to let the caller know what they did wrong.
These prompts must be used in pairs, which means that if you define a value for the first
no_input you must define a value for the first no_match. It is not required that you use all
three sets or any retry pair for that matter. However if it is defined, after the first retry the
caller is given another chance to enter their information. After all retries have been
exhausted, the application will then exit through the appropriate error port. For this
exercise, we have elected not to use any retries and will immediately hang-up the phone
on an error as indicated by the red line from the error port to the End Call object.

Tip: It is a VoiceXML application development best practice to always have retries and
good error-handling.

Figure 3-15 Retry Prompts

Example 3-4 shows the compiled JSP code for the Input1 block.

Example 3-4 Compiled code for Input1.jsp


<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" import="java.util.*" %>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();

Chapter 3. Developing voice-enabled applications 59


}
if (request.getMethod().equalsIgnoreCase("HEAD")) {
return;
}

String allowSubDialog = "";


String subdialogReturn = "";
StringBuffer headerVxml = new StringBuffer();
String audio = "";
String root = "";
StringBuffer data = new StringBuffer();

session.setAttribute("PAGEID", "INPUT1");
processBegin(pageContext);

//Update the collection from the current query string.


java.util.Enumeration params = request.getParameterNames();
String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();
value = request.getParameter(name);
session.setAttribute(name, value);
}

root = lookUp(pageContext, "ROOTDOCUMENT");

headerVxml.append("<vxml version='2.0' xmlns='http://www.w3.org/2001/vxml' application='")


;
headerVxml.append(root);
headerVxml.append("'>");

subdialogReturn = "";

headerVxml.append("<script src='Languages/");

headerVxml.append("en-US/PlayConstantsTTS.js'/");
headerVxml.append(">");
headerVxml.append("<script src='Languages/");
headerVxml.append("en-US/PlayBuiltinTypeTTS.js'/");

headerVxml.append(">");
out.print(headerVxml);
headerVxml.setLength(0);

%>
<script>
var f = new Format();var pb;
</script>
<form>
<grammar mode="dtmf" version="1.0" root="fundX" type="application/srgs+xml"
xml:lang="en-US">
<rule scope="public" id="fundX">
<one-of>
<item>0 0 0 0 0 0 1</item>
</one-of>
</rule>

60 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
</grammar><block><prompt bargein="true" xml:lang="en-US">Using your telephone key pad
please enter your twelve digit account number<audio src="StudioIncludes/break500ms.vox"/>
</prompt></block><field name="INPUT1">
<grammar mode="dtmf" type="application/srgs+xml" root="digits">
<rule id="digits" scope="public">
<item repeat="12-12">
<one-of>
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>*</item>
<item>#</item>
</one-of>
</item>
</rule>
</grammar>
<property name="com.telera.speechenabled" value="false"/>
<property name="inputmodes" value="dtmf"/>
<property name="interdigittimeout" value="3s"/>
<catch event="nomatch" count="1">
<throw event="nomatch_final"/>
</catch>
<catch event="noinput" count="1">
<throw event="noinput_final"/>
</catch>
<prompt bargein="true" timeout="3s"/>
</field>
<filled>
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("PROMPT2.jsp"));

out.print( "' method='post" );

out.print( "' namelist='INPUT1 INPUT1$.inputmode INPUT1$.confidence INPUT1$.utterance'");

out.print( "/>");
%>
</filled>
</form>
<catch event="noinput_final">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch>
<catch event="nomatch_final">
<%
out.print( "<goto next='" );

Chapter 3. Developing voice-enabled applications 61


out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch>

</vxml>
<%
processAnywhere(pageContext);

processEnd(pageContext);

%>

<%!
public void processBegin(PageContext localPageContext){

public void processAnywhere(PageContext localPageContext){

public void processEnd(PageContext localPageContext){

}
%>

14.The remaining objects in the application are completed just as the previous blocks were
done. Save your application to a dedicated folder and then you are ready to compile it.

3.4 A simple ASR example


Our simple Automatic Speech Recognition (ASR) application will also be for The Bank of
ITSO. The customer will call the bank’s 800 number and enter the account number and pin.
The customer will then speak functions to hear their balance, make payments, or transfer
funds. The call flow is shown in Example 3-5.

Example 3-5 Simple ASR application


Customer: Calls The Bank of ITSO 800 number.

IVR: Thank you for calling Bank of ITSO. Using your telephone key pad please enter your
twelve digit account number followed by the pound sign.

Customer: Enters 12 digit account number and pound sign.

IVR: Please enter your four digit PIN followed by the pound sign.

Customer: Enters 4 digit PIN and pound sign.

IVR: How may I help you? If you would like to transfer funds please say transfer. If you
would like to hear your balance please say balance. If you would like to make a loan
payment please say payment

62 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Customer: Transfer

IVR: What account do you want to transfer the funds from? Please say checking or savings.

Customer: Savings

IIVR: How much would you like to transfer? Please say amount in whole dollar amounts only
followed by the pound sign. For example if you would like to transfer eleven hundred
dollars please say one thousand one hundred and then press the pound sign.

Customer: Five hundred dollars

IVR: You have requested to transfer five hundred dollars from your savings account to your
primary checking account. Is this correct, please say yes or no.

Customer: Yes

IVR: Thank you. Your request has been processed, can I help you with another transaction?
Please say yes or no.

Customer: No

IVR: Thank you for banking with Bank of ITSO. Have a great day, goodbye.

Figure 3-16 on page 64 shows how the ASR banking application looks in Genesys Studio.
Refer to the Genesys Studio Developer’s Guide for more information about this product and
its individual components.

Chapter 3. Developing voice-enabled applications 63


Figure 3-16 Sample ASR application in Genesys Studio

64 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
1. First create the Start block by dragging it from the palette. Double-click the Start block
and you will see the Standard tab of the properties window as shown in Figure 3-17.

Figure 3-17 Start properties Standard tab

2. Click Application Settings and assign an APPID as shown in Figure 3-18. For our
example we set the value of APPID to asr.

Figure 3-18 Start properties Application Settings tab

Chapter 3. Developing voice-enabled applications 65


3. Next, click RootMap as shown in Figure 3-19. Click More... to continue.

Figure 3-19 Start properties RootMap tab

4. Because this application will use ASR, you need to select com.telera.speechenabled in
the Name field and set the value to true as shown in Figure 3-20 and Figure 3-21. By
default, the com.telera.speechenabled value is set to true. Click OK to continue.

Figure 3-20 Name/value pair settings

Figure 3-21 Name/value pair settings with speech enabled

66 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
5. You see the com.telera.speechenabled setting in the <property> settings window as
shown in Figure 3-22. Click Close to continue.

Figure 3-22 <property> settings window with speech enabled

6. Click OK to finish up the Start block. Illustrated in Example 3-6 is the compiled code for the
Start block in JSP.

Example 3-6 Compiled code for Start.jsp


<?xml version="1.0" encoding="utf-8"?>
<%@ page language="java" import="java.util.*" %>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
if ((request.getMethod()).equalsIgnoreCase("HEAD")) {
return;
}
%>
<vxml version='2.0' xmlns='http://www.w3.org/2001/vxml'>
<property name='termchar' value='D' />
<%
session.setAttribute("PAGEID" ,"START");
processBegin(pageContext);

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"APPID", "asr");
}

Chapter 3. Developing voice-enabled applications 67


if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"APP_LANGUAGE", "en-AU");
}

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"ScriptID", "0");
}

if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
setPageItem(pageContext,"VOXFILEDIR", "Voxfiles/en");
}
%><property name="com.telera.speechenabled" value="true"/>
<form>
<block>
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("INPUT1.jsp"));

out.print( "'/>" );
%>
</block>
</form>
<catch event="connection.disconnect.hangup">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "?ACTION=HUP");

out.print( "'/>" );
%>
</catch>
<catch event="error">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch><%
setPageItem(pageContext,"ReportItem_ReportingEnabled", "0");

// ****************************************************
// If this is a new session, ROOTDOCUMENT will be undefined
// and the session should be updated. Otherwise, this is
// a session continuing in a new callflow, and we should not
// update the session.
// ****************************************************

boolean isRootDocumentFetch = false;

68 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
if (session.getAttribute("ROOTDOCUMENT") == null ||
"".equals(session.getAttribute("ROOTDOCUMENT")))
{
session.setAttribute("ROOTDOCUMENT",
encodeUtf8Path(getBaseURL(pageContext) + "/START.jsp"));
}
else
{
String tempRoot = (session.getAttribute("ROOTDOCUMENT")).toString();
if (tempRoot.endsWith("START.jsp"))
{
isRootDocumentFetch = true;
}
}

java.util.Enumeration params = request.getParameterNames();


String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();
value = request.getParameter(name);
session.setAttribute(name, value);
}

processAnywhere(pageContext);
%>
</vxml>
<%

processEnd(pageContext);

if (!isRootDocumentFetch)
{
createReportItemStack(pageContext);
sendCallStartReportData(pageContext);
}
%>

<%!
public void processBegin(PageContext localPageContext){

public void processAnywhere(PageContext localPageContext){

public void processEnd(PageContext localPageContext){

}
%>

Chapter 3. Developing voice-enabled applications 69


7. Next drag an Input block onto the design screen and double-click it. You will see the
Standard tab of the INPUT1 Properties window as shown in Figure 3-23. Click Play Data
to continue.

Figure 3-23 Input properties Standard tab

8. Add the phrases you would like to play in the Play Data tab as shown in Figure 3-24.

Note: After entering prompts make sure you click Add before you click OK on the
properties window. Otherwise the phrases will not make it into the training of this input.

Figure 3-24 Input properties Play Data tab

70 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
9. Click Input Attributes as shown in Figure 3-25. Make sure Enable ASR is selected.
Because this input is for an account number, we set the Minimum Input Digits and
Maximum Input Digits to 12. We select # as a terminating character as well.

Tip: It is a VoiceXML application development best practice to allow DTMF and voice
input.

Figure 3-25 Input properties Input Attributes tab

10.The best VoiceXML practices enable callers to enter either DTMF or speech. Therefore, it
is important to select the Enable ASR option in the Input Attributes tab as shown in
Figure 3-26.

Figure 3-26 Input Properties Input Attributes with ASR enabled

Example 3-7 on page 72 shows the compiled code.

Chapter 3. Developing voice-enabled applications 71


Example 3-7 Compiled code for Input1.jsp
<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" import="java.util.*" %>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
if (request.getMethod().equalsIgnoreCase("HEAD")) {
return;
}

String allowSubDialog = "";


String subdialogReturn = "";
StringBuffer headerVxml = new StringBuffer();
String audio = "";
String root = "";
StringBuffer data = new StringBuffer();

session.setAttribute("PAGEID", "INPUT1");
processBegin(pageContext);

//Update the collection from the current query string.


java.util.Enumeration params = request.getParameterNames();
String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();
value = request.getParameter(name);
session.setAttribute(name, value);
}

root = lookUp(pageContext, "ROOTDOCUMENT");

headerVxml.append("<vxml version='2.0' xmlns='http://www.w3.org/2001/vxml' application='")


;
headerVxml.append(root);
headerVxml.append("'>");

subdialogReturn = "";

headerVxml.append("<script src='Languages/");

headerVxml.append("en-AU/PlayConstantsTTS.js'/");
headerVxml.append(">");
headerVxml.append("<script src='Languages/");
headerVxml.append("en-AU/PlayBuiltinTypeTTS.js'/");

headerVxml.append(">");
out.print(headerVxml);
headerVxml.setLength(0);

%>
<script>

72 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
var f = new Format();var pb;
</script>
<form>
<grammar mode="dtmf" version="1.0" root="fundX" type="application/srgs+xml"
xml:lang="en-AU">
<rule scope="public" id="fundX">
<one-of>
<item>0 0 0 0 0 0 1</item>
</one-of>
</rule>
</grammar><block><prompt bargein="true" xml:lang="en-AU">Thank you for call the Bank of
eye tee ess oh<audio src="StudioIncludes/break500ms.vox"/>
</prompt></block><block><prompt bargein="true" xml:lang="en-AU">Using your telephone key
pad please enter your twelve digit account number followed by the pound sign<audio
src="StudioIncludes/break500ms.vox"/>
</prompt></block><field name="INPUT1">
<grammar mode="dtmf" type="application/srgs+xml" root="digits">
<rule id="digits" scope="public">
<item repeat="12-12">
<one-of>
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>*</item>
<item>#</item>
</one-of>
</item>
</rule>
</grammar>
<property name="com.telera.speechenabled" value="false"/>
<property name="inputmodes" value="dtmf"/>
<property name="interdigittimeout" value="3s"/>
<property name="termchar" value="#"/>
<catch event="nomatch" count="1">
<throw event="nomatch_final"/>
</catch>
<catch event="noinput" count="1">
<throw event="noinput_final"/>
</catch>
<prompt bargein="true" timeout="3s"/>
</field>
<filled>
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("INPUT2.jsp"));

out.print( "' method='post" );

out.print( "' namelist='INPUT1 INPUT1$.inputmode INPUT1$.confidence INPUT1$.utterance'");

out.print( "/>");
%>

Chapter 3. Developing voice-enabled applications 73


</filled>
</form>
<catch event="noinput_final">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch>
<catch event="nomatch_final">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch>

</vxml>
<%
processAnywhere(pageContext);

processEnd(pageContext);

%>

<%!
public void processBegin(PageContext localPageContext){

public void processAnywhere(PageContext localPageContext){

public void processEnd(PageContext localPageContext){

}
%>

74 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
11.Next in this application we want to build ASR menus. Drag a Menu block to the design
screen and double-click it to get the Standard tab of the menu properties window as
shown in Figure 3-27.

Figure 3-27 Menu properties Standard tab

12.Add your phrases for the menu as shown in Figure 3-28. When you have finished adding
all your prompts click More... to continue.

Figure 3-28 Menu properties Play Data tab

Chapter 3. Developing voice-enabled applications 75


13.Enable Use TTS for the prompts. Even though this is an ASR menu, the prompts will be
spoken with TTS. Click OK. See Figure 3-29.

Figure 3-29 Menu properties Play Data tab: Advanced Settings

14.Click Menu, where you will add phrases for the ASR to detect as well as DTMF tones as
shown in Figure 3-31. To add a phrase or tone, click Add/Edit... to get the Add Phrase /
Tone setup window as shown in Figure 3-30.

Figure 3-30 Add Phrase / Tone setup window

15.For this example, choose 1 as the tone and enter the phrase transfer to return the value
1 from the ASR as shown in Figure 3-30. Click OK to add your phrase/tones as shown in
Figure 3-31 on page 77. This will define that if you speak the word transfer or press the
key 1, a value of 1 will be returned in the code for evaluation. When you are finished
adding all your phrases and tones, click Retry prompts.

76 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 3-31 Menu properties Menu tab

16.If desired, you can add retry prompts as illustrated in Figure 3-32. This model is similar to
the Play Data tab in regards to selecting your output method and typing in the text. Click
Set to set your retry prompts. If the user times out, it will play the retry prompt no_input. If
the user enters data that is not defined (such as an invalid key) it will play the no_match
prompt. You can have up to three retry prompts for both no_input and no_match which
can all be unique. When you are finished defining all the parameters of the MENU1
properties, click OK to complete your training.
See Example 3-8 on page 78 for the compiled code.

Figure 3-32 Menu properties Retry prompts tab

Chapter 3. Developing voice-enabled applications 77


Example 3-8 Compiled code for Menu1.jsp
<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" import="java.util.*"%>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
StringBuffer headerVxml = new StringBuffer();
String label = "";
//String dateFormat = "";
String subDlgReturn = "";
String query="";
StringBuffer data = new StringBuffer();

try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
if (request.getMethod().equalsIgnoreCase("HEAD")) {
return;
}

session.setAttribute("PAGEID" ,"MENU1");

processBegin(pageContext);

java.util.Enumeration params = request.getParameterNames();


String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();
value = request.getParameter(name);
session.setAttribute(name, value);
}
label = lookUp(pageContext, "ROOTDOCUMENT");
query = getQueryString(pageContext).trim();

// Header Section

headerVxml.append("<vxml version=\"2.0\" ");


headerVxml.append("xmlns=\"http://www.w3.org/2001/vxml\" ");
headerVxml.append("application=\"");
headerVxml.append(label);
headerVxml.append("\">");

headerVxml.append("<script src='Languages/");

headerVxml.append("en-AU/PlayConstantsTTS.js'/");
headerVxml.append(">");
headerVxml.append("<script src='Languages/");
headerVxml.append("en-AU/PlayBuiltinTypeTTS.js'/");

headerVxml.append(">");
out.print(headerVxml);
headerVxml.setLength(0);

%>
<script>

78 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
var f = new Format();
var pb;
</script>
<form>
<grammar mode="dtmf" version="1.0" root="fundX" type="application/srgs+xml"
xml:lang="en-AU">
<rule scope="public" id="fundX">
<one-of>
<item>0 0 0 0 0 0 1</item>
</one-of>
</rule>
</grammar><block><prompt bargein="true" xml:lang="en-AU">How may eye help you<audio
src="StudioIncludes/break500ms.vox"/>
</prompt></block><block><prompt bargein="true" xml:lang="en-AU">If you would like to
transfer funds please say transfer<audio src="StudioIncludes/break500ms.vox"/>
</prompt></block><block><prompt bargein="true" xml:lang="en-AU">If you like to hear your
balance please say balance<audio src="StudioIncludes/break500ms.vox"/>
</prompt></block><block><prompt bargein="true" xml:lang="en-AU">If you would like to
make a loan payment please say payment<audio src="StudioIncludes/break500ms.vox"/>
</prompt></block><field name="MENU1">
<prompt timeout="3s" xml:lang="en-AU"/>
<option dtmf="1">transfer</option>
<option dtmf="2">balance</option>
<option dtmf="3">payment</option>
<catch event="noinput" count="1">
<prompt bargein="true" xml:lang="en-AU">I did not hear your request please try
again<audio src="StudioIncludes/break500ms.vox"/>
</prompt>
</catch>
<catch event="nomatch" count="1">
<prompt bargein="true" xml:lang="en-AU">That is not a valid option please try
again<audio src="StudioIncludes/break500ms.vox"/>
</prompt>
</catch>
<catch event="nomatch" count="2">
<throw event="nomatch_final"/>
</catch>
<catch event="noinput" count="2">
<throw event="noinput_final"/>
</catch>
</field>
<filled mode="all" namelist="MENU1">
<if cond="MENU1 == 1">
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("MENU2.jsp"));

out.print( "' method='post" );

out.print( "' namelist='MENU1'");

out.print( "/>");
%>
</if>
<if cond="MENU1 == 'transfer'">
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("MENU2.jsp"));

Chapter 3. Developing voice-enabled applications 79


out.print( "' method='post" );

out.print( "' namelist='MENU1'");

out.print( "/>");
%>
</if>
<if cond="MENU1 == 2">
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("CODE3.jsp"));

out.print( "' method='post" );

out.print( "' namelist='MENU1'");

out.print( "/>");
%>
</if>
<if cond="MENU1 == 'balance'">
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("CODE3.jsp"));

out.print( "' method='post" );

out.print( "' namelist='MENU1'");

out.print( "/>");
%>
</if>
<if cond="MENU1 == 3">
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("INPUT5.jsp"));

out.print( "' method='post" );

out.print( "' namelist='MENU1'");

out.print( "/>");
%>
</if>
<if cond="MENU1 == 'payment'">
<%
out.print( "<submit next='" );

out.print(encodeUtf8Path("INPUT5.jsp"));

out.print( "' method='post" );

out.print( "' namelist='MENU1'");

out.print( "/>");
%>
</if>

80 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
</filled>
</form>
<catch event="noinput_final">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch>
<catch event="nomatch_final">
<%
out.print( "<goto next='" );

out.print(encodeUtf8Path("STOP.jsp"));

out.print( "'/>" );
%>
</catch>
<%
processAnywhere(pageContext);
%>
</vxml>
<%

processEnd(pageContext);

%>

<%!
public void processBegin(PageContext localPageContext){

public void processAnywhere(PageContext localPageContext){

public void processEnd(PageContext localPageContext){

}
%>

17.At this stage, you can add a CODE block in Genesys Studio where you can execute your
own custom code. Drag a code object onto the studio designer and double-click it. You will
see the CODE1 properties window as shown in Figure 3-33 on page 82. Click Edit... to
continue.

Chapter 3. Developing voice-enabled applications 81


Figure 3-33 Code properties window

18.You are presented with the Custom properties Editor as shown in Figure 3-34. You can
write custom JSP code here if you have Genesys Studio configured for JSP. In this
example we have Studio configured for JSP.

Figure 3-34 Custom properties editor

82 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Example 3-9 Compiled code for Code1.jsp
<?xml version="1.0" encoding="utf-8" ?>
<%@ page language="java" import="java.util.*" %>
<%@ page session="true" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%@ include file="StudioIncludes/pagesupport.inc" %>
<%
String addStuff="";
String root="";
String allowType="";
StringBuffer vXml= new StringBuffer();
int nAllowType=0;

try {
request.setCharacterEncoding("UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
if (request.getMethod().equalsIgnoreCase("HEAD")) {
return;
}
// Update the collection from the current query string
addStuff = "";
java.util.Enumeration params = request.getParameterNames();
String name;
String value;
while (params.hasMoreElements()) {
name = (String) params.nextElement();
value = request.getParameter(name);
session.setAttribute(name, value);
}
root = lookUp(pageContext,"ROOTDOCUMENT");
processBegin(pageContext);
allowType = "";

/******************************
Here we set the allowed
variables into the page-scope
*******************************/
pageContext.setAttribute("nAllowType",new Integer(nAllowType),PageContext.PAGE_SCOPE);
pageContext.setAttribute("allowType",allowType,PageContext.PAGE_SCOPE);
pageContext.setAttribute("addStuff",addStuff,PageContext.PAGE_SCOPE);

String xHRefs[] = {"MENU5.jsp"};

processAnywhere(pageContext);
/******************************
Here we get the allowed
variables from the page-scope
*******************************/
Integer nTempInt= (Integer)pageContext.getAttribute
("nAllowType",PageContext.PAGE_SCOPE);
nAllowType = nTempInt.intValue();
allowType = (String)pageContext.getAttribute ("allowType",PageContext.PAGE_SCOPE);

if (nAllowType != 0) {
nAllowType = nAllowType - 1;
}
if (allowType.equals("")) {
allowType = xHRefs[nAllowType];

Chapter 3. Developing voice-enabled applications 83


}

vXml.append("<vxml version='2.0' xmlns='http://www.w3.org/2001/vxml' application='");


vXml.append(root);
vXml.append("'><form>");
/***********************
This would allow users
to insert in their own
code in the form.
***********************/
processEnd(pageContext);
addStuff = (String)pageContext.getAttribute ("addStuff",PageContext.PAGE_SCOPE);
if (addStuff != null && !"".equals(addStuff)) {
vXml.append(addStuff);
}
vXml.append("<block><submit next='");
vXml.append(allowType);
vXml.append("' /></block></form></vxml>");
out.print(vXml);
%>

<%!
public void processBegin(PageContext localPageContext){
}

public void processAnywhere(PageContext localPageContext){


}

public void processEnd(PageContext localPageContext){


}
%>

19.In Figure 3-33 there is a small square button. If you click this button you will be presented
with a Notes dialog box as shown in Figure 3-35. You can add notes here as needed for
your custom code block.

Figure 3-35 Notes for code block

This concludes this illustrated version of the telephony steps used in ASR for a simple ASR
test application. For more information about developing applications using Genesys Studio,
refer to the Studio Developer’s Guide provided by Genesys.

84 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
3.5 Adding a new TTS application
This section describes how to add a new TTS voice application using the Genesys Voice
Portal Manager.

3.5.1 Deploy and test the application


When you have your application compiled and hosted on a Web server or application server,
all you need is a URL that can be hit by your VCS machine that will generate a VoiceXML
start page. When this is achieved, you can provision GVP by creating a new Voice
Application.
1. Open the Voice Portal Manager from a browser and click Add a New Voice Application
as shown in Figure 3-36.

Figure 3-36 Voice Portal Manager Home Page


Screen shot reprinted by permission from Microsoft Corporation

2. You are presented with the Add a new Voice Application page as shown in Figure 3-37 on
page 86.

Chapter 3. Developing voice-enabled applications 85


Figure 3-37 Add a new Voice Application: getting started
Screen shot reprinted by permission from Microsoft Corporation

3. Enter in all required fields noted with a red asterisk as shown in Figure 3-38 on page 87:
a. Voice Application Name: This can be any unique name you specify.
b. Phone Number: This is for documentation purposes.
c. Department: This can be any name of a department under which you want to
document this application.
d. Primary Voice Application URL: This is the URL to the start page that will generate
your start VoiceXML page.
e. Default Language: Select your language. In our case, en-AU.
f. Voice Format: Select BASIC.
g. TTS Vendor: Specify IBM.
h. Gender: Select Male or Female. A value of Default will really be female.

86 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 3-38 Add a new Voice Application: provision application
Screen shot reprinted by permission from Microsoft Corporation

4. A DNIS is required to complete the provisioning of your new voice application in GVP. To
see which DNIS are already being used for what applications, click DNIS Map.

Note: The DNIS must be unique for all applications. Applications cannot share the
same DNIS. To see what DNIS are being used for which applications, click DNIS Map.

5. You will be shown the DNIS mapping for all your applications in the VCS as shown in
Figure 3-39 on page 88. Close this window to continue.

Chapter 3. Developing voice-enabled applications 87


Figure 3-39 DNIS mapping example
Screen shot reprinted by permission from Microsoft Corporation

6. Add a unique DNIS to your application (such as 7777777) as shown in Figure 3-40. If you
are not using DNIS, then specify the word default.

Figure 3-40 Add new voice application - add DNIS


Screen shot reprinted by permission from Microsoft Corporation

88 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
7. Before saving your application, make sure the URL you specified will return a VoiceXML
start page. Click Try for your URL as shown in the right of Figure 3-41.

Figure 3-41 Add new voice application - test URL


Screen shot reprinted by permission from Microsoft Corporation

Chapter 3. Developing voice-enabled applications 89


8. A browser window opens showing the results of the URL, as in Figure 3-42.

Figure 3-42 Start URL test results


Screen shot reprinted by permission from Microsoft Corporation

90 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
9. Because this returned a valid VoiceXML start page, you can close this window and return
to your voice application page and click Save to save your voice application as shown in
Figure 3-43.

Figure 3-43 Add new voice application - save application


Screen shot reprinted by permission from Microsoft Corporation

10.At this point your new voice application has been saved and configured and is ready for
testing, as shown in Figure 3-44 on page 92.
11.To test the application, dial the DNIS from the Gordon Kapes switch emulator (for
example, press 9 or 8, then 7777777).

Chapter 3. Developing voice-enabled applications 91


Figure 3-44 Voice application configured
Screen shot reprinted by permission from Microsoft Corporation

3.6 Adding a new ASR application


This section describes how to add a new ASR voice application using the Genesys Voice
Portal Manager.

3.6.1 Deploy and test the application


When you have your ASR application compiled and hosted on a Web server or application
server, all you need is a URL that can be hit by your VCS machine that will generate a
VoiceXML start page. When you have achieved this, you can provision GVP by referencing
the instructions as illustrated in 3.5.1, “Deploy and test the application” on page 85. These
instructions are for deploying and testing the Text to Speech application. The only difference
with deploying the ASR application is to configure your new voice application with ASR Type
set from NONE to MRCP as shown in Figure 3-45 on page 93.

92 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 3-45 Add a new Voice Application: setting ASR Type
Screen shot reprinted by permission from Microsoft Corporation

Chapter 3. Developing voice-enabled applications 93


94 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
4

Chapter 4. Known issues


This chapter contains the issues and limitations of the Genesys GVP/IBM WebSphere Voice
Server interoperability that we know as we write this Redpaper. It is in no way a complete list
and should not be construed as such. As new versions are released, some issues go away
and new ones arise. Be sure to read the product documentation that comes with the software
to obtain the latest information about known issues or problems.

© Copyright IBM Corp. 2005. All rights reserved. 95


4.1 Genesys Voice Platform
In this section you can read some of the known issues, problems, and limitations of the
GVP:EE and GVP:NE product.

4.1.1 Audio prefetch


By default, the TTS prefetch is set to on. In the latest release of GVP, a new parameter has
been added that enables you to disable this feature. To disable the feature, use the VoiceXML
extension property named com.genesys.ttsfetchhint with the safe value. For example:
<property name="com.genesys.ttsfetchhint" value="safe">.

To turn the prefetch back on, use the value prefetch. For example:
<property name="com.genesys.ttsfetchhint" value="prefetch">.

To verify that this feature is available in the version you have installed here are the version
numbers of the components required:
򐂰 GVP Common 6.5.500.61.
򐂰 Install GVP VCS 6.5.500.73.

If you do not have these versions, contact Genesys Technical Support to obtain them.

4.1.2 SRGS grammar support


There is a known bug in GVP:EE V6.5.500.73 and GVP:NE. The universal grammar files
universals-cancel.grxml, universals-help.grxml, and universals-exit.grxml all contain a hyphen
in the root and rule id, that is illegal under the SRGS V1.0 standard. Genesys is aware of this
problem and will release a fix for this problem shortly.

In addition to this, Genesys GVP only supports universal grammars for the en-US language
at this time. In preparing this RedPaper, the team was able to get around this problem by
creating the following fix.
1. In the C:\CN\web\grammar folder create a new folder named en-AU as shown in
Figure 4-1 on page 97. Copy the contents of the C:\CN\Grammer\en-US folder into this
new folder.

96 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 4-1 VCS grammar folder
Screen shot reprinted by permission from Microsoft Corporation

2. Modify the content of the universal grammar files. In Figure 4-1, we have the contents of
the universals-cancel.grxml before it was modified. In Figure 4-2, we have the contents of
the file after it was modified. Notice that the hyphen (-) was removed from the root and rule
id. Also, the language was changed from en-us to en-au. After those changes have been
made, resave the file with the original file name. See Example 4-1 and Example 4-2 on
page 97 for the code.

Example 4-1 Universals-cancel.grxml original file


<?xml version="1.0"?>
<grammar mode="voice" version="1.0" xml:lang="en-us"
xmlns="http://www.w3.org/2001/06/grammar" root="universals-cancel">
<rule id="universals-cancel" scope="public" >
<one-of>
<item> cancel </item>
</one-of>
</rule>
</grammar>

Example 4-2 Universals-cancel modified file


<?xml version="1.0"?>
<grammar mode="voice" version="1.0" xml:lang="en-au"
xmlns="http://www.w3.org/2001/06/grammar" root="universalscancel">
<rule id="universalscancel" scope="public" >

Chapter 4. Known issues 97


<one-of>
<item> cancel </item>
</one-of>
</rule>
</grammar>

3. You must also create a new folder in the C:\CN\web\VxmlRoot\VoxFiles called en-au as
shown if Figure 4-2. When this is completed, copy all of the contents from the
C:\CN\web\VxmlRoot\VoxFiles\en-us folder into this folder. These are prerecorded audio
files and will be used if the application should throw an exception during execution. These
files were recorded in English, but you could replace them with another prerecorded file in
the language you need. Just remember to rename the new files with the same name as
shown.

Figure 4-2 VxmlRoot Folder


Screen shot reprinted by permission from Microsoft Corporation

4.1.3 Genesys Studio Language Support


The Genesys Studio by default only has language support for the en-US language when it is
installed. To enable this tool for additional languages, you must create new folder in the
Genesys Studio\Languages folder as shown in Figure 4-3 on page 99. After this, copy all of

98 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
the contents of the en-US folder into this folder. In these folders are prerecorded Index files for
playing back many of the standard responses such as dates, currencies, and so forth. There
are over 325 prerecorded audio files in English. These can be rerecorded into the language
you wish to use but the exact file format and naming convention must be used for it to work.

Figure 4-3 Studio Languages


Screen shot reprinted by permission from Microsoft Corporation

To enable this language in the application you are creating, open the Genesys Studio and
drag a Start object to the design screen. Double-click this object and select Application
Settings. Select the App_Language in the large window on top and then select the
language you want to use from the pull-down list in the Value box as shown in Figure 4-4 on
page 100. Click Set and continue on with the application development.

Chapter 4. Known issues 99


Figure 4-4 Genesys Studio language selection

100 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
5

Chapter 5. Troubleshooting
This chapter provides some basic insight about troubleshooting problems within the IVR
deployment. In addition, there are some useful tools that assist in locating and solving
problems.

© Copyright IBM Corp. 2005. All rights reserved. 101


5.1 Where to find the log files
Each product stores their log files on their own machines. For the Genesys GVP system,
each VCS server stores its files in the Drive:\Install Folder\log, which is usually
C:\CN\Log. These files are small but sizable, usually about 256 KB. When the log has
reached its size limit, it is saved with a different name and then reopens to continue. GVP has
a log file for every running process. The level of logging is controlled through the GVP VPM
Server Monitor section.

When WebSphere Voice Server creates a log message, it writes it to the WebSphere
Application Server JVM™ log, (SystemOut.log). Log messages are categorized as Error,
Warning or Information. All log messages are documented in the WebSphere Voice Server
Information Center and contain a detailed explanation along with the user response. When a
log message is generated, an alarm is also created and shown in the Administrative Console.
Logging is always enabled and used when the system is operational. The WebSphere
Application Server JVM log is located in these directories:
򐂰 For Linux:
WAS Install Directory/logs/server1/SystemOut.log
򐂰 For Windows:
Drive:\WAS Install Directory\logs\server\SystemOut.log

Example 5-1 Partial SystemOut.log from a successful WebSphere Voice Server startup
[3/2/05 18:36:50:219 EST] 6b440d5a SysMgmt A CWVSY2002I: Starting WebSphere Voice Server
[3/2/05 18:36:50:224 EST] 6b440d5a SysMgmt A CWVSY2012I: IBM WebSphere Voice Server for
Multiplatforms V5.1.1, build date: 2004-12-03
[3/2/05 18:36:50:251 EST] 6b440d5a SystemOut O The HTTP Adaptor started on port number 6969
[3/2/05 18:36:50:373 EST] 6b440d5a RRbean A CWVRR5002I: ResResolver configuration :
{com.ibm.voice.server.rr.caching=true, com.ibm.voice.server.rr.fetchexpires=691200000,
com.ibm.voice.server.rr.fetchbuiltinurl=file:/opt/WebSphere/VoiceServer/builtins/grammars/,
com.ibm.voice.server.rr.fetchthreads=11, com.ibm.voice.server.rr.cachefilethold=80,
com.ibm.voice.server.rr.cachename=/opt/WebSphere/VoiceServer/rrcache,
com.ibm.voice.server.rr.cachefilesize=9, com.ibm.voice.server.rr.cachefilemaxfselen=255,
com.ibm.voice.server.rr.cachememsize=2}
[3/2/05 18:37:05:453 EST] 6b440d5a RECOGNIZER A CWVRB0049I: Recognizer initialization for en_US is
complete. 80 out of 80 configured ASR engine(s) available.
[3/2/05 18:37:05:520 EST] 6b440d5a Synth A CWVSB0010I: Starting Synthesizer...
[3/2/05 18:37:15:831 EST] 6b440d5a Synth A CWVSB0011I: Synthesizer startup complete. Status is
Started. 80 out of 80 configured TTS engine(s) available.
[3/2/05 18:37:15:896 EST] 6b440d5a SysMgmt A CWVSY2003I: WebSphere Voice Server started
[3/2/05 18:37:15:896 EST] 8eacd5a RTSPBridge A CWVRT0006I: The RTSP Bridge is started
[3/2/05 18:37:15:906 EST] 6b440d5a ApplicationMg A WSVR0221I: Application started: WVS5.1-svt01
[3/2/05 18:37:15:906 EST] 6b440d5a ApplicationMg A WSVR0200I: Starting application: adminconsole
[3/2/05 18:37:16:050 EST] 6b440d5a WebContainer A SRVE0169I: Loading Web Module: adminconsole.
[3/2/05 18:37:18:403 EST] 6b440d5a ApplicationMg A WSVR0221I: Application started: adminconsole
[3/2/05 18:37:18:419 EST] 6b440d5a HttpTransport A SRVE0171I: Transport http is listening on port 9,080.
[3/2/05 18:37:18:927 EST] 6b440d5a HttpTransport A SRVE0171I: Transport https is listening on port 9,443.
[3/2/05 18:37:18:932 EST] 6b440d5a HttpTransport A SRVE0171I: Transport http is listening on port 9,090.
[3/2/05 18:37:19:148 EST] 6b440d5a HttpTransport A SRVE0171I: Transport https is listening on port 9,043.
[3/2/05 18:37:19:178 EST] 6b440d5a RMIConnectorC A ADMC0026I: RMI Connector available at port 2809
[3/2/05 18:37:19:211 EST] 6b440d5a WsServer A WSVR0001I: Server server1 open for e-business

Example 5-1 shows WebSphere Voice Server initialization messages in the “SystemOut.log”.
The line highlighted in the color blue (bold) above identifies the level of WebSphere Voice
Server installed and its build date. This “SystemOut.log” came from a machine with

102 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
WebSphere Voice Server V5.1.1. This message is an easy way to tell the level of WebSphere
Voice Server installed.

Example 5-2 WebSphere Application Server and JDK™ level installed via SystemOut.log
************ Start Display Current Environment ************
WebSphere Platform 5.1 [BASE 5.1.1 a0426.01] [JDK 1.4.2 cxia321420-20040626] running with
process name svt01\svt01\server1 and process id 6690
Host Operating System is Linux, version 2.4.21-9.ELsmp

Another important message to validate is the WebSphere Application Server and JDK level
and build dates as shown in Example 5-2. This message is always the first line in any
SystemOut.log. You can also identify the operating system. In our case, we have Linux
installed using the specified Linux kernel level. Again, this provides a quick and easy way for
the system administrator to validate the software installed.

All WebSphere Voice Server messages begin with the identifier CWV. In the WebSphere
Voice Server Information Center, you can look up any CWV message and see the
explanation and user action. We used a warning message in Example 5-3 from the Media
Converter component in the SystemOut.log to understand what action the system
administrator should take (Example 5-4).

Example 5-3 Media Converter warning message in SystemOut.log

[3/2/05 18:47:30:945 EST] 72278d5b MediaConv W CWVMC0012W:


[sid=1163.IBM.9.22.96.170][rid=-1][turn=3] The Media Converter ASR subsystem received 0 RTP
packets on port=52,328 recognize mode=1.

Example 5-4 WebSphere Voice Server InfoCenter help for Media Converter message
CWVMC0012W: The Media Converter ASR subsystem received 0 RTP packets on port={0} recognize
mode={1}.
Explanation: This is an unexpected error. The cause can not be immediately determined.
User Response: For further information on resolving this error, please consult the IBM
WebSphere Voice Server Support website available at:
http://www.ibm.com/software/pervasive/voice_server/support/index.html. The site provides
searchable databases of technotes, solutions, and e-fixes. Information on contacting the
WebSphere Support team is also
provided.

5.2 Using the WebSphere Voice Server Administrative Console


The WebSphere Voice Server Information Center and WebSphere Voice Server for
Multiplatforms V5.1.1/V5.12 Handbook, SG24-6447 provide a very good overview of the
Administrative Console along with detailed instructions for using it. This section assumes that
you have an understanding of the Administrative Console.

The Administrative Console should be the first place that the system administrator goes to
see the WebSphere Voice Server system view of the status of all the machines. The
Administrator Console contains several WebSphere Voice Server console panels that offer
at-a-glance system monitoring. The WebSphere Voice Server system view shows a single
icon representing the overall status of all WebSphere Voice Servers in the cell. If all
WebSphere Voice Server machines are up and running, this icon is green. To interrogate the
individual status of the WebSphere Voice Server machines, click the link.

Chapter 5. Troubleshooting 103


As shown in Figure 5-1 on page 104, the overall status of the WebSphere Voice Server
system is Partial Start because one of the WebSphere Voice Servers has been stopped.

Figure 5-1 Administrative Console showing all WebSphere Voice Server machines status
Screen shot reprinted by permission from Microsoft Corporation

The system administrator can easily restart the WebSphere Voice Server from this panel by
selecting the stopped WebSphere Voice Server and clicking the Start button. This is reflected
in Figure 5-2 on page 105.

104 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-2 Administrative Console showing restarted WebSphere Voice Server machine
Screen shot reprinted by permission from Microsoft Corporation

With the Administrative Console the system administrator can view the SystemOut.log
remotely on the WebSphere Voice Server machine. If you have Deployment Manager
installed, then you can view the SystemOut.log for any machine in the cell. The
SystemOut.log allows for viewing all the messages in a file format. This is the quickest way to
review lots of log messages.

Every WebSphere Voice Server log entry also generates an alarm. Overall status of all
alarms is shown at the bottom of the Administrative Console. In Figure 5-2, 46 error alarms
have been generated and reviewed by the system administrator. The Administrative Console
automatically keeps track of the alarms that are new and have not been reviewed. The
system administrator can also clear all the alarms at any time. The alarm view presents
several alarms at a time and provides detailed help on every alarm.

While both approaches allow the system administrator to monitor changes in the system, the
SystemOut.log might be preferable for quick diagnosis.

5.3 Using Tivoli Performance Viewer


The Tivoli® Performance Viewer is a WebSphere Application Server graphical performance
monitor. It is installed in the WebSphere Application Server installation directory under bin.

Chapter 5. Troubleshooting 105


The Tivoli Performance Viewer can monitor data in real time or log the information to a
performance data log file for playback later. The WebSphere Voice Server Information Center
contains detailed tuning instructions for your machine. If you have performed all of these
steps, then there is no need to use the Tivoli Performance Monitor unless you are requested
to by IBM Support.

The most common Tivoli Performance Viewer use case scenario is to carefully monitor the
CPU and memory usage.

5.4 Using the WebSphere Collector Tool


The WebSphere Collector Tool obtains exhaustive information about your WebSphere Voice
Server and WebSphere Application Server installation as well as operating system,
networking, configuration files, Java data, and prerequisite software presence and levels.
This information is packaged into a Java ARchive (JAR) file that you can send to IBM
Customer Support or use as input to the Voice Toolkit Voice Trace Analyzer.

To run the Collector Tool, perform the following steps:


1. Log into the system as Root on Linux or Administrator on Windows. The Collector Tool
needs to run under root or administrator because some commands require system access
authority.
2. Create a temporary directory where the Collector Tool can be invoked and write the JAR
file.
3. Make the temporary directory the current directory.
4. Invoke the Collector Tool as shown in Example 5-5 or Example 5-6. As the Collector Tool
runs, it will output a lot of messages and create and delete several temporary files. The
Collector Tool will continue even if an error is encountered with a single command. Do not
invoke the Collector Tool from under any WebSphere AppServer directory.

Example 5-5 Running Collector Tool on Linux


>mkdir work
>cd work
>/opt/WebSphere/AppServer/bin/collector.sh

Example 5-6 Running Collector Tool on Windows


C:\>md work
C:\>cd work
C:\>”C:\Program Files\WebSphere\AppServer\bin\collector”

When the Collector Tool has completed, a JAR file will be created based upon your host
name and the WebSphere Base or Network Deployment product installed, in the format:
hostname-ND-WASenv.jar or hostname-Base-WASenv.jar.

5.5 Using the Voice Toolkit Voice Trace Analyzer


The WebSphere Voice Server Information Center and WebSphere Voice Server for
Multiplatforms V5.1.1/V5.12 Handbook, SG24-6447 provides an entire chapter with extensive
information and screen shots of the Voice Trace Analyzer.

106 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-3 shows an example of the Voice Trace Analyzer output showing recognition results
for each MRCP session. Most of the sessions have successful recognitions. A no-match
recognition on the third turn of the 1016697 MRCP session is highlighted in red.

Figure 5-3 Example Voice Trace Analyzer Recognitions Tab

5.6 Installation troubleshooting help


The WebSphere Voice Server Information Center and WebSphere Voice Server for
Multiplatforms V5.1.1/V5.12 Handbook, SG24-6447 provide extensive information to
troubleshoot installation.

5.7 Configuration troubleshooting examples


There are several configuration troubleshooting examples covered. They include
troubleshooting the Intel NetStructure combined media board, troubleshooting with the
Genesys Voice Communication Server Monitor, and troubleshooting configuration problems
between WebSphere Voice Server and Genesys.

Chapter 5. Troubleshooting 107


After the Intel Dialogic software has been installed, it must be configured for the proper switch
and line protocols. There is a tool provided by Intel Dialogic that assists us to ensure that we
are communicating and have the proper handshake with the switch.
1. To run this tool, click Start →Run and type the following command:
“C:\Program Files\Dialogic\Bin\Lineadmin.bat -board 0”

Important: Use the double quotes as shown because Microsoft Windows 2000 cannot
properly find the application if you do not.

Click OK.
2. A GUI application as shown in Figure 5-4 opens on your screen in about 20 seconds. This
application tells the status of the installed Intel NetStructure combined media board. In this
case we have a dual port card (48 ports), but only the first card has something connected
to it. The red and green lights tell us that we have a connection, but we are not
communicating properly. This can be caused by one of two problems. Either the cable is
not properly pinned, or the configuration file is not set for the proper line type.
To see the information shown, click Display →Advanced which will show us the Adv
Alarm Status. Click Display →Log to see the logging information at the bottom of the
window.

Figure 5-4 Lineadmin with wrong protocol

3. To locate the problem as shown in Figure 5-4 we first must open the proper configuration
file for the protocol that is being used. In this example we are configuring a dual span card
for a DMS100 switch. The file we need is the ml2_dsa_dms.config. Open it with a text
editor. Go to the lineadmin.1 section as shown in Example 5-7 on page 109 because we
are only working with the first 24 ports. There are three settings we must confirm that are
set properly.
a. The first is the SetParm=0x1601. We are connected as an ISDN-PRI line so this setting
must be set to dsx1_ESF. To make the change simply replace the 0 with a 1. The
parameter should then look like SetParm=0x1601,0.

108 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
b. Set the SetParm=0x1602 to be 5, so that it reads SetParm=0x1602,5.
c. Set the SetParm=0x1603 to equal 7, so that it reads SetParm=0x1603,7.
Save the file and then regenerate the FCD file as shown in Figure 5-10 on page 112.
When the file has been regenerated. stop all Intel Dialogic services and restart them.

Tip: Stop the CTBusBroker and it will stop all associated services at the same time. To
restart, start the Intel Dialogic System Service and it will restart all of the associated
services for you.

Example 5-7 ml2_dsa_dms.config file


[lineAdmin.1] ! Instance 1
SetParm=0x1601,0 ! LineType (dsx1_D4=0, dsx1_ESF=1)
SetParm=0x1602,4 ! SignalingType (CAS=4, CCS=5, Clear=6)
!For NFAS Trunks only-The Signaling Type
!parameter under the LineAdmin section must
!be set to indicate Clear Channel mode.
SetParm=0x1603,8 ! Coding (B8ZS=7, AMI=8)
SetParm=0x1604,13 ! ZeroCodeSuppression (Bell=10, GTE=11, DDS=12, None=13)
! The Line Alarm Handler parameter values below are
! the T1 recommended values and ranges.
SetParm=0x160C,2500 ! LOSDeclaredTime millisecond (0-2.5 seconds)
SetParm=0x160D,2500 ! LOSClearedTime millisecond (0-2.5 seconds)
SetParm=0x1609,4 ! REDCFADecay (1/4=4 1/15=15, 4-15)
SetParm=0x160A,2500 ! REDCFADeclareTime millisecond (2.5 seconds)
SetParm=0x160B,15000 ! REDCFAClearedTime millisecond (1-15 seconds)

4. In Figure 5-5 on page 110 we have an example where the line type and coding is correct
but there is no D-Channel. In the Adv Alarm Status there is a black dot beside the
DChannel indicating that it is missing. Once again we must open the appropriate config
file and go to the line admin section for that port.

Chapter 5. Troubleshooting 109


Figure 5-5 Lineadmin showing no D Channel

5. As in the previous illustration, we must change the SetParm=0x1602 as shown in


Example 5-8 to equal CCS. ISDN-PRI lines will only work with this signal type. The
changed parameter should read as SetParm=0x1602,5. When you have made the change
and saved the file, regenerate the FCD, then stop and restart the Intel Dialogic services as
described in step 3 on page 108.

Example 5-8 ml2_dsa_dms with invalid line signaling


[lineAdmin.1] ! Instance 1
SetParm=0x1601,1 ! LineType (dsx1_D4=0, dsx1_ESF=1)
SetParm=0x1602,4 ! SignalingType (CAS=4, CCS=5, Clear=6)
!For NFAS Trunks only-The Signaling Type
!parameter under the LineAdmin section must
!be set to indicate Clear Channel mode.
SetParm=0x1603,7 ! Coding (B8ZS=7, AMI=8)
SetParm=0x1604,13 ! ZeroCodeSuppression (Bell=10, GTE=11, DDS=12, None=13)
! The Line Alarm Handler parameter values below are
! the T1 recommended values and ranges.
SetParm=0x160C,2500 ! LOSDeclaredTime millisecond (0-2.5 seconds)
SetParm=0x160D,2500 ! LOSClearedTime millisecond (0-2.5 seconds)
SetParm=0x1609,4 ! REDCFADecay (1/4=4 1/15=15, 4-15)
SetParm=0x160A,2500 ! REDCFADeclareTime millisecond (2.5 seconds)
SetParm=0x160B,15000 ! REDCFAClearedTime millisecond (1-15 seconds)

In Figure 5-6 on page 111 we now have a green light on the Alarm status for port number 1
and a green light indicating that the D-Channel is available. This card is now ready to receive
calls.

110 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-6 Lineadmin with valid protocols

In Example 5-9 you can see the three parameters with the proper setting.

Example 5-9 ml2_dsa_dms.config with proper settings


[lineAdmin.1] ! Instance 1
SetParm=0x1601,1 ! LineType (dsx1_D4=0, dsx1_ESF=1)
SetParm=0x1602,5 ! SignalingType (CAS=4, CCS=5, Clear=6)
!For NFAS Trunks only-The Signaling Type
!parameter under the LineAdmin section must
!be set to indicate Clear Channel mode.
SetParm=0x1603,7 ! Coding (B8ZS=7, AMI=8)
SetParm=0x1604,13 ! ZeroCodeSuppression (Bell=10, GTE=11, DDS=12, None=13)
! The Line Alarm Handler parameter values below are
! the T1 recommended values and ranges.
SetParm=0x160C,2500 ! LOSDeclaredTime millisecond (0-2.5 seconds)
SetParm=0x160D,2500 ! LOSClearedTime millisecond (0-2.5 seconds)
SetParm=0x1609,4 ! REDCFADecay (1/4=4 1/15=15, 4-15)
SetParm=0x160A,2500 ! REDCFADeclareTime millisecond (2.5 seconds)
SetParm=0x160B,15000 ! REDCFAClearedTime millisecond (1-15 seconds)

In Example 5-10 on page 112 we have the command set that will generate the FCD file after
editing the changes to the configuration file.

Note: These changes should not be needed in most installations because they are already
preset for the protocol you will be using. However should you be required to make the
changes, be sure to review the online bookshelf provided with the Intel Dialogic software
installation.

Chapter 5. Troubleshooting 111


Example 5-10 Compiling FCD file
C:\Program Files\DIALOGIC\data>..\bin\fcdgen ml2_dsa_dms.config

fcdgen Version 1.00 Beta 7 Build: 01


Copyright (c) Dialogic Corporation 2000
Building ml2_dsa_dms.fcd from ml2_dsa_dms.config

C:\Program Files\DIALOGIC\data>

5.7.1 Genesys Voice Communication Server Monitor


The Genesys Voice Communication Server Monitor in GVP is the Web-based interface where
you can monitor and configure components of the VCS. To get to the VCS, enter:
http://vcs_server:9810

Do this in a browser that has access to the VCS machine on the network. You will be
presented with the VCS Monitor home page as shown in Figure 5-7.

Figure 5-7 VCS Monitor home page


Screen shot reprinted by permission from Microsoft Corporation

There are several links you can navigate to on the left window pane for the VCS.
򐂰 A link of interest is Management →Voice Ports as shown in Figure 5-8 on page 113. This
shows all of the voice ports configured in the VCS and attributes related to those ports.
You can see real time call status on the ports by clicking the Refresh link.

112 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-8 VCS Monitor Voice Port Status
Screen shot reprinted by permission from Microsoft Corporation

򐂰 Another link of interest is Management →Logging as shown in Figure 5-9 on page 114.
This is where you can configure your log levels for GVP. You can select any of the GVP
processes as shown in Figure 5-10 on page 114 and set their log level as shown in
Figure 5-11 on page 115.

Note: Setting the log level to Full causes a high volume of files to be written to the hard
drive. Only use this setting when you are debugging. When you are finished debugging,
make sure you set the log level back to a lower setting.

To debug VoiceXML problems, select popgateway1, which is the process that


manages the first two trunks. If you have more than two trunks, popgateway2
manages the third and fourth trunks.

Chapter 5. Troubleshooting 113


Figure 5-9 VCS Monitor Log Setting
Screen shot reprinted by permission from Microsoft Corporation

Figure 5-10 VCS Monitor Log Setting Process Name


Screen shot reprinted by permission from Microsoft Corporation

114 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-11 VCS Monitor Log Setting Log Level
Screen shot reprinted by permission from Microsoft Corporation

򐂰 Another link of interest is Current Activity →Call Summary as shown in Figure 5-12. The
Current Call summary shows your current inbound and outbound activity on the VCS.
Statistics can be seen in real time by clicking the Refresh link as needed.

Figure 5-12 VCS Monitor Current Call Summary


Screen shot reprinted by permission from Microsoft Corporation

Chapter 5. Troubleshooting 115


Important: Before you attempt to troubleshoot any component of GVP you should check to
see if the Watchdog service is down. If it is down, you will see the page illustrated in
Figure 5-13 when you try to open the VCS in a browser. If this is the case, you need to
troubleshoot why Watchdog is not started.

Figure 5-13 VCS Monitor WatchDog service is down


Screen shot reprinted by permission from Microsoft Corporation

5.7.2 WebSphere Voice Server Genesys configuration examples


There are a few steps to insure that both the WebSphere Voice Server and Genesys products
can communicate correctly.
1. Insure that the Genesys machine can ping the WebSphere Voice Server. The WebSphere
Voice Server machine is specified during the GVP Configurator step where you entered
the MRCP ASR URL (for example, rtsp://gvp.bocaraton.ibm.com/media/recognizer)

Tip: We have found it more flexible to specify the hostname of the WebSphere Voice
Server machine in the GVP Configurator and not the IP address. If you ever decide to
change to a different WebSphere Voice Server, then you can simply edit the etc/hosts
file and remap the WebSphere Voice Server hostname specified to the IP address of
the new WebSphere Voice Server machine. You do not have to rerun the GVP
Configurator.

To ensure that the WebSphere Voice Server to Genesys machine communications are
not impacted by DNS server machine failures, we add an entry for the hostname and IP
address to each machine’s etc/hosts file.

2. Ensure that the WebSphere Voice Server machine can ping the Genesys machine.
3. Edit the telera.ini file and search for rtsp://. The information about this line should match
the WebSphere Voice Server machine ASR MRCP URL. The telera.ini file is an output
only file. If this line is not correct, then do not edit the telera.ini file. You need to either
rerun the GVP Configurator or if you specified a hostname, remap the hostname to the
correct WebSphere Voice Server IP address in the etc/hosts file.

116 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
4. If you are using the IBM TTS Connector, edit the IBMTextToSpeech.ini file in the
Drive:\Install Folder\config directory, which is usually C:\CN\Config. Insure that the
MrcpUrl entry matches your WebSphere Voice Server machine. If you are using Load
Balancer, then it should be the cluster address of the Load Balancer. It should be specified
in the format: rtsp://websphere_voice_server_hostname/media/synthesizer. If you
change this file, you will need to stop and restart the Watchdog for any changes to take
effect.
5. Ensure that WebSphere Voice Server has been configured to communicate successfully
with Genesys. You must insure that you have run the Genesys configuration script by
performing WAS Install Directory/bin/configureGenesys.sh on Linux, or Drive:\WAS
Install Directory\bin\configureGenesys on Windows. To troubleshoot this problem,
make a phone call. If the call is not successful using ASR, then check your
popgateway1.log for the following errors.
Example 5-11 shows the errors that will appear in “popgateway1.log” if WebSphere Voice
Server has not been configured for use with Genesys.

Example 5-11 WebSphere Voice Server not configured for Genesys errors in popgateway1.log
[2005/04/15 21:32:12.859] A4C RTSPMsgParser.cpp:228 C=57:L=1:U=0 parseRTSPResponse Function failed while
parsing CSeq Code
[2005/04/15 21:32:12.859] A4C RTSPMsgReceiverThread.cpp:176 C=57:L=1:U=0 parseRTSPResponse function failed
[2005/04/15 21:32:22.796] 45C CnMRCP.cpp:1013 C=56:L=1:U=915 ({FE6E7EEF-EDEC-4D84-B0E6-9BDBECF0D238})
Timeout getting response for Describe function
[2005/04/15 21:32:22.796] 45C CnMRCP.cpp:1014 C=56:L=1:U=915 ({FE6E7EEF-EDEC-4D84-B0E6-9BDBECF0D238})
Request ID = [1]
[2005/04/15 21:32:22.796] 45C CnMRCPAsr.cpp:891 C=56:L=1:U=915 ({FE6E7EEF-EDEC-4D84-B0E6-9BDBECF0D238})
MRCP describe Function failed
[2005/04/15 21:32:22.796] 45C TelephonyMgr.cpp:14440 C=10:L=2:U=920 [:N_dtiB1T1:P_dmv] recognizeGOSAPI:
Failed: Bridge::BRC = 8
[2005/04/15 21:32:22.812] 45C VxmlUtil.cpp:3481 C=12:L=1:U=321 VXML Error: event(error), message(Internal
error), element(Root_Document->vxml->[lang_form] form1->[lang] field1->prompt2 @
http://wvsdev103/VPM/perfy2/perfy.vxml?NEXTACTION=START&ANI=$ani$&DID=$did$&SESSIONID={FE6E7EEF-EDEC-4D84-B
0E6-9BDBECF0D238}&ScriptID=$sid$&ScriptData=$scriptdata$), current url
(http://wvsdev103/VPM/perfy2/perfy.vxml?NEXTACTION=START&ANI=$ani$&DID=$did$&SESSIONID={FE6E7EEF-EDEC-4D84-
B0E6-9BDBECF0D238}&ScriptID=$sid$&ScriptData=$scriptdata$)

5.8 ASR troubleshooting examples


Example 5-12 is from the GVP popgateway log showing a compile error in the
universals-grammar file. The fix for this was to remove the hyphen (“-”) from the root name
and the root-rule name in the universals-cancel.grxml file. This problem is caused by the
universals-grammar file not being SRGS specification-compliant. To correct this problem, all
grammar files had to have this modification made before the application was able to work.

Example 5-12 Compile Error from popgateway log


[2005/04/08 16:54:58.390] 938 CnMRCP.cpp:2155 C=56:L=1:U=915 ({F98AF841-AEE3-4331-B4E7-E7C296B84E8D})
Failed with Response Code = 407
[2005/04/08 16:54:58.390] 938 CnMRCP.cpp:2156 C=56:L=1:U=915 ({F98AF841-AEE3-4331-B4E7-E7C296B84E8D})
Response = MRCP/1.0 9 407 COMPLETE
Failed-Uri-Cause: Unable to compile:session:grammar209%7C%7B65602982-9334-4109-B48C-3F662A8D6470%7D:Invalid
Characters in Root Rule Name - 'universals-cancel'

Chapter 5. Troubleshooting 117


Example 5-13 is from the popgateway log showing a bad fetch error for an audio file that did
not exist. This problem was corrected by copying the referenced audio file to folder while the
URL was looking to find it.

Example 5-13 File not found error in popgateway.log


[2005/04/08 15:53:46.218] 7D8 XMLData.cpp:4209 C=12:L=1:U=321 downLoadFile: pageCollector failed
[0x80040194]
[2005/04/08 15:53:46.218] 7D8 XMLData.cpp:4229 C=12:L=1:U=311 Exception::DownloadFile:
http://wvaa.demo.ibm.com/GVP/iceCream%20audio/S00010s.wav
[2005/04/08 15:53:46.218] 7D8 PlayList.cpp:1533 C=12:L=2:U=320 PlayList::downloadAudio Failed to download
audio
[2005/04/08 15:53:46.218] 7D8 XMLData.cpp:2450 C=12:L=1:U=321 Could not send the trap:The ErrorString is
:RESOURCE_NOTFOUND : File was not foundhttp://wvaa.demo.ibm.com/GVP/iceCream%20audio/S00010s.wav :The URL
of the xmlpage where this voxfile is referenced is
http://wvaa.demo.ibm.com/GVP/iceCream.jsv?NEXTACTION=START&ANI=$ani$&DID=6666666&SESSIONID={4D4EC6CE-19FA-4
F6A-B545-885D16D8879F}&ScriptID=$sid$&ScriptData=$scriptdata$ ErrorURL: : CCThread:Inbound
[2005/04/08 15:53:51.656] 154 CnMRCP.cpp:2155 C=56:L=1:U=915 ({4D4EC6CE-19FA-4F6A-B545-885D16D8879F})
Failed with Response Code = 407
[2005/04/08 15:53:51.671] 154 CnMRCP.cpp:2156 C=56:L=1:U=915 ({4D4EC6CE-19FA-4F6A-B545-885D16D8879F})
Response = MRCP/1.0 9 407 COMPLETE

5.8.1 WebSphere Voice Server troubleshooting No-Input and No-Match


problems
To troubleshoot these problems, enable WebSphere Voice Server tracing using the
Administrative Console, recreate the problem, and use the Voice Toolkit Voice Trace Analyzer
for rapid problem solving.
1. Using a Web browser, start the WebSphere Administrative Console.
2. Select Troubleshooting →Logs and Trace- →server1 →Diagnostic Trace. Select the
Runtime tab and type the following into the Trace Modify window:
RTSPBridge=all=enabled:MediaConv=event=enabled. Click OK. This will dynamically
enable trace to save all MRCP messages and record the incoming audio for all sessions.
See Figure 5-14 on page 119.

118 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-14 Setting WebSphere Voice Server tracing for ASR troubleshooting

3. When you have recreated the problem, set the Trace Modify window back to:
*=all=disabled. Then click OK. This will disable all tracing.
4. Run the collector tool to create a JAR file that contains all required information as
explained in 5.4, “Using the WebSphere Collector Tool” on page 106.
5. Use the Voice Toolkit Voice Trace Analyzer and import the JAR as explained in 5.5, “Using
the Voice Toolkit Voice Trace Analyzer” on page 106.

Chapter 5. Troubleshooting 119


6. Click Problems. This tab shows all the ASR related errors, including no-input and
no-match problems. Figure 5-15 shows an example of the Voice Trace Analyzer screen
highlighting a no-match problem.

Figure 5-15 Example Voice Trace Analyzer Problems Tab

7. To debug a no-input problem, listen to the saved audio file by double-clicking the speaker
icon. You should expect to hear silence. If you click Call Prompt, you can see where in
the flow this no-input occurred. Usually, you will need to review the VoiceXML application
and insure that your prompts are clear and that you have given the user adequate time to
answer the prompts.
8. To debug a no-match problem, also listen to the saved audio file. You can use the
Transcription file to record what the user has spoken. You can click Grammars to see the
active grammars for this turn. A no-match is returned when the user has spoken an
utterance not in the active grammars.

5.8.2 WebSphere Voice Server troubleshooting audio quality problems


Repeat the steps detailed in 5.8.1, “WebSphere Voice Server troubleshooting No-Input and
No-Match problems” on page 118. In the Voice Toolkit Voice Trace Analyzer, you can listen to
any of the recorded audio files. Select one that appears to have noise, distortion or clipped
audio. Select Perform Audio Analysis. See Figure 5-16 on page 121.

120 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Figure 5-16 Example Voice Trace Analyzer Audio Analysis Results

5.8.3 WebSphere Voice Server other ASR troubleshooting tips


The WebSphere Voice Server Information Center has a Troubleshooting main navigational
topic. Under this topic is Troubleshooting by component. ASR Troubleshooting Tips are a
subsection. This is sub-section lists a variety of ASR tips for troubleshooting common
problems. It is the best source of self-help information.

5.9 TTS troubleshooting examples


In Example 5-14, we have an error where the application is getting a resource not found
when trying to play a text prompt. There are many reasons this error can be the result of, but
mainly it is because the application is trying to use a language that is not installed. Another
reason could be that there are not enough TTS engines running. To find the root cause, we
need to look at the TTS_IBM.log, found in the same folder where the popgateway logs are
located.

Example 5-14 Resource not found error in popgateway.log


[2005/04/11 13:14:09.578] 7E0 PlayList.cpp:1508 C=12:L=2:U=320 PlayList::downloadAudio TTS resource not
found
[2005/04/11 13:14:09.578] 7E0 XMLData.cpp:2450 C=12:L=1:U=321 Could not send the trap:The ErrorString is
:NETWORK_ERROR : Error Code:800401C8
http://localhost:9810/webnotify.asp?notifyProcess=TTS_IBM&ACTION=CONVERT&VOICEFORMAT=BASIC&GENDER=MALE&LANG

Chapter 5. Troubleshooting 121


UAGE=en-US&SESSIONID={1942D94B-396F-4208-830F-D6DFFED0A647}&APPNAME=InstallTestApp&TOLLFREENUM=8001234567&R
ESELLERNAME=Genesys&CUSTNAME=CodeCenter&DID=5555555&ANI=$ani$&tts_tmo=8 ErrorURL:
http://localhost:9810/webnotify.asp?notifyProcess=TTS_IBM&ACTION=CONVERT&VOICEFORMAT=BASIC&GENDER=MALE&LANG
UAGE=en-US&SESSIONID={1942D94B-396F-4208-830F-D6DFFED0A647}&APPNAME=InstallTestApp&TOLLFREENUM=8001234567&R
ESELLERNAME=Genesys&CUSTNAME=CodeCenter&DID=5555555&ANI=$ani$&tts_tmo=8: CCThread:Inbound
[2005/04/11 13:14:09.578] 7E0 VxmlUtil.cpp:3481 C=12:L=1:U=321 VXML Error: event(error.noresource),
message(Error Code:800401C8
http://localhost:9810/webnotify.asp?notifyProcess=TTS_IBM&ACTION=CONVERT&VOICEFORMAT=BASIC&GENDER=MALE&LANG
UAGE=en-US&SESSIONID={1942D94B-396F-4208-830F-D6DFFED0A647}&APPNAME=InstallTestApp&TOLLFREENUM=8001234567&R
ESELLERNAME=Genesys&CUSTNAME=CodeCenter&DID=5555555&ANI=$ani$&tts_tmo=8),
element(Leaf_Document->vxml->form1->block1->prompt1 @
http://localhost:80/VPM/Database/AppUrl/test/PROMPT1%2Easp), current url
(http://localhost:80/VPM/Database/AppUrl/test/PROMPT1%2Easp)

In Example 5-15 we see in the first line that the problem is caused by an invalid language
resource. The WebSphere Voice Server does not have a US English language, male voice
installed. To correct the problem, simply open the application and go to the language format
on the prompt and select the proper language to match WebSphere Voice Server.

Example 5-15 TTS_IBM.log


[2005/04/11 13:14:09.546] 9B0 Request.cpp:1371 C=33:L=1:U=0 Language en-US and Gender MALE not running on
this TTS Server.
[2005/04/11 13:14:09.546] 9B0 LangMIBMgt.cpp:201 C=33:L=2:U=0 Language MIB not found for en-US_MALE_
assign to UNSUPPORTED
[2005/04/11 13:14:09.546] 9B0 CTTS.cpp:371 C=33:L=1:U=0 Request Not Initialized. Return without
processing.
[2005/04/11 13:14:09.546] 9B0 CTTS.cpp:1451 C=33:L=1:U=0 Sending Trap: ClientIP=127.0.0.1
SessionID={1942D94B-396F-4208-830F-D6DFFED0A647} ANI=$ani$ DID=5555555 Desc=Language Not Support.
Lang=en-US Gender=Male VoiceName= Text=Thanks for calling

5.9.1 WebSphere Voice Server TTS Voice Tuning


All WebSphere Voice Server voices have the same configuration properties so that each
customer may tune any voice to their requirements. The WebSphere Voice Server TTS
support is SSML V1.0 specification compliant. Detailed information about the TTS support is
also included in the Voice Toolkit documentation in the Using IBM Text to Speech
Technology and Speech Synthesis Markup Language Guide. These properties are:
򐂰 Prosody-Pitch or speaker’s base pitch.
򐂰 Prosody-Range or speaker’s pitch fluctuation

Note: The Using IBM Text to Speech Technology and Speech Synthesis Markup
Language Guide has an excellent in depth write up on pitch and range.

򐂰 Prosody-Volume or speaker’s loudness


You would modify this property if the voice is speaking too softly or to loud.
򐂰 Prosody-Rate or speaker’s number of words spoken per minute
You would modify this property if the voice is speaking too fast or too slow.

122 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
5.9.2 WebSphere Voice Server TTS mispronounces certain words
WebSphere Voice Server TTS supports use of the say-as SSML feature for correctly
speaking boolean, date, time, currency, phone numbers, number, and digits. Detailed
information and examples on the say-as feature is included in the Voice Toolkit documentation
in the Using IBM Text to Speech Technology and Speech Synthesis Markup Language Guide.

You can also use the Voice Toolkit Pronunciation Builder, a GUI-based tool, to create
alternative pronunciations quickly for words that the TTS engine mispronounces. It allows for
collecting and building these into a lexicon file. The lexicon file can be specified in the
Administrative Console WebSphere Voice Server Configuration panel for each machine so
that it is preloaded when WebSphere Voice Server is started and all TTS engines understand
how to pronounce the words in the lexicon files.

5.9.3 WebSphere Voice Server other TTS troubleshooting tips


The WebSphere Voice Server Information Center has a Troubleshooting main navigational
topic. Under this topic is Troubleshooting by component. TTS Troubleshooting Tips are a
subsection. This subsection lists a variety of TTS tips for troubleshooting common problems.
It is the best source of self-help information.

Chapter 5. Troubleshooting 123


124 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Abbreviations and acronyms
ANI Automatic Number Identification
ASR Automatic Speech Recognition
CCXML Call Control Extensible Markup
Language
CTI Computer Telephony Interface
DLL Dynamic Link Library
DNIS Dialed Number Identification
Service
DTMF Dual Tone Multi Frequency
EE Enterprise Edition
GUI Graphical User Interface
GVP Genesys Voice Platform
HA High Availability
HTML HyperText Markup Language
IBM International Business Machines
Corporation
ISDN Integrated Services Digital Network
ITSO International Technical Support
Organization
J2EE Java 2 Platform, Enterprise Edition
MRCP Media Resource Control Protocol
NE Network Edition
NLSR Natural Language Speech
Recognition
PBX Private Branch eXchange
PSTN Public Switched Telephone
Network
RDBMS Relational Database Management
System
RTSP Real Time Streaming Protocol
SSML Speech Synthesis Markup
Language
TTS Text to Speech
URI Uniform Resource Identifier
VCS Genesys Voice Communication
Server
VoiceXML Voice Extensible Markup Language
VPM Genesys Voice Portal Manager
VoiceXML Voice eXtensible Markup Language

© Copyright IBM Corp. 2005. All rights reserved. 125


126 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Glossary

ANI. See Automatic Number Identification. confirmation. Short dialog flow that repeats a
recognition result back to the caller and asking him or her
ASR. See Automatic Speech Recognition. to confirm that it is correct.

Automatic Number Identification (ANI). A service that CTI. See Computer Telephony Integration
tells the recipient of a telephone call the telephone
number of the person making the call. database. A collection of information stored in a
computer in a systematic way, such that a computer
Automatic Speech Recognition (ASR). Speech program can consult it to answer questions.
recognition technologies allow computers equipped with a
source of sound input, such as a telephone handset or debug. The process of locating and correcting errors in
microphone, to interpret human speech. computer programs.

barge-in. A capability that allows callers to speak or default. A particular setting or value for a variable that
enter their responses during the prompt. is assigned automatically by an operating system and
remains in effect unless canceled or overridden by the
Call Control eXtensible Markup Language (CCXML). operator.
is an XML standard designed to provide telephony
support to VoiceXML. Where as VoiceXML is designed to Dialed Number Identification Service (DNIS). A
provide a VUI interface to a voice browser, CCXML is telephone function that sends the dialed telephone
designed to inform the voice browser how to handle the number to the answering service.
telephony control of the voice channel. The two
languages are wholly separate are not required by each dialog box. A secondary window in which you are
other to be implemented. asked to fill in information.

call flow. The "path" that a caller is directed through dialog. Interactions between the caller and the
when interacting with a voice response system. application are called dialogs.

CCXML. See Call Control eXtensible Markup directory. A type of file used to group and organize
Language. other files or directories. Also called a folder.

cluster. A group of locally connected computers that DNIS. See Dialed Number Identification Service.
work together as a unit.
DTMF. See Dual Tone Multi Frequency tones.
component. A predefined segment of a voice-driven
application. Dual Tone Multi Frequency tones (DTMF). The
system used by touch-tone telephones. DTMF assigns a
Computer Telephony Integration (CTI). The name specific frequency (made up of two separate tones) to
given to the merger of traditional telecommunications each key so that it can easily be identified by a
(PBX) equipment with computers and computer microprocessor. This is basically the technology behind
applications. The use of caller ID to retrieve customer touch tone dialing.
information automatically from a database is an example
of a CTI application. form. A document (printed or electronic) with spaces in
which to write or enter data.
confidence Score. A value that indicates how certain
the recognizer is that the result is correct. The confidence Graphical User Interface (GUI). a user interface based
value can be used by the application to decide whether to on graphics (icons and pictures and menus) instead of
proceed without asking for confirmation of the data, text.
whether to ask for confirmation of the data, or whether to
ask the caller to repeat the data. GUI. See Graphical User Interface.

configuration. The arrangement of the software and hardware. The physical components of a computer
hardware in a computer system or network. system, such as keyboards, monitors, and media disk
drives.

© Copyright IBM Corp. 2005. All rights reserved. 127


Integrated Services Digital Network (ISDN). An parameter. A value or object which is used to transfer
international standard for end-to-end digital transmission information to or from subprograms. Input parameters can
of voice, data and signaling. be thought of as being copied into the subprogram when
it is called, and output parameters can be thought of as
interactive Voice Response (IVR). A having their values copied back to the caller when the
telecommunications system that uses prerecorded voice subprogram returns.
messages to present options to a user.
PBX. See Private Branch eXchange.
interface. The point of interaction or communication
between a computer and any other entity, such as a platform. A platform refers to a framework on which
printer or human operator. applications may be run.

ISDN. See Integrated Services Digital Network. port. A connection to a device that allows data or
information to travel into and out of the device.
IVR. See Interactive Voice Response.
predictive dialing. Automated dialing feature in which
J2EE. See Java 2 Platform, Enterprise Edition. the systems predicts from pre-set algorithms when an
agent/operator will become free and makes the call in
Java 2 Platform, Enterprise Edition (J2EE). An advance.
environment for developing and deploying enterprise
applications, defined by Sun Microsystems Inc. The J2EE Private Branch eXchange (PBX). A private telephone
platform consists of a set of services, application switching system, usually located on a company's
programming interfaces (APIs), and protocols that provide premises.
the functionality for developing multi-tiered, Web-based
applications. prompt. a message played to a caller that gives the
caller a choice of selections in a menu and asks for a
Media Resource Control Protocol (MRCP). The response. Compare to announcement.
Media Resource Control Protocol was created by the
Internet Engineering Task Force (IETF). It is a proxy server. A server that receives requests intended
communication protocol which allows speech servers to for another server and that acts on the behalf of the client
provide various speech services (such as speech behalf (as the client proxy) to obtain the requested
recognition and speech synthesis) to its clients. Typically, service. A proxy server is often used when the client and
this means the server software will be running on one the server are incompatible for direct connection.
computer and clients can send MRCP messages to the
server over a network, usually on top of another protocol, PSTN. See Public Switched Telephone Network.
such as RTSP or TCP.
Public Switched Telephone Network (PSTN). The
menu. A graphical user interface element which allows traditional analog network that routes voice calls from one
the user to select one among several, presumably related, location to another.
choices.
query. A query is a form of questioning in SQL language
module. A separate and distinct unit of hardware or to retrieve information from a database.
software that may be used as a component in a system.
RDBMS. See Relational Database Management
MRCP. See Media Resource Control Protocol. System.

Natural Language Speech Recognition (NLSR). An Real Time Streaming Protocol (RTSP). A
advanced type of speech recognition. NLSR can client/Server communication protocol that simplifies the
recognize particular words and phrases spoken by the distribution of multimedia contents on the Internet.
user.
Red Hat. A software company in the business of
NLSR. See Natural Language Speech Recognition. assembling open source components for the Linux
operating system and related programs into a distribution
node. A device connected to a network, such as a package.
computer or router.
Relational Database Management System (RDBMS).
T type of DBMS in which the database is organized and
accessed according to the relationships between data
values.

128 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
resilience. The ability of a structure to sustain the turnkey. A product or system that can be plugged in,
impact of a business interruption and recover and resume turned on, and operated with little or no additional
its operations to continue to provide minimum services. configuring.

round robin. A simple mechanism used by DNS Uniform Resource Identifier (URI). A URI is a
servers to share and distribute loads for network formatted string used to locate via name or location a
resources. resource document such as a VoiceXML document.

RTSP. See Real Time Streaming Protocol. URI. See Uniform Resource Identifier

scalability. The ability to increase or decrease size or Voice eXtensible Markup Language (VoiceXML).
capability in cost-effective increments with minimal impact The W3C's standard XML format for specifying interactive
on the unit cost of business and the procurement of voice dialogues between a human and a computer. It is
additional services. fully analogous to HTML, and brings the same
advantages of web application development and
script. The set of instructions for the target voice deployment to voice applications that HTML brings to
response system to follow during a transaction. visual applications.

servlet. A server-side Java program that provides VoiceXML. See Voice eXtensible Markup Language.
additional features to the server.
WAR. See Web ARchive.
software. The set or sets of programs that instruct the
computer hardware to perform a task or series of tasks. Web ARchive (WAR). A Web ARchive file is the new
J2EE standard for packaging Java Servlet based
Speech Synthesis Markup Language (SSML). A application, Java Server Pages and associated files and
markup language to control speech synthesis and text deploying them.
processing defined by the World Wide Web Consortium
(W3C).

SSML. See Speech Synthesis Markup Language.

SUSE. A privately owned company whose mission is to


promote open source development and General Public
License distribution and to be a Linux distribution provider.
SUSE assembles open source components for the Linux
operating system and related programs into a selection of
distribution packages.

Text to Speech (TTS). Text to Speech is an optional


feature that lets an application play language speech
directly from ASCII text by converting that text to
synthesized speech. The text can be used for prompts or
for text retrieved from a database or host, and can be
spoken in an application with prerecorded speech.

thin client. A low-cost computing device that accesses


applications and data from a central server over a
network. Categories of thin clients include
Windows-Based Terminals (WBT, which comprise the
largest segment), X-Terminals, and Network Computers
(NC).

topology. The physical layout of a network.

troubleshooting. The process of locating and


correcting errors in computer programs.

TTS. See Text to Speech.

Glossary 129
130 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Related publications

The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this Redpaper.

IBM Redbooks
For information about ordering these publications, see “How to get IBM Redbooks” on
page 133. Note that some of the documents referenced here may be available in softcopy
only.
򐂰 WebSphere Voice Server for Multiplatforms V5.1.1/V5.1.2 Handbook, SG24-6447

Other publications
These publications are also relevant as further information sources:
򐂰 Genesys Voice Platform: Enterprise Edition 6.5 Getting Started Guide
򐂰 Genesys Voice Platform: Enterprise Edition 6.5 Deployment Guide
򐂰 Genesys Voice Platform: Enterprise Edition 6.5 Reference Manual
򐂰 Genesys Voice Portal 6.5 Genesys Studio Developer’s Guide
򐂰 Genesys Voice Platform: Enterprise Edition 6.5 VoiceXML 2.0 Reference Manual
򐂰 Voice Web Application Platform 6.5 Getting Started Guide
򐂰 Voice Web Application Platform 6.5 Network Planning Guide
򐂰 Voice Web Application Platform 6.5 Operations and Provisioning Guide
򐂰 Voice Web Application Platform 6.5 Deployment Guide
򐂰 Voice Web Application Platform 6.5 Diagnostic and Troubleshooting Guide

Online resources
These Web sites and URLs are also relevant as further information sources:
򐂰 Genesys Global home
http://www.genesyslab.com
򐂰 Genesys Voice Platform
http://www.genesyslab.com/contact_center/products/interactions/voice_platform.asp
򐂰 Genesys Technical Support home
http://genesyslab.com/support/
򐂰 Intel Support and Downloads
http://support.intel.com/
򐂰 Microsoft Window Server 2003 TechCenter
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/default.mspx
򐂰 Red Hat Enterprise Linux server
http://www.redhat.com/software/rhel

© Copyright IBM Corp. 2005. All rights reserved. 131


򐂰 Softel Home Page
http://www.softel.com
򐂰 SUSE LINUX Enterprise Server
http://www.novell.com/products/linuxenterpriseserver
򐂰 World Wide Web Consortium (W3C) Home Page
http://www.w3c.org
򐂰 W3C recommendation of Speech Recognition Grammar Specification (SRGS) V1.0
http://www.w3.org/TR/2004/REC-speech-grammar-20040316
򐂰 W3C recommendation of Speech Synthesis Markup Language (SSML) V1.0
http://www.w3.org/TR/2004/REC-speech-synthesis-20040907
򐂰 W3C working draft of Semantic Interpretation for Speech Recognition (SISR)
http://www.w3.org/TR/2003/WD-semantic-interpretation-20030401
򐂰 W3C recommendation for Voice Extensible Markup Language (VoiceXML) V2.0
http://www.w3.org/TR/voicexml20
򐂰 WebSphere Application Server Zone
http://www.ibm.com/developerworks/websphere/zones/was
򐂰 WebSphere Application Server V5.1.x Information Center
http://publib.boulder.ibm.com/infocenter/ws51help/index.jsp?topic=/com.ibm.websphere.
base.doc/info/welcome_base.html
򐂰 WebSphere Application Server Network Deployment V5.1.x Information Center
http://publib.boulder.ibm.com/infocenter/ws51help/index.jsp?topic=/com.ibm.websphere.nd.
doc/info/welcome_nd.html
򐂰 WebSphere Application Server Base and Network Deployment editions recommended
updates
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
򐂰 WebSphere Edge Server for Multiplatforms Network Dispatcher (Load Balancer)
Administration Guide
ftp://ftp.software.ibm.com/software/websphere/edgeserver/info/doc/v20/en/NDguide.pdf
򐂰 WebSphere Voice family product documentation library
http://www.ibm.com/developerworks/websphere/zones/voice/proddoc.html#wvs
򐂰 WebSphere Voice Server Education and Class Information
http://www.ibm.com/developerworks/websphere/education/enablement
򐂰 WebSphere Voice Server for Multiplatforms V5.1.x Information Center
http://publib.boulder.ibm.com/infocenter/pvcvoice/51x/index.jsp
򐂰 WebSphere Voice Server Support Page
http://www-306.ibm.com/software/pervasive/voice_server/support
򐂰 WebSphere Voice Server System Requirements
http://www.ibm.com/software/pervasive/voice_server/system_requirements
򐂰 WebSphere Voice Server IVR and gateway compatibility Web page
http://www.ibm.com/software/pervasive/voice_server/ivrgateway.html

132 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
򐂰 WebSphere Voice Toolkit
http://www.ibm.com/software/pervasive/voice_toolkit
򐂰 WebSphere Voice Zone
http://www.ibm.com/developerworks/websphere/zones/voice

How to get IBM Redbooks


You can search for, view, or download Redbooks, Redpapers, Hints and Tips, draft
publications and Additional materials, as well as order hardcopy Redbooks or CD-ROMs, at
this Web site:
ibm.com/redbooks

Help from IBM


IBM Support and downloads
ibm.com/support

IBM Global Services


ibm.com/services

Related publications 133


134 IBM WebSphere Voice Server V5.1.1/V5.1.2 and Genesys Voice Platform: An Interoperability Guide
Back cover ®

IBM WebSphere Voice Server


for Multiplatforms
V5.1.1/V5.1.2 and Genesys
Voice Platform: An Redpaper
Interoperability Guide
Use Media Resource IBM's next generation WebSphere Voice Server V5.1.1 and V5.1.2
products leverage the power of IBM WebSphere Application
INTERNATIONAL
Control Protocol
Server. No other speech server in the industry can match the on TECHNICAL
(MRCP) for
demand capabilities that WebSphere Voice Server is able to SUPPORT
interoperability
provide as a result of it’s WebSphere Application Server base. We ORGANIZATION
Apply best practices wrote this IBM Redpaper to be an interoperability guide for
integrating Websphere Voice Server V5.1.1/V5.1.2 and the
to VoiceXML
Genesys Voice Platform.
development
BUILDING TECHNICAL
In this IBM Redpaper, we consider best practices as applied to INFORMATION BASED ON
Learn integration tips Voice User Interface (VUI) design. We implement and deploy a PRACTICAL EXPERIENCE
simple voice-enabled application using the Genesys Voice
Platform and WebSphere Voice Server V5.1.1/V5.1.2. IBM Redbooks are developed
by the IBM International
We will demonstrate how to develop, test, and deploy a simple Technical Support
voice-enabled application using the VoiceXML markup language. Organization. Experts from
IBM, Customers and Partners
We also demonstrate the use of Automatic Speech Recognition from around the world create
(ASR) and Text to Speech (TTS) voice technologies through timely technical information
examples. based on realistic scenarios.
Specific recommendations
With this paper, you can tailor and configure WebSphere Voice are provided to help you
implement IT solutions more
Server and the Genesys Voice Platform in basic and advanced effectively in your
topologies. environment.

We assume a basic knowledge of Interactive Voice Response


(IVR) systems and voice-enablement of applications using
VoiceXML, Genesys Voice Platform, and WebSphere Voice Server. For more information:
ibm.com/redbooks

Das könnte Ihnen auch gefallen