Red
The requirement for integrating mobile and voice capabilities comes spontaneously because many mobile devices support both voice and browser channels. Traditionally, clients use an online channel to interact with an enterprise through its website with great satisfaction and experience. They expect consistent experience and better service for all available channels with their greater mobile investment. They likely will not be happy with the enterprise if one channel of the service does not share information with another. They would stop doing business with the enterprise if they experienced poor service from any single channel.
Businesses are under increasing pressure to provide high-quality service while controlling costs. As a result, businesses are increasingly looking for ways to integrate existing systems, reduce future capital expenses, and increase operational effectiveness. Traditionally, a company's customer service center and internet center are operated separately, and they use different business models and access separate backend databases. Integration of voice and mobile enables a company to provide customers with the information they need via different channels by bringing together existing telephone network, data communications network, and business applications. The multi-channel support enables a company to provide more responsive service, support more programs, and deliver consistently accurate information in such areas as customer contact center service, mobile workforce service, and accessibility service. A company can integrate the Voice over IP (VoIP) technology to extend the reach of its services to provide the best possible service - anytime, anywhere while increasing savings and reduce operating costs.
ibm.com
/redbooks 1 © Copyright IBM Corp. 2005. All rights reserved.
The following sections describe each of the components used for integrating WebSphere®
Everyplace® Mobile Portal with WebSphere Voice products.
WebSphere voice products include WebSphere Voice Response, WebSphere Voice Server and WebSphere Voice Application Access. They can be smoothly integrated with WebSphere
Everyplace Mobile Portal to enable delivery of applications over voice. WebSphere voice components provide a connection environment (voice gateway), a speech recognition engine, and an integration plugin to WebSphere Portal Server.
WebSphere Voice Response provides a connection environment for connecting the telephone network with IP data network and transferring the voice data to a WebSphere
Voice Server. The connection environment can be also an Avaya, Cisco, or Genesys
Interactive Voice Response (IVR) system.
WebSphere Voice Server is based on industry standards:
VoiceXML to interact with the Web content
H.323 for VoIP
Voice eXtensible Markup Language (VoiceXML) is an XML-based markup language for creating distributed voice applications that users can access from any telephone. WebSphere
Voice Server mainly consists of an Automatic Speech Recognition (ASR) engine and a Text to Speech (TTS) engine.
The ASR engine recognizes voice input from the user and converts the input into text that can be used by a VoiceXML application.
The TTS Engine converts text to synthesized speech. The text source may come from prompts within a VoiceXML application or from data that is retrieved from a data source by a
VoiceXML application.
The VoiceXML Browser processes the calls, fetches VoiceXML pages from a Web application server, parses, and interprets the pages. The VoiceXML Browser is a Java™ application. It uses HTTP over a LAN or the Internet to fetch VoiceXML pages from a Web application server. A VoiceXML browser for VoiceXML is analogous to a visual Web browser for HTML, except that a user interacts with a VoiceXML browser by speaking or by pressing telephone keys rather than through a graphical interface. The user selects a voice item from a voice menu by speech or using telephone keypad, which is passed by the ASR engine to a
VoiceXML browser. The VoiceXML browser uses the recognition results to fill in form items or to select menu options in the VoiceXML application, and then sends an HTTP request to the
Web server, which may access the same back-end infrastructure to return information.
WebSphere Voice Application Access is an extension of WebSphere Portal Server. It adds two main features to the portal server:
Voice Aggregator
Numeric Alias component
2 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
The Voice Aggregator provides support for the VoiceXML. Also, the Voice Aggregator supports user authentication. The unauthenticated user can access the portal and view the public pages; however, only authenticated users can access the personalized voice portal pages. The Voice Aggregator generates a VoiceXML log in dialog for a caller to log in by speech or by pressing a button on a keypad. It then passes the user information to the
WebSphere Portal to authenticate the caller. By default the system prompts the caller for a numeric user ID and password.
The Voice Aggregator invokes one or more VoiceXML portlets to construct the VoiceXML page. A VoiceXML portlet is an application on a WebSphere Portal that provides functionality through a speech user interface. A voice portlet generates VoiceXML markup to implement a speech user interface. More precisely, it generates a VoiceXML fragment, which is then aggregated by the VoiceXML aggregator to construct a complete VoiceXML document.
The Voice Aggregator is also responsible for organizing the content of a voice portal for each caller based on the caller's access permission. The content of the voice portal is organized into a tree structure. The top of the WebSphere Voice Application Access voice portal menu structure is called Portal Home. Under the pages are the portlets. Any page level can also include another page level and label level. The caller needs to traverse this menu structure to reach the target application.
The Numeric Alias is the feature that enables a user to log in to the portal using a numeric user name and password. If this component is installed, each user then has two sets of
ID/password combinations: alphanumeric for use with visual browsers and numeric for use with the voice interface. This allows a caller to use the phone keypad to login for authentication to avoid misrecognition in a noisy environment or to protect the password from others.
Following are the two major features that WebSphere Everyplace Mobile Portal adds to the
WebSphere Portal Server:
XDIME aggregator
Multi-Channel Server (MCS)
XML-based Device Independent Markup Extensions (XDIME) is based on the XML language.
It defines a set of elements that can be used as tags in Java Servlet Page (JSP™). This is similar to the use of tags in markup languages such as HTML and Wireless Markup
Language (WML). XDIME provides hyperlink, form, menu, table, list, text, and script control elements, which are similar to their equivalents in HTML. However, they are generally more powerful in function. The XDIME aggregator is associated with the markup type
, and is invoked by the portal engine to combine the markup from all the XDIME portlets together with headers and footers to generate an XDIME page.
MCS manages the policies and maps resources (for example, images) to devices. The MCS policies define the presentation characteristics (layout, component and theme etc.) of a device through a visual interface. MCS uses a built-in repository to manage a large number of devices from desktop PCs to TVs, PDAs, and mobile phones. You can update the repository as a new device emerges. The device repository consists of a compressed XML file containing attributes of the devices. WebSphere Everyplace Mobile Portal requires several
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 3
types of MCS policies to be defined to handle device variations before XDIME markup can be rendered correctly.
Theme policy is used to manage overall look and feel as well as navigation view on devices.
Aggregation policy aggregates the XDIME markup generated by a set of portlets targeted for same page.
Layout policy specifies physical positions of elements on pages in order to deal with screen size differences.
Component policy addresses highly device-specific content (such as, images).
MCS is installed as a portal-level filter. It takes the aggregated XDIME markup and converts it into device-dependent markup based on the requesting device, component, theme, and layout policies referenced in the XDIME markup.
From a high-level view, the integrated system consists of four major subsystems: a network connection environment, a connection gateway, a portal server and its extensions
(WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal), and a back-end data and applications (see Figure 1 on page 5). WebSphere Voice Response provides a connection environment for the voice access. The ASR and TTS engines in
WebSphere Voice Server, as well as the VoiceXML browser in WebSphere Voice Response are voice gateway components that convert the data not only between text and speech, but also between speech network and IP data network. The mobile data conversion between wireless network and IP network is done by WebSphere Everyplace Connection Manager.
Figure 1 on page 5 illustrates a high-level architecture diagram of the integrated system.
4 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
Figure 1 Architecture diagram of integrated System
Following is a typical client interaction with WebSphere Portal Server through the mobile device:
1. The client requests access using a mobile device.
2. The request sends to the WebSphere Everyplace Connection Manager (wireless gateway), which converts the request into a HTTP request and then forwards to the Portal
Server.
3. The XDIME aggregator generates the XDIME page.
4. The XDIME page is sent to MCS runtime to generate the device-dependent markup page.
5. The device-dependent page is then sent back to the requesting device.
Following is a typical client interaction with WebSphere Portal Server through voice phone:
1. The client places a telephone call.
2. WebSphere Voice Response sends the audio portion of the call to the ASR engine in
WebSphere Voice Server.
3. The recognized digitized text is then passed back to the VoiceXML Browser, which then makes a HTTP request to WebSphere Portal Server.
4. The Voice Aggregator generates the VoiceXML page and sends the resulting text page back to the VoiceXML Browser.
5. The VoiceXML Browser passes the text to TTS engine, which generates the synthesize speech from the text, and routes back to the caller's phone.
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 5
WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access provide administration portlets to the portal administration interface. So you can use centralized portal interface to configure, manage, and monitor the features. In addition, a portlet that supports a mobile device and a voice phone normally provides a graphical web user interface that you can use to customize the mobile browser and speech interface and to deliver its complete functionality to visual browsers. Figure 2 is the Web interface for the Customer Contact
Center Optimizer solution which is built based upon the integrated components. In the following sections, you will see the mobile and voice view of the same content.
Figure 2 Web interface for a Customer Contact Center
WebSphere Portal Server maintains client definitions for all supported client devices in a client registry. A client definition specifies the device properties, such as user agent, markup, markup version, manufacture and model as well as capability. The portal server uses the device properties to optimize the data that the portal sends to the client and to handle the limitations and deviations of a device. To support a new device, portal administrator must add the device's client definition through portal administrator interface. Figure 3 on page 7 is the client definition configuration for a voice device in the portal server.
6 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
Figure 3 Client definition configuration for a voice device in WebSphere Portal
WebSphere Portal matches the user agent from the request header of a requesting device against user agent patterns configured in the list of client definitions. If a match is found, the portal uses the markup configured for the matching client definition to determine which aggregator handles the request from the device. For instance, if the client definition uses
XDIME markup, then the XDIME aggregator is invoked to construct the page for the device.
Some aggregators, including the XDIME aggregator, support multiple navigation views that are also known as markup versions to further handle the device variations.
WebSphere Portal Server V5.0 has three built-in aggregation modules: HTML, WML, and cHTML aggregators. The HTML aggregator produces pages for desktop computers and other devices with HTML browsers. The WML aggregator component produces WML content for
Wireless Access Protocol (WAP) devices, which are typically mobile phones. The cHTML aggregator produces content for mobile devices that subscribe to the i-Mode wireless Internet service. When WebSphere Everyplace Mobile Portal and WebSphere Voice Application
Access are installed onto the portal server, an XDIME and a Voice aggregator are added to the portal server, respectively. The XDIME aggregator produces XDIME markup targeted at a wide variety of devices (PDAs, WML devices, XHTML devices, and so on). The voice aggregator generates VoiceXML content to support voice devices.
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 7
An aggregator invokes one or more portlets to generate the markup. The access to the portlets is controlled by checking access rights during page aggregation and page customization.
A portlet must support the proper markups in order for it to generate the markups that the requesting client devices support. For instance, if a mobile device supports XDIME and
VoiceXML markups, the portlet that handles the device request must support both XDIME and VoiceXML markups. This is usually done by creating specific markup versions (XDIME and VoiceXML as shown in Figure 3 on page 7) of the portlet Java Server Pages (JSP) in the portlet and configuring the portlet.xml
file for the portlet to indicate the supported markups.
A proper markup version of the JSP is automatically selected during runtime based on the device's user-agent. In addition, the page in which the portlet is deployed needs to support the target markups. Figure 4 illustrates the supported markups (VoiceXML, XDIME, WML, cHTML and HTML) by the integrated system (the portal server with WebSphere Everyplace
Mobile Portal and WebSphere Voice Application Access).
Figure 4 Portal page markup support
Portal uses the Multi-Channel Server runtime to convert XDIME markup into a markup language that the requesting device can use. Figure 5 on page 9 illustrates how the
Multi-Channel Server runtime plugs into the portal, and how device-dependent markup is generated from XDIME.
8 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
Figure 5 Mobile access and XDIME markup generation
The following details the runtime interaction and XDIME markup generation process as illustrated in Figure 5:
1. The user makes a page request by typing the URL of the application in the portal server, which WebSphere Portal receives.
2. WebSphere Portal displays a login screen for the user to log in.
3. After the login is successful, WebSphere Portal invokes the XDIME Aggregator to construct the page.
4. The XDIME aggregator calls the XDIME portlets to generate the markup.
5. The XDIME aggregator combines the markup returned from the portlets, the header and footer, and then returns the page.
6. The XDIME page is passed to the Multi-Channel Server runtime.
7. Multi-Channel Server generates the device dependent markup, for example, WML, HTML or cHTML, based on the device, component, theme, and layout policies referenced in the
XDIME markup.
8. The Multi-Channel Server runtime returns the device dependent markup to the requesting device.
Figure 6 on page 10 shows the display screens on the mobile device. They are abstracted from the Customer Contact Center Optimizer solution as shown in Figure 2 on page 6:
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 9
Figure 6 Mobile device screens of the Customer Contact Center
VoiceXML provides a whole new way of accessing the same Web information by providing voice access to Web data and services. A VoiceXML Browser sends an HTTP request over the Internet to fetch VoiceXML pages from the portal server. The VoiceXML portlet that handles the voice request may access the same back-end data with the mobile portlets that handle the mobile request. VoiceXML browser only changes the presentation of the information. It does not alter the information itself or the way it is generated by the Web server or the back-end system. Therefore, the voice access process is similar to the mobile process in terms of the way the markup is generated. The only difference is the way that the information is presented to the user and the way that the request is passed to the portal server.
The following details the runtime interaction and voice markup generation process as illustrated in Figure 7 on page 11.
1. The voice server receives a call from a telephone. Telephone voice data is transferred to a
WebSphere Voice Server through a connection environment, which can be WebSphere
Voice Response, Avaya, Cisco, or Genesys.
2. The audio data from the caller is received by the WebSphere Voice Server.
3. The ASR engine analyzes the audio stream and converts it to digitized text. The digitized text is then sent to the VoiceXML browser, which then creates an HTTP request and sends it to the portal server over the network.
4. The Voice Aggregator processes the login request and returns the VoiceXML login page to the VoiceXML browser.
5. The VoiceXML browser passes the VoiceXML page to the TTS engine which converts the text to speech, and then sends back to the caller.
6. The VoiceXML login page prompts the caller to say or enter the numeric user ID and password. The Voice Aggregator passes the user information to the WebSphere Portal for authentication.
7. After successful authentication, the portal server redirects the caller to the Portal Home
VoiceXML selection menu page.
8. The user selects a specific page by speaking or by pressing the phone keypad.
9. The VoiceXML portlet in the portal server handles the HTTP request. The back-end data source is accessed as needed to generate dynamic data.
10.The Voice Aggregator processes the request. It then returns a new VoiceXML selection menu page starting at the page selected by the user if the page contains more than one portlet. This menu page contains the selection choices for the portlets on this page.
10 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
11.The user selects a specific portlet on the current page.
Figure 7 Voice access and VoiceXML markup generation
The following example shows the process in Figure 7. This is abstracted from the Customer
Contact Center Optimizer solution as shown in Figure 2 on page 6:
Example 0-1 Process of voice access and VoiceXML markup generation
System
Caller
System
Caller
System
Caller
System
Caller
System
Caller
System
Welcome to JK Telecom customer interactive service center. To better serve you, please say or enter your ID.
11111
Please say or enter your numeric password.
123456
You are in my account service. Please select one of the services:
Billing Summary, Pay My Bill, Account Details, Payment History, or
Available services.
“Pay my bill”
Your bill amount is two hundred and fifty five dollars and five cents, which is due on September 28. To make a payment, please say yes; otherwise, say no.
“Yes”
You have selected to make a payment of two hundred and fifty five dollars and five cents. The amount will be withdrawn from your banking account, which you set up in your profile. Please select one of the following services: Billing Summary, Pay My Bill, Account Details,
Payment History, or Available services.
“Billing summary”
Your bill amount is two hundred and fifty five dollars and five cents, which is billed on August 29th. The due date for the bill is on
September 29. You made a payment of two hundred and fifty five dollars and five cents on September 25th. Please select one of the following services…
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 11
Caller
System
<silent>
At any time you can say Help, Repeat, Go Back, Start Over, or Exit. To continue, please select one of the following services…
The installation and configuration procedure of WebSphere Voice Response and WebSphere
Voice Server are detailed in the installation documents that accompnay the product. This section only focuses on the installation issues of WebSphere Voice Application Access and
WebSphere Everyplace Mobile Portal.
The following sections discuss the software and hardware requirements for the integrated components.
This section is to help you understand how the WebSphere Everyplace Mobile Portal and
WebSphere Voice Application Access components interact with each other and with the prerequisite software.
WebSphere Portal, a prerequisite component by both WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access, installs and runs as an application server on the
WebSphere Application Server platform. For each installation of WebSphere Everyplace
Mobile Portal or WebSphere Voice Application Access, an installation of WebSphere Portal
Server is required.
WebSphere Everyplace Mobile Portal requires a database server to store user data. You can use either DB2® or Oracle database servers. The Cloudscape™ database, which is installed by default with WebSphere Portal Server, is not supported as a production database with
WebSphere Everyplace Mobile Portal. During the installation, WebSphere Everyplace Mobile
Portal adds an additional table to the WebSphere Portal database for tracking preload notice usage on a per user basis. The Multi-Channel Server Component of WebSphere Everyplace
Mobile Portal stores client device repository in the database, which can be on the same database server as the database server used for WebSphere Portal. Alternately, it can be on a separate database server.
WebSphere Voice Application Access requires a Lightweight Directory Access Protocol
(LDAP) server to support the Numeric Alias feature. The Numeric Alias feature is an optional component in WebSphere Voice Application Access; however, it is required to authenticate the user in order for the user to access the personalized pages. During the installation, the
Numeric Alias component of WebSphere Voice Application Access adds additional attributes to each user in the WebSphere Portal LDAP server. WebSphere Voice Application Access
V5.0 currently only supports IBM® Directory Server.
Currently, WebSphere Everyplace Mobile Portal only supports the IBM AIX® and the
Solaris™ Operating System. It does not support Windows® or Linux® platforms. However,
WebSphere Everyplace Mobile Portal Enable, which became available after the writing of this
Redpaper, does support Linux.
12 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
In summary, WebSphere Everyplace Mobile Portal and WebSphere Voice Application
Access prerequisites the following software:
Either IBM AIX 5L™ V5.1 with Maintenance Level 4 or AIX 5L V5.2 with Maintenance
Level 1 or Solaris Operating System V2.8 or V2.9
Either DB2 V8.1 Universal Database (UDB) Enterprise Server Edition with Fix Pack 4a or
Oracle Database V9i Release 2 (V9.2.0.4)
IBM Directory Server V5.1 with Fix Pack 2
WebSphere Portal for Multiplatforms V5.0.2.1
WebSphere Application Server Enterprise V5.0.2.2 or WebSphere Application Server
Network Deployment V5.0.2.3
Before you decide on an installation topology, you should consider the following issues:
WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access are add-on components of WebSphere Portal Server. For each installation of WebSphere
Everyplace Mobile Portal or WebSphere Voice Application Access, an installation of
WebSphere Portal Server is required. WebSphere Everyplace Mobile Portal or
WebSphere Voice Application Access installations must reside on the same computer with WebSphere Portal Server.
WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access should share the same user data, such as user identities, credentials, and permissions for accessing portal resources. Therefore, they should be configured with the same LDAP server that stores the user identities and the same portal database that stores user data.
This actually requires WebSphere Everyplace Mobile Portal, WebSphere Voice Application
Access, and Portal Server as well as its prerequisite Application Server be installed on the same computer. Therefore, there are two topologies you may consider when you install a
WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access integrated system: single-computer topology and multiple-computer topology.
Single-computer topology
All the WebSphere Voice Application Access and WebSphere Everyplace Mobile Portal components and their prerequisite softwares are installed on the same computer.
WebSphere Application Server, WebSphere Portal, Database Server and IBM Directory
Server are on the same computer as the WebSphere Everyplace Mobile Portal and
WebSphere Voice Application Access. If you decide to use this topology, you should not select embedded WebSphere Application Server Express during IBM Directory Server installation. Instead, after WebSphere Application Server is installed, you should deploy the IBM Directory Server administrator interface that is located in the installed WebSphere
Application Server on the same machine as the Directory Server.
Multiple-computer topologies
The database server, the directory Server, and the rest of the components are physically located on three different computers.
You may install WebSphere Everyplace Mobile Portal and WebSphere Voice Application
Access in a cluster environment; however, this RedPaper does not discuss that scenario.
Refer to the WebSphere Portal Information Center and WebSphere Everyplace Mobile Portal
Information Center for hardware and software requirements, as well as the installation and configuration guides.
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 13
This section provides the general steps required to install the WebSphere Voice Application
Access and WebSphere Everyplace Mobile Portal components. For detailed information, review the planning and installation documentation associated with WebSphere Everyplace
Mobile Portal, WebSphere Voice Application Access, and each of the prerequisite software products, especially the WebSphere Portal Information Center.
1. Install a database Server and Fix Pack.
If you want to use an existing installation of a database server, you need to gather information about the installed database before installing the subsequent products.
2. Install IBM Directory Server and FixPack.
If you already have an LDAP server installed, you need to collect information about the
LDAP server before installing WebSphere Voice Application Access.
3. Install WebSphere Portal Version V5.0.
4. Install WebSphere Portal for Multiplatforms V5.0.2.1.
This also requires you to install WebSphere Application Server V5.0.2.3 cumulative fixes and interim fixes.
5. Configure the portal to use the database server.
This step sets up the portal server to use the database server (DB2 or Oracle) instead of
Cloudscape.
6. Configure the portal for IBM Directory Server.
This step configures the portal security using IBM Directory Server.
7. Install WebSphere Everyplace Mobile Portal.
Refer to the topics in the "Planning" section of the WebSphere Everyplace Mobile Portal
Information Center and be sure that you perform the planning steps required for your
Everyplace Mobile Portal installation.
8. Install WebSphere Voice Application Access.
Select at least Voice Aggregator and Numeric Alias components.
The following sections tell you how to configure and customize WebSphere Voice Application
Access and WebSphere Everyplace Mobile Portal.
This section describes configuration of the WebSphere Voice Application Access and
WebSphere Voice Server so that they can identify each other during the runtime.
WebSphere Voice Application Access system grants or denies a Voice Server system access in its property setting. The WebSphere Voice Application Access property file
( WPS_HOME /shared/app/config/voiceaccess.properties
) contains information related to the
Voice Servers and the voice portal languages that are supported by the WebSphere Voice
Application Access system. Example 2 shows the contents of the
voiceaccess.properties
file, which grants the voice requests from the voice server systems with IP addresses
192.68.10.1 and 192.68.10.2. The property file also indicates that the WebSphere Voice
Application Access supports both English and Japanese.
14 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
Example 2 voiceaccess.properties file
# WebSphere Voice Application Access voice.hostCheck=true
# Permitted Voice Server list host1=192.68.10.1
host2=192.68.10.2
# Available languages for Voice Access language.
1=en language
2=jp language
The Voice Server system sets up the access parameter for the WebSphere Voice Application
Access system in its configuration file ( default.cff
), and assigns a phone number to the
corresponding application. Example 3 shows the contents of the
default.cff
file, which configures an application named
and specifies that the voice server uses the URL, http://hi4c.test.austin.ibm.com/wps/portal/.scr/Login to access the WebSphere Voice
Application Access system with host name hi4c.test.austin.ibm.com
. A phone number for the application
enables all the calls for the number to be handled eventually by the
VoiceXML application running in WebSphere Voice Application Access system.
Example 3 default.cff file
AppName=voiceapp
Enabled=yes
Parameter=URL, http://hi4c.test.austin.ibm.com/wps/portal/.scr/Login
AppClass=com.ibm.wvr.vxml2.DTVoicelet2
This configuration change is needed only when your audio file sizes are very large. By default, WebSphere Application Server limits the size of an HTTP post request to 10 MB in order to limit potential denial of service attacks. However, your WebSphere Voice Application
Access application size with a large number of audio files might exceed the limitation. For instance, the Voice Remind portlet that ships with WebSphere Voice Application Access V5.0
(in WPS_ROOT /install/voice/ibmva_reminder.war
after WebSphere Voice Application Access installation) and installs in WebSphere Portal Server is approximately 25 MB in size. When you install an application that exceeds the size limitation, you may get an error message in the Web browser similar to the following:
Request Entity Too Large The requested resource /wps/myportal/!ut/p/… does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit
Therefore, the Post Limit Size prevents an administrator from installing a voice application that exceeds 10 MB in size.
The configuration of the Post Size Limit is located in the WebSphere plug-in configuration file
( plugin-cfg.xml
). If you are seeing the above error message or similar, you need to change the limit to correct the problem.
To change the limit, perform the following actions:
1. Open the WebSphere plug-in configuration file ( plugin-cfg.xml
) in the
WAS_HOME /config/cells directory with a text editor.
2. Locate the ServerCluster stanza with the following name:
WebSphere_Portal_<NODE_NAME>_Cluster
3. Associated with this entry, find the parameter PostSizeLimit.
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 15
4. Change to a value in bytes (changing into a value to set a new limit or changing into "-1" to disables limit).
5. Save the changes and close the file.
6. Restart the application and portal servers.
As a minimum, you should configure the WebSphere Everyplace Mobile Portal and
WebSphere Voice Application Access to use your company's logo on mobile devices. Or you can use a greeting message that contains your company name for a voice user.
By default, the mobile portal shows the WebSphere Portal logo in most views of the XDIME aggregator. You can replace it by creating a new image policy and referring to the new policy in Main.jsp
. To create a new image policy, you need to install and use the Toolkit for
WebSphere Everyplace Mobile Portal, which is a plugin to WebSphere Studio Site Developer or WebSphere Studio Application Developer. If you do not want to create a new image policy, you can replace the referred images using the default image policies directly.
1. Back up the logo.gif
and logo.jpg
files, which are the original WebSphere Portal logo images, in:
WAS_HOME /installedApps/ node_name /wps.ear/wps.war/themes/xdime/images
2. Create the company's logo image in GIF and JPG formats, and name the images as logo.gif
and logo.jpg
.
3. Replace the log.gif
and logo.jpg
image files in the above directory with the images you created for your company's logo. By default, the image sizes are 100x30 (Width x Height).
4. Restart the portal server.
Additionally, you can modify the look and feel of your mobile portal, for instance, the location of the portlet controls and color of the portlet title, as well as the default image policies for login, logout, forgot password, add to favorites, and work with favorites. You can modify all of these image policies in order to use different images. You can also create new policies for these functions and update the JSP to use the new policies. You need to create your own images, create the corresponding image policies using the Toolkit for WebSphere Everyplace
Mobile Portal, then replace the default ones using the ones you created.
The language-specific TTS prompts for the caller login and authentication are in the property files in WPS_HOME /shared/app/VoiceAggregator/nls directory. You may modify the file content to customize the greeting and authentication messages, for instance, you can use your company name instead of "IBM WebSphere".
When you create a page or a portlet that supports mobile or voice markup, the page or portlet's title is displayed on mobile devices, and the users both hear and speak these titles on voice phones. The default title for the portlet is first created during the creation of the portlet application. You can update the title through the "Manage Portlet" in portal administration. By default, your web, voice and mobile users see or hear the same portlet title. You may want to display a longer and more descriptive title on the Web, but a short one for navigation on a mobile device or a voice phone.
16 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
Use the following steps to configure a short title for the page or Web address for mobile device:
1. Login to the portal server as administrator, and use the Extended Properties portlet in the administration interface.
2. Select Manage Mobile Pages .
3. Expand My Portal and the nested resources until you find the page that you want to edit.
4. Select the page by clicking the title.
5. In the Extended Properties section, click Edit .
6. Click Set short title .
7. Type a short title in the Short title field.
8. Click OK , then OK again to save the modified title. Click Cancel if you want to return to the Manage Mobile Pages without saving the updated settings.
Use the following steps to configure a TTS spoken title of a page or a portlet:
1. Record a WAV file for the title. Name the file based on the unique Page/Portlet name extended by the file extension “ .wav
”.
2. Place this file in the required location. By default, the new WAV files (with the extension
“ .wav
”) are required to be placed in the following location:
WPS_HOME /installedApps/ Node_Name /wps.ear/wps.war/vxml/titles/ Locale
After the server is restarted, the TTS output is replaced with the new WAV file. If the specified
WAV file cannot be found, WebSphere Voice Application Access plays the alternative TTS text.
WebSphere Everyplace Mobile Portal and WebSphere Voice Application Access each provide development toolkits. The toolkits are plugins to WebSphere Studio Application
Developer or WebSphere Studio Site Developer. The toolkits add XDIME and voice support to WebSphere Studio. They work together with the portlet toolkit to provide mobile and voice portlet development and test environments. These environments mainly consists of XDIME and VoiceXML markup support, MCS tools, and a call simulator.
After you install the mobile and voice toolkits, when you create a portlet application project in
WebSphere Studio, you have a choice to select whether or not your portlet supports XDIME and VoiceXML markup in addition to the cHTML and WML markup, which is provided by the portlet toolkit by default (see Figure 8 on page 18).
Use the following steps to select XDIME and VoiceXML support in a portlet application project:
1. Select File
→
New
→
Project .
2. Select Portlet Development
→
Portlet Application Project , and then click Next .
3. Complete each field in the Portlet Application wizard. Make sure to select Configure
Advanced Options . Click Next .
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 17
4. Complete each field in the Portlet Setting page, then click Next .
5. Check the event handling options in the portlet, then click Next .
6. Define the Single Sign On options for your portlet, then click Next .
7. In the miscellaneous page, check the XDIME and VoiceXML marks (see Figure 8 on page 18).
Figure 8 XDIME and VoiceXML markup support during portlet project creation
If you select to support XDIME and VoiceXML during your portlet application project creation, an XDIME and a VoiceXML directory are automatically added in the JSP directory of the content root (WebContent directory) in the project navigation pane. A Java Server Page file is added to the XDIME and VoiceXML directory, respectively. The XDIME JSP file has the same file extension (“ .jsp
”) while the VoiceXML file has a JSV (Java Server Page with VoiceXML) as a file extension (see Figure 9). Besides, the portlet.xml
file is updated automatically to reflect the XDIME and VoiceXML markup supports (see Figure 10 on page 19).
18 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
Figure 9 XDIME and VoiceXML markup support in JSP files
Figure 10 XDIME and VoiceXML markup support in portlet deployment descriptor
MCS tools are installed by the Toolkit for WebSphere Everyplace Mobile Portal, which uses the MCS policies to convert XDIME markup into a native markup that is used by a requesting device.
You can create a global MCS project for multiple portlet application projects to use, or add
MCS policies for a specific portlet application project.
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 19
You can choose a MCS wizard to create a new project or add a new resource to an existing project. Use the following steps to create a new MCS project:
1. Select File
→
New
→
Project . Select MCS in the left pane and MCS Project in the right pane.
2. Enter a name, and then click Next .
3. In the Standard device repository file field, browse the directory where you installed the toolkit, and select Toolkit_Home \DeviceRepository\devices.mpdr
.
4. In the Policy source directory, ensure that the value is: WebContent\mcs-policies .
5. Click Finish .
You can add a new MCS policy to an existing MCS project or a portlet project. If you want to add a MCS policy to a portlet project, you need first to create a mcs-policies directory under
WebContent directory of the project, and then add a new policy to the mcs-policies directory.
If you want to add a MCS policy to an existing MCS project, you can directly add the policy to the mcs-policies directory which is created when you create the MCS project. Use the following steps to add a new MCS policy:
1. Right-click the mcs-policies directory, select New
→
Other .
2. Select MCS in the left pane and a MCS component in the right pane.
3. Type a component name in the component field, and make sure the parent folder
( mcs-policies or a subdirectory) is correct, and then click OK .
4. Click Finish .
The MCS tools can be used to develop policies visually (see Figure 11).
Figure 11 MCS policy development using MCS tools in WebSphere Studio Application Developer
20 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
A call simulator is installed by the Toolkit for WebSphere Voice Server, which enables you to simulate DTMF input (for example, PIN codes or passwords) on your desktop. The DTMF
Simulator takes the place of a telephone and lets you perform desktop debugging of voice applications without having to connect to telephony hardware and the Public Switched
Telephone Network (PSTN).
Use the following steps to start the simulator:
1. From Windows
→
Open Perspective
→
J2EE .
2. Select Run
→
Run . This opens the launch configuration dialog.
3. Right-click VoiceXML JavaServer™ Page . This creates a new launch configuration for a local JSP or JSV file for a Voice Portlet application.
4. In the Local JavaServer Page Web address text field, enter a Web address: http:// hostname : portnumber /wps/portal/.scr/Login
5. The host name can be a fully qualified remote host name if you installed your voice application on a remote portal server, or
if you use a WebSphere Portal Test
Environment in the Studio.
6. A call simulator launches for you to test your application (see Figure 12).
Figure 12 Call simulator for testing voice applications
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 21
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 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.
Shunguo Yan is a Staff Software Engineer in the Application and Integration Middleware
(AIM) division of IBM software group in Austin. He has more than 8 years of experience in object-oriented analysis and design, application integration, and software implementation of industrial specifications. He holds a master degree in Computer Science. His areas of expertise include architecture, design, and development of integrated solutions to various industries using J2EE, XML, Web Services, and software products from IBM and other companies.
Thanks to the following people for their contributions to this project:
Benson Chen, technical consultant
IBM Pervasive Computing Division
Kim Foster, reviewer
IBM Sales & Distribution
WebSphere Portal Technical Sales
Many thanks to the following IBM people for their assistance.
Lenore Ramm
Mike Seedorf
Charles Le Vay
Mart Nuttall
Tony Wrobel
Dale Chamberlain
Scott Broussard
Gary Craig
Robert Sager
Dave Heller
Lei Lu
Dave Pierson
Don Watson
And a specials thanks to our ITSO support staff at the International Technical Support
Organization, Raleigh Center:
Margaret Ticknor
Jeanne Tucker
Tamika Barrow
Linda Robinson
Thanks to our ITSO management:
Jere Cline
22 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
And a special thanks to our IBM Pervasive Computing sponsor:
Mary Fisher
System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products 23
24 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products
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.
25 © Copyright IBM Corp. 2005. All rights reserved.
Send us your comments in one of the following ways:
Use the online Contact us review redbook form found at: ibm.com
/redbooks
Send your comments in an email 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 U.S.A.
®
The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both:
Redbooks (logo)
AIX 5L™
AIX®
™ Cloudscape™
DB2®
Everyplace®
IBM®
Redbooks™
WebSphere®
The following terms are trademarks of other companies:
ThinkPad® and NetVista® are registered trademarks of Lenovo in the United States, other countries, or both.
OSGi™ is a trademark of The OSGi Alliance in the United States and other countries.
Palm® is a registered trademark of Palm, Inc. in the United States, other countries, or both.
Java, JavaServer, JSP, J2EE, Solaris, and all Java-based trademarks are trademarks of Sun Microsystems,
Inc. in the United States, other countries, or both.
Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
Linux™ is a trademark of Linus Torvalds in the United States, other countries, or both.
Solaris, J2EE, JSP, JavaServer, and Java are trademarks of Sun Microsystems.
Other company, product, or service names may be trademarks or service marks of others.
26 System Integrators Guide: Integrating WebSphere Everyplace Mobile Portal with WebSphere Voice Products