37
Interactive Intelligence, Inc. 7601 Interactive Way Indianapolis, Indiana 46278 Telephone/Fax (317) 872-3000 www.ININ.com MRCP Technical Reference Interactive Intelligence Customer Interaction Center® (CIC) Version 2016 R3 Last updated April 12, 2016 (See Change Log for summary of changes.) Abstract This document discusses Interactive Intelligence’s implementation of Media Resource Control Protocol (MRCP), including protocol flow architecture and CIC integration.

MRCP Technical Reference - Genesys · PDF file4 . MRCP Technical Reference . About this information . The information in this technical reference is for C IC System administrators,

  • Upload
    dangdan

  • View
    235

  • Download
    0

Embed Size (px)

Citation preview

Interactive Intelligence, Inc. 7601 Interactive Way

Indianapolis, Indiana 46278 Telephone/Fax (317) 872-3000

www.ININ.com

MRCP

Technical Reference

Interactive Intelligence Customer Interaction Center® (CIC)

Version 2016 R3

Last updated April 12, 2016 (See Change Log for summary of changes.)

Abstract

This document discusses Interactive Intelligence’s implementation of Media Resource Control Protocol (MRCP), including protocol flow architecture and CIC integration.

ii

MRCP Technical Reference

Copyright and Trademark Information Interactive Intelligence, Interactive Intelligence Customer Interaction Center, Interaction Administrator, Interaction Attendant, Interaction Client, Interaction Designer, Interaction Tracker, Interaction Recorder, Interaction Mobile Office, Interaction Center Platform, Interaction Monitor, Interaction Optimizer, and the “Spirograph” logo design are registered trademarks of Interactive Intelligence, Inc. Customer Interaction Center, EIC, Interaction Fax Viewer, Interaction Server, ION, Interaction Voicemail Player, Interactive Update, Interaction Supervisor, Interaction Migrator, and Interaction Screen Recorder are trademarks of Interactive Intelligence, Inc. The foregoing products are ©1997-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Dialer and Interaction Scripter are registered trademarks of Interactive Intelligence, Inc. The foregoing products are ©2000-2016 Interactive Intelligence, Inc. All rights reserved. Messaging Interaction Center and MIC are trademarks of Interactive Intelligence, Inc. The foregoing products are ©2001-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Director is a registered trademark of Interactive Intelligence, Inc. e-FAQ Knowledge Manager and Interaction Marquee are trademarks of Interactive Intelligence, Inc. The foregoing products are ©2002-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Conference is a trademark of Interactive Intelligence, Inc. The foregoing products are ©2004-2016 Interactive Intelligence, Inc. All rights reserved. Interaction SIP Proxy and Interaction EasyScripter are trademarks of Interactive Intelligence, Inc. The foregoing products are ©2005-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Gateway is a registered trademark of Interactive Intelligence, Inc. Interaction Media Server is a trademark of Interactive Intelligence, Inc. The foregoing products are ©2006-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Desktop is a trademark of Interactive Intelligence, Inc. The foregoing products are ©2007-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Process Automation, Deliberately Innovative, Interaction Feedback, and Interaction SIP Station are registered trademarks of Interactive Intelligence, Inc. The foregoing products are ©2009-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Analyzer is a registered trademark of Interactive Intelligence, Inc. Interaction Web Portal and IPA are trademarks of Interactive Intelligence, Inc. The foregoing products are ©2010-2016 Interactive Intelligence, Inc. All rights reserved. Spotability is a trademark of Interactive Intelligence, Inc. ©2011-2016. All rights reserved. Interaction Edge, CaaS Quick Spin, Interactive Intelligence Marketplace, Interaction SIP Bridge, and Interaction Mobilizer are registered trademarks of Interactive Intelligence, Inc. Interactive Intelligence Communications as a Service℠ and Interactive Intelligence CaaS℠ are trademarks or service marks of Interactive Intelligence, Inc. The foregoing products are ©2012-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Speech Recognition and Interaction Quality Manager are registered trademarks of Interactive Intelligence, Inc. Bay Bridge Decisions and Interaction Script Builder are trademarks of Interactive Intelligence, Inc. The foregoing products are ©2013-2016 Interactive Intelligence, Inc. All rights reserved. Interaction Collector is a registered trademark of Interactive Intelligence, Inc. Interaction Decisions is a trademark of Interactive Intelligence, Inc. The foregoing products are ©2013-2016 Interactive Intelligence, Inc. All rights reserved. Interactive Intelligence Bridge Server and Interaction Connect are trademarks of Interactive Intelligence, Inc. The foregoing products are ©2014-2016 Interactive Intelligence, Inc. All rights reserved. The veryPDF product is ©2000-2016 veryPDF, Inc. All rights reserved. This product includes software licensed under the Common Development and Distribution License (6/24/2009). We hereby agree to indemnify the Initial Developer and every Contributor of the software licensed under the Common Development and Distribution License (6/24/2009) for any liability incurred by the Initial Developer or such Contributor as a result of any such terms we offer. The source code for the included software may be found at http://wpflocalization.codeplex.com. A database is incorporated in this software which is derived from a database licensed from Hexasoft Development Sdn. Bhd. ("HDSB"). All software and technologies used by HDSB are the properties of HDSB or its software suppliers and are protected by Malaysian and international copyright laws. No warranty is provided that the Databases are free of defects, or fit for a particular purpose. HDSB shall not be liable for any damages suffered by the Licensee or any third party resulting from use of the Databases. Other brand and/or product names referenced in this document are the trademarks or registered trademarks of their respective companies.

DISCLAIMER

INTERACTIVE INTELLIGENCE (INTERACTIVE) HAS NO RESPONSIBILITY UNDER WARRANTY, INDEMNIFICATION OR OTHERWISE, FOR MODIFICATION OR CUSTOMIZATION OF ANY INTERACTIVE SOFTWARE BY INTERACTIVE, CUSTOMER OR ANY THIRD PARTY EVEN IF SUCH CUSTOMIZATION AND/OR MODIFICATION IS DONE USING INTERACTIVE TOOLS, TRAINING OR METHODS DOCUMENTED BY INTERACTIVE.

DOCUMENTED BY INTERACTIVE.

Interactive Intelligence, Inc. 7601 Interactive Way Indianapolis, Indiana 46278 Telephone/Fax (317) 872-3000 www.ININ.com

iii

MRCP Technical Reference

Table of Contents About this information .....................................................................................................4

Referenced information ................................................................................................4 Introduction ...................................................................................................................5 Overview ......................................................................................................................6

CIC support for MRCP ..................................................................................................7 MRCP for TTS .......................................................................................................... 7 MRCP for ASR .......................................................................................................... 8

Architecture ...............................................................................................................9 Installation and Configuration .........................................................................................10

Hardware considerations ............................................................................................10 Installing the MRCP Server ..........................................................................................10

Server Selection ...........................................................................................................11 MRCP Capabilities .....................................................................................................11 Locations and Selection Rules .....................................................................................12

MRCP Selection Rules .............................................................................................. 12 Default MRCP Selection Rules .................................................................................. 12 Default Scenarios .................................................................................................. 13 Custom MRCP Selection Rules ................................................................................. 15 Custom Scenarios ................................................................................................. 15

Priority ....................................................................................................................17 Probation .................................................................................................................17 Load Balancing .........................................................................................................18

Adding MRCP Servers ...................................................................................................19 Assigning an MRCP Server to a Location ...........................................................................21

Assigning MRCP Selection Rules to a Location ................................................................22 Configuring an MRCP Server for TTS ................................................................................24 Testing a TTS MRCP Server installation .............................................................................27 Configuring MRCP Servers .............................................................................................28 Check Windows Event Viewer for Probation Warnings ..........................................................29 Deactivating an MRCP Server ..........................................................................................30

Reactivating an MRCP Server .......................................................................................31 Interaction Designer for TTS ...........................................................................................32 MRCP with SAPI ...........................................................................................................33

MRCP Optional Parameters ..........................................................................................34 FAQ ...........................................................................................................................36 Change Log .................................................................................................................37

4

MRCP Technical Reference

About this information The information in this technical reference is for CIC System administrators, Interactive Intelligence Business partners, and those who want to understand the purpose, concepts, and architecture of the Interactive Intelligence MRCP implementation.

Referenced information Because MRCP is integrated with CIC, there are additional technical references and guides that might be of interest to you. This information is available in the CIC Documentation Library on your IC server.

The latest versions of these documents can also be accessed from the CIC Documentation Library at: http://help.inin.com.

The following technical references, Help, and links are referred to in this document and provide additional MRCP information:

• IC Installation and Configuration Guide • VoiceXML Technical Reference • IC Security Features Technical Reference • ASR Technical Reference • Interaction Media Server Technical Reference • Interaction Speech Recognition Technical Reference • Interaction Administrator Help • Interaction Designer Help • Interactive Intelligence License Management Website at: http://license.inin.com

You can also find information on the Internet Engineering Task Force website at: http://tools.ietf.org/html/rfc6787.

5

MRCP Technical Reference

Introduction The Media Resource Control Protocol (MRCP) is used by clients, such as a VoiceXML browser, to control media service resources, including Text-to-Speech (TTS) synthesizers and Automatic Speech Recognizers (ASR). Interactive Intelligence Customer Interaction Center (CIC) supports MRCP version 2 (MRCPv2), which is the current standard. To connect clients with speech processing servers and manage the sessions between them, MRCP relies on other protocols, such as Session Initiation Protocol (SIP). MRCP uses SIP to set up and tear down media and control sessions with the speech server. Furthermore, MRCP defines the messages to control the media service resources and it also defines the messages that provide the status of the media service resources.

This document includes:

• An Overview of the Interactive Intelligence MRCP architecture • MRCP Installation and Configuration information • Interaction Designer information for text-to-speech • Frequently Asked Questions

6

MRCP Technical Reference

Overview The Media Resource Control Protocol is a standard proposed by the Internet Engineering Task Force (IETF) for controlling media services for resources such as speech synthesizers, recognizers, recorders, and verifiers residing on servers on the network. The current standard is now in version 2, which is the only version supported by Interactive Intelligence Customer Interaction Center.

MRCP is an application layer protocol and relies on another session management protocol, typically Session Initiation Protocol (SIP), to establish a control session between the client and the server. SIP is used to establish not only the control channel to use for MRCP, but also to establish the media sessions and associated parameters between the media source—or sink—and the media server.

Once established, the MRCP protocol exchange operates over the control session, allowing the client to control the media processing resources on the speech resource server.

7

MRCP Technical Reference

CIC support for MRCP CIC supports MRCP for Text-to-Speech (TTS) and Automatic Speech Recognition (ASR).

MRCP for TTS Support for MRCP was introduced into CIC in version 3.0 SU3. Support for using MRCP with the Media Server was added to CIC in version 3.0 SU6. MRCP in CIC supports Synthesizer resources, and it is intended as an alternative to using SAPI for TTS.

The following are the advantages of using MRCP for TTS.

• TTS processing is off-loaded to other servers rather than competing for resources on the IC server.

• The MRCP subsystem provides load-balancing capabilities between servers.

• The MRCPv2 standard is much more transparent than SAPI, and it is not COM based.

• Most speech vendors are implementing MRCP and deprecating their SAPI integration.

• Audio is streamed from MRCP Servers using Real-time Transport Protocol (RTP) rather than a proprietary method.

• Support for multiple languages, voices, and, vendors are more efficient with MRCP.

CIC can use MRCP TTS in the following instances:

Function Description

Name prompt generation

System handlers will use TTS if there are user name prompts that have not been recorded.

Telephone User Interface (TUI) and Mobile Office

The TUI and Mobile Office will use TTS for dynamic prompts and for email playback.

Handlers Whenever TTS prompt tools such as Play String, Play Text File, Record String, Record Text File, and Play Prompt Phrase tools—and anytime their extended versions are used.

VoiceXML TTS prompts in VoiceXML scripts can use MRCP.

Interaction Desktop Personal Rules

Personal Rules, configured in Interaction Desktop, can take advantage of TTS.

8

MRCP Technical Reference

MRCP for ASR Support for MRCP for ASR was introduced in CIC 4.0 SU3.

The following are the advantages of using MRCP for ASR.

• Some speech vendors are only allowing MRCP integrations.

• The MRCP standard allows CIC to integrate with new ASR vendors.

• The MRCP standard is much more transparent than proprietary APIs that are used with other Interactive Intelligence ASR server implementations.

CIC can use MRCP ASR in the following instances:

Function Description

TUI and Mobile Office The TUI and Mobile Office will use ASR for recognizing callers’ utterances.

Handlers Whenever ASR recognition tools are used, such as Reco Input.

VoiceXML ASR inputs in VoiceXML scripts can use MRCP.

Note: For more information on MRCP for ASR, refer to the ASR Technical Reference.

9

MRCP Technical Reference

Architecture The following diagram depicts the protocol flow between servers using MRCP and illustrates how a TTS MRCP play occurs. In this flow, all audio is streamed from the MRCP Server directly to the Media Server using RTP. The audio is then streamed directly to the IP device using RTP.

10

MRCP Technical Reference

Installation and Configuration An MRCP installation includes setting up a third-party MRCP Server and configuring the IC server to use the MRCP Server.

Hardware considerations Because MRCP Servers are media intensive, using a dedicated server to run third-party MRCP Server software is required. We recommend that the MRCP Server have ample processing speed and physical memory. Because audio is streamed between the MRCP Server and a Media Server using RTP, we also recommend that the MRCP Server be in the same subnet and have a high bandwidth connection to Media Servers in the same region.

Installing the MRCP Server Follow vendor instructions to install your third-party MRCP Server. Be sure your MRCP Server media includes the MRCP Server installer and installers for the MRCP resources being used. For example, if MRCP is being used for TTS, both an MRCP Server installer and a TTS engine installer are required

CIC supports the following third-party MRCP Servers:

• Nuance Speech Server

• Loquendo Speech Suite Server

For the most current version numbers of the supported third- party MRCP servers, see the Testlab page on the Support Website at:

http://testlab.inin.com

11

MRCP Technical Reference

Server Selection When fulfilling a request for MRCP services, CIC analyzes the following items as it works through the selection process of choosing an MRCP server.

Order of Consideration

Selection Process Description

1 MRCP Capabilities Look for MRCP servers that provide the requested MRCP capabilities.

2 Probation

Look for servers that are not on Probation.

Any server that is not on Probation and has the requested MRCP capabilities will be used before a server on Probation – even if the server on Probation has a better Location, lower Priority, or fewer sessions.

3 Location/Selection

Rules

Using the Location and Selection Rules, look for servers that are in the best location to use the WAN most efficiently.

Any server in a better Location that has the requested MRCP capabilities and is not on Probation will be selected before a server with a lower Priority, or fewer sessions.

4 Priority

Look for servers with a low priority number.

Any server with a lower priority that has the requested MRCP capabilities, is not on Probation, and in a better location, will be selected before a server with fewer sessions.

5 Load Balancing

Once the other criteria are met, look for a server with fewest sessions.

In the case where more than one MRCP server meets the above criteria, a server with the fewest sessions will be selected.

MRCP Capabilities The MRCP subsystem supports selecting a specific MRCP Server to fulfil a TTS request based on the MRCP capabilities of the server. A request can contain the following criteria:

Criteria Description

Server Name Matches the name of a specific server—as its name is configured in Interaction Administrator.

MRCP Version Matches servers that support a specific MRCP version—MRCPv2 by default.

Vendor Matches the vendor field of a specific server.

Voice Name Matches servers that support a specific voice name.

Voice Gender Matches servers that support a specific voice gender.

Voice Language Matches servers that support a specific language.

12

MRCP Technical Reference

Locations and Selection Rules The goal behind MRCP regionalization, via Locations and Selection Rules, is to ensure that the functions provided by the MRCP Server occur in the most efficient manner possible. This system allows geographically dispersed networks to provide the best performance as well as ensure the most efficient use of the available WAN bandwidth for MRCP resources.

Locations allow the Selection Rules to be applied correctly. More specifically, when you assign an MRCP server to a Location, you are specifying where the server resides. When you set up Selection Rules, you are specifying the order of the Locations in which the system is to look for available servers when a Media Server is used for MRCP in a location. So, using information gleaned from the Location and Selection Rules, CIC finds the best place to use an MRCP server.

MRCP Selection Rules When you assign an MRCP server to a location, the selection rules can be applied correctly. In many cases, the default MRCP selection rules will work just fine. However, you can assign custom MRCP selection rules to a location.

Note: It is important to understand that the Media Server Selection Rules are always applied first and that they are performed independently, regardless of MRCP Server availability.

For information on Media Server Locations and Selection Rules, see the Interaction Media Server Technical Reference available in the CIC Documentation Library: http://help.inin.com.

Default MRCP Selection Rules When you create a location in Interaction Administrator, CIC automatically assigns the Default MRCP Selection Rules to that location. This default configuration specifies a logical order of locations that will provide the best possible connection to an available MRCP server. The default selection rules specify that the IC server searches for and selects an available MRCP server using the following order:

<ThisLocation> The location where the media server for the call exists.

<ICServerLocation> The location that has the IC server that controls the interaction.

<Any> This option directs the IC server to search any defined location in the network if it cannot find an available MRCP Server at the above locations.

13

MRCP Technical Reference

Default Scenarios To see why the Default MRCP Selection Rules will work fine in many cases, let's assume the following setup. We'll also assume that the Media Servers are configured to use the Default Media Server Selection Rules.

Seattle Indianapolis Orlando Gateway

Media Server MRCP Server

Gateway IC Server

Media Server MRCP Server

Gateway Media Server MRCP Server

Now, let's suppose that a call comes into Orlando. When it does, the steps in one of the following scenarios could occur:

Scenario 1 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is available in Orlando, then it will be used for the call. • If there is, the Default MRCP Selection Rule assigned to the Orlando Location will hit the

first item in the list: <This Location>. • If an MRCP Server is available in Orlando and not on probation, then it will be used for the

call.

Analysis: This represents the best case scenario because the audio remains in Orlando where it will have the best quality. The Default MRCP Selection Rule will always try to use this scenario when possible.

Scenario 2 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is NOT available in Orlando, then the Default Media Server Selection

Rule will hit the second item in the list: <ICServerLocation>. • If a Media Server is available in Indianapolis, then it will be used for the call. • Since the Media Server handling the call is in Indianapolis, the Default MRCP Selection

Rule assigned to the Indianapolis Location will hit the first item in its list: <This Location>. • If an MRCP Server is available in Indianapolis and not on probation, then it will be used for

the call.

Analysis: This scenario illustrates how the <ThisLocation> rule in the Default MRCP Selection Rules functions to achieve the best possible result. Here the audio is sent from the caller to Indianapolis because the Media Server in Orlando is unavailable. By following the <ThisLocation> rule, the MRCP Server in Indianapolis is used so that the audio is not sent over another WAN connection.

14

MRCP Technical Reference

Scenario 3 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is available in Orlando, then it will be used for the call. • The Default MRCP Selection Rule assigned to the Orlando Location will hit the first item in

the list: <This Location>. • If an MRCP Server is NOT available in Orlando, then the Default MRCP Selection Rule will

hit the second item in the list: <ICServerLocation>. • If an MRCP Server is available in Indianapolis and not on probation, then it will be used for

the call.

Analysis: This scenario illustrates how the <ICServerLocation> rule in the Default MRCP Selection Rules functions to achieve the best possible result. Because the MRCP Server in Orlando is unavailable, the audio is sent from the Media Server in Orlando to an MRCP Server in Indianapolis. The idea here is that the WAN connection to the location of the IC Server is most likely better than any of the other WAN connections. This scenario also illustrates that the Media Server Selection rules are applied first and function independently from the MRCP Selection Rules.

(Keep in mind that even though it might seem better to select a Media Server in Indianapolis, it really wouldn’t be because the audio would have to traverse the WAN anyway. And, using a Media Server in Indianapolis would require that audio be sent to Indianapolis even after the MRCP session is complete.)

Scenario 4 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is NOT available in Orlando, then the Default Media Server Selection

Rule will hit the second item in the list: <ICServerLocation>. • If a Media Server is available in Indianapolis, then it will be used for the call. • Since the Media Server handling the call is in Indianapolis, the Default MRCP Selection

Rule assigned to the Indianapolis Location will hit the first item in its list: <This Location>. • If an MRCP Server is NOT available in Indianapolis, then the Default MRCP Selection Rule

will hit the second item in the list: <ICServerLocation>. • Since <This Location> and <ICServerLocation> are the same, the Default MRCP Selection

Rule will hit the third item in the list: <Any>. • At this point, any of the other two MRCP Servers could be selected based on availability.

Analysis: This represents the worst case scenario because audio will traverse two WAN connections. This example of the <Any> rule should be a rare occurrence because it depends on both the Media Server, where the call came in, and the MRCP Server, at the <ICServerLocation>, being unavailable.

Keep in mind that these scenarios only represent some of the possibilities in the example setup and are only intended to highlight how the Default MRCP Selection Rules work.

15

MRCP Technical Reference

Custom MRCP Selection Rules If you decide that you'd rather use custom selection rules, you can create and assign those rules to your locations instead of relying on the default selection rule.

For information on creating selection rules, see the Selection Rules topic in the Interaction Administrator Help.

Custom Scenarios To see how a custom MRCP Selection Rules would work, let's assume the following setup: We have an extremely fast WAN connection between Miami and Orlando and so want to make sure that this connection is used before attempting the Indianapolis location even though it is the IC Server location. We also have a better connection from Indianapolis to Orlando than to Miami, so we want to make sure that this connection is used first. As such, we'll create and assign appropriate custom selection rules to each location. We'll assume that the Media Servers are configured to use the <Default Media Server Selection Rule>.

Indianapolis Miami Orlando Gateway IC Server

Media Server MRCP Server

Gateway Media Server MRCP Server

Gateway Media Server MRCP Server

IRule MRule ORule

Indianapolis Orlando Miami

Miami Orlando

Indianapolis

Orlando Miami

Indianapolis Now, let's suppose that a call comes into Orlando. When it does, the steps in one of the following scenarios could occur: Scenario 1 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is available in Orlando, then it will be used for the call. • The Custom MRCP Selection Rule assigned to the Orlando Location will hit the first item in

the list: Orlando. • If an MRCP Server is available in Orlando and not on probation, then it will be used. Analysis: This represents the best case scenario because the audio remains in Orlando. In fact, this Custom MRCP Selection Rule behaves the same as Scenario 1 under the Default MRCP Selection Rules. Scenario 2 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is available in Orlando, then it will be used for the call. • The Custom MRCP Selection Rule assigned to the Orlando Location will hit the first item in

the list: Orlando. • If an MRCP Server is NOT available in Orlando, then the Custom MRCP Selection Rule will

hit the second item in the list: Miami. • If an MRCP Server is available in Miami and not on probation, then it will be used.

Analysis: This scenario illustrates how a Custom MRCP Selection Rule, which specifies a preference for the WAN connection between Miami and Orlando, does a better job than the Default MRCP Selection Rules, which would have tried using an MRCP server in Indianapolis before one in Miami.

16

MRCP Technical Reference

Scenario 3 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is NOT available in Orlando, then the Default Media Server Selection

Rule will hit the second item in the list: <ICServerLocation>. • If a Media Server is available in Indianapolis, then it will be used for the call. • Since the Media Server handling the call is in Indianapolis, the Custom MRCP Selection

Rule assigned to the Indianapolis Location will hit the first item in its list: Indianapolis. • If an MRCP Server is available in Indianapolis and not on probation, then it will be used for

the call. Analysis: In this scenario, the Custom MRCP Selection Rule behaves the same as the Default MRCP Selection Rule because we are using the Default Media Server Selection Rule. (Keep in mind that if we were also using Custom Media Server Selection rules, we could have specified the WAN to Miami instead of the WAN to Indianapolis for the Media Server. However, since the selected Media Server is in Indianapolis, the best we can do is use an Indianapolis MRCP server to avoid sending the audio over another WAN connection.) Scenario 4 • The Default Media Server Selection Rule assigned to the Orlando Location will hit the first

item in the list: <This Location>. • If a Media Server is NOT available in Orlando, then the Default Media Server Selection

Rule will hit the second item in the list: <ICServerLocation>. • If a Media Server is available in Indianapolis, then it will be used for the call. • Since the Media Server handling the call is in Indianapolis, the Custom MRCP Selection

Rule assigned to the Indianapolis Location will hit the first item in its list: Indianapolis. • If an MRCP Server is NOT available in Indianapolis, then the Custom MRCP Selection Rule

will hit the second item in the list: Orlando. • If an MRCP Server is available in Orlando and not on probation, then it will be used for the

call. Analysis: This represents a near worst case scenario because audio traverses two WAN connections. By using Custom MRCP Selection rules, we enforced our preference to use the WAN between Indianapolis and Orlando instead of allowing an MRCP server in Miami to be selected if it had lower load. Keep in mind that these scenarios only represent some of the possibilities in the example setup and are only intended to highlight how Custom ASR Selection Rules work.

17

MRCP Technical Reference

Priority The priority of a server is determined by the Priority setting in Interaction Administrator. MRCP Servers with lower priority number are considered for selection first.

Probation As a means of improving the efficiency of the selection process, when CIC requests resources from an MRCP server, if the server does not respond or fails to create the necessary resources for a call, CIC places that MRCP server on probation. When an MRCP server is on probation, CIC stops sending requests to that server for a set time period in order to minimize the impact of failures.

An MRCP server can be put on probation for the following reasons:

• An MRCP server does not respond within the configurable Connection Timeout (5 seconds by default) to a resource creation request from and IC server. Some possible reasons for this include:

A networking issue between the IC server and MRCP server

The MRCP server and service not running

The MRCP server having insufficient resources to respond in time

• An MRCP server responds with an error. Checking the MRCP server’s logs for more details or contacting Support is usually the best way to diagnose this sort of issue, but common causes include:

Configuration issues on the MRCP server. This is particularly common if the MRCP server has never worked successfully or its configuration has recently changed. If this is the case, please review the installation procedure or contact Support.

Running out of licenses on the MRCP server. Additional licenses will need to be purchased for the MRCP server.

The duration of the first probation period is 5 seconds. This short period is designed to allow servers that are experiencing a temporary or minor problem, such as running out of licenses, to immediately rejoin the pool of available MRCP servers, thus minimizing the impact of encountering unavailable MRCP servers. However, the probation period doubles with each consecutive failure, up to a maximum probation period of 10 minutes.

Failure sequence Probation period

First 5 seconds

Second 10 seconds

Third 20 seconds

Fourth 40 seconds

Fifth 1 minute 20 seconds

Sixth 2 minutes 40 seconds

Seventh 5 minutes 20 seconds

Eighth and up 10 minutes

Keep in mind that even if a server that can provide the required MRCP capabilities is on probation, it still remains on the list of possible servers that can be selected; however, servers on probation are placed at the end of the list. Furthermore, if there are multiple servers on probation, the servers on probation will be ordered according to items 3-5 in the server selection process. For example, servers on probation in a favorable location appear before servers on probation in an unfavorable location.

18

MRCP Technical Reference

If all available MRCP servers are in the probation state or if you have only one MRCP server, the IC server disregards the probation state and requests resources to handle the interaction.

Note: Multiple IC servers do not share probation state information. Each IC server separately tracks which MRCP servers are in the probation state.

Load Balancing The MRCP subsystem supports a very straightforward load-balancing scheme. The MRCP subsystem just considers how many open sessions it has for each MRCP Server and selects the server with the least amount of sessions to service the next MRCP request. Because MRCP Servers are typically third-party servers, this is the most basic approach to take when sharing load between servers.

Note: This strategy does not take into account: the current CPU load of an MRCP Server, its architecture, the number of sessions being used by other IC servers, or the session limit of any particular MRCP Server.

19

MRCP Technical Reference

Adding MRCP Servers Once you have installed an MRCP Server, you'll add it to you IC Server configuration in Interaction Administrator.

To add a TTS MRCP Server:

1. On the IC server, open Interaction Administrator.

2. In the left pane of the Interaction Administrator window, expand the System Configuration container.

3. Locate and expand the MRCP Servers container.

4. Select the Servers container.

5. In the right pane, right-click and select New from the shortcut menu.

6. When you see the New MRCP Server dialog box, fill in the Name that you want to assign to your server and then select the appropriate Vendor option.

a. You'll select ININ if you are defining an installation of Interaction Media Streaming Server.

b. You'll select Third Party if you are defining an installation of any other MRCP server.

Note: Since the key to identifying your MRCP server is the SIP address, you can use any name that you want in the New MRCP Server dialog box.

20

MRCP Technical Reference

7. Once you click OK, the corresponding Servers Configuration dialog box appears. Keep in mind that the Servers Configuration dialog box for ININ is slightly different from the Third Party version.

8. Regardless of the Vendor type that you selected, you will fill in the SIP Address of the MRCP Server using the format: sip:user@domain:port

9. If you have servers in multiple regions, you'll want to set a Location. See Assigning an MRCP Server to a Location.

10. Leave the Priority set at 1.

For more information on the tabs and settings in the Servers Configuration dialog box, access the Interaction Administrator Help by clicking the ? button on the top right of the dialog box.

Note: To avoid a conflict with the default ports used by other SIP endpoints, we recommend that you use port 6060 for MRCP Servers. If you use a different port, make sure that the port setting in Interaction Administrator and the port setting on the MRCP Server match.

21

MRCP Technical Reference

Assigning an MRCP Server to a Location If you have MRCP servers in multiple regions, you can ensure the best performance as well as ensure efficient use of the available WAN bandwidth by assigning your MRCP servers to Locations.

To assign an MRCP Server to a Location:

1. On the IC server, open Interaction Administrator.

2. In the left pane of the Interaction Administrator window, expand the System Configuration container.

3. Locate and expand the MRCP Servers container.

4. Select the Servers container to display your MRCP server in the right pane.

5. Double-click your MRCP server name to display the Servers Configuration dialog box.

6. Use the Location drop down menu to select and assign a location to your MRCP server.

For information on creating locations, see the Create Location topic in the Interaction Administrator Help.

Tip: You can quickly assign MRCP Servers to a location

using the server's context menu.

22

MRCP Technical Reference

Assigning MRCP Selection Rules to a Location If you decide that the default selection rules don't work well in your network, you can use custom selection rules and assign those rules to a location.

To assign an MRCP Selection Rule to a location:

1. On the IC server, open Interaction Administrator.

2. In the left pane of the Interaction Administrator window, locate and expand the object that represents your IC server.

3. Expand the Regionalization container.

4. Select the Locations object to display your Location Names in the right pane.

5. Double-click a location to display the Locations Configuration dialog box and select the Selection Rules tab.

6. Use the MRCP Server drop down menu to choose and assign a selection rule to the location.

For information on creating selection rules, see the Selection Rules topic in the Interaction Administrator Help.

Note: In this image, we've shown the selection of a Custom Selection Rule; however, you can just as easily select the <Default MRCP Section Rule> if you later decide you no longer want to use a Custom Selection Rule.

23

MRCP Technical Reference

Tip: Another way that you can assign an MRCP Server to a Location is to use the Endpoints tab in the Locations Configuration dialog box Once you choose a location and access the Locations Configuration dialog box:

1. Select the Endpoints tab. 2. Select MRCP Servers in the Endpoint type panel 3. Choose the MRCP server you want to assign to that location from the Available

endpoints panel. 4. Click the arrow to move it to the Selected endpoints panel.

24

MRCP Technical Reference

Configuring an MRCP Server for TTS To use an MRCP server for TTS you'll need to configure it in Interaction Administrator.

To configure an MRCP Server for TTS:

1. On the IC server, open Interaction Administrator.

2. In the left pane of the Interaction Administrator window, expand the System Configuration container.

3. Locate and expand the MRCP Servers container.

4. Select the Servers container.

5. In the right pane, under the Servers column, double click your server.

6. When you see the Servers Configuration dialog box, you'll do one of the following depending on what Vendor you selected:

a. If you chose Third Party as the vendor, just select the Text to speech check box.

25

MRCP Technical Reference

b. If you chose ININ as the vendor, you'll find that the Retrieve from server option is selected by default. This configures the MRCP server to make its services available to the IC server. Click the adjacent button to immediately request services.

Select the Use refresh interval (sec) check box if you want the IC server to continuously request services from the MRCP server. Use the spin box to set the number of seconds that should elapse between requests.

Select the Use custom option if you want to manually specify the capabilities of the MRCP server, even if those features are not yet enabled or configured on the MRCP server.

Enable the Text to speech check box to allow the MRCP server to convert text to synthesized speech in calls.

Enable the External audio sources check box to allow the MRCP server to provide streaming audio that is injected into calls, such as Music on Hold.

Enable the Voicemail check box to allow the MRCP server to insert voice mail messages into calls.

26

MRCP Technical Reference

8. Select the Voices tab and click the Add button to display the Enter Synthesizer Voice Name dialog box.

9. Type the name of a voice in the Synthesizer Voice Name box and click OK.

10. Continue to add all the voices that are installed on the MRCP Server.

11. Configure the Gender and Supported Languages for each Voice:

• In the Voice box, select a voice.

• In the Gender box, select the gender for the voice.

• Under Supported Languages in the Available box, select each language to associate with the voice, and click Add.

For more information on the tabs and settings in the Servers Configuration dialog box, access the Interaction Administrator Help by clicking the ? button on the top right of the dialog box.

27

MRCP Technical Reference

Testing a TTS MRCP Server installation After a third-party MRCP Server is set up and the IC server is configured to use the MRCP Server, we recommend you test the MRCP installation to make sure everything is working correctly.

To test the TTS MRCP configuration:

1. Use a custom handler that has a Play String Extended toolstep.

2. To configure the toolstep to use MRCP in this play operation, access the Play String Extended properties dialog box and select the Inputs tab

3. In the Optional Parameters box, type "MRCP" as the first parameter.

4. After configuring the toolstep, test the handler and verify that the modified toolstep is working correctly.

If the toolstep works as desired, the MRCP configuration has been installed and configured correctly.

28

MRCP Technical Reference

Configuring MRCP Servers The IC platform can be configured to automatically use MRCP for all TTS plays.

To configure MRCP Servers:

1. On the IC server, open Interaction Administrator.

2. Select the System Configuration container.

3. In the right pane, under the System Configuration column, double-click Configuration.

4. When you see the System Configuration dialog box, choose the Text To Speech tab, and then select MRCP from the Default TTS Provider drop down.

For more information on the tabs and settings in the System Configuration dialog box, access the Interaction Administrator Help by clicking the ? button on the top right of the dialog box.

29

MRCP Technical Reference

Check Windows Event Viewer for Probation Warnings When an MRCP server is put on probation, a notification is written to the event log on the IC server. More specifically, a Warning notification with Event ID 39613 is written to the Application log. These warnings indicate that there was at least one failed attempt to use an MRCP server.

If the problem that caused the probation was temporary and the MRCP server was able to begin creating resources, the MRCP server is taken off probation and a different notification is written to the event log on the IC server. In this case, an Information level notification with Event ID 39614 is written to the Application log.

30

MRCP Technical Reference

Deactivating an MRCP Server If you discover that an MRCP server has been regularly put on probation due to a serious error condition, you should remove it from production by deactivating it in Interaction Administrator. That way you can troubleshoot the cause of the problem while ensuring that it has no impact to callers. Furthermore, any MRCP server being taken offline for scheduled maintenance should first be marked inactive.

To remove an MRCP Server from production:

1. On the IC server, open Interaction Administrator.

2. In the left pane of the Interaction Administrator window, expand the System Configuration container.

3. Locate and expand the MRCP Servers container.

4. Select the Servers container.

5. In the right pane, under the Servers column, double click your server.

6. When you see the Servers Configuration dialog box, clear the Active check box, and click OK.

Note: If that are any active sessions on the server at the time you deactivate it, those sessions will continue to use the server until they are complete. As such, you should wait for a period of time before performing any maintenance that requires shutting down the server.

31

MRCP Technical Reference

Reactivating an MRCP Server To return an MRCP server to production, go back to the Servers Configuration dialog box, select the Active check box, and click OK. When you do so, the MRCP server will immediately be available to begin taking requests for MRCP resources.

If the server was on probation when it was deactivated, the MRCP server is taken off probation and the probation period is reset. What this means is that if the problem causing the failure to respond reoccurs, the server will begin the probation period again from scratch – regardless of how many times it had been put on probation the first time around - and the first probation will be 5 seconds.

32

MRCP Technical Reference

Interaction Designer for TTS When a system is configured to use MRCP as its default TTS provider, the Interaction Designer Tools, in the telephony palette, will automatically use the MRCP Server for speech synthesis.

33

MRCP Technical Reference

MRCP with SAPI A system can be configured to use SAPI by default and still be able to use MRCP.

To do this:

1. On the System Configuration dialog, select SAPI from the Default TTS Provider drop down.

2. To use MRCP when SAPI is the default TTS provider, use the Extended version of the prompt tools, for example:

34

MRCP Technical Reference

3. And in the Optional Parameters box type, "MRCP" as the first parameter.

MRCP Optional Parameters Use additional MRCP parameters to control speech synthesis in a tool step. The parameters are space delimited, and if a parameter requires a value, its name/value pair is separated by a colon. For example, “mrcp.audio.contentType:application/ssml+xml”

The following table describes valid MRCP parameters.

Parameter Description Values

MRCP Controls whether MRCP should be used for TTS

Note: If this parameter is specified it has to be the first parameter in the Optional Parameter box.

mrcp.audio.server.name Uses the specified MRCP Server to synthesize the text to speech

MRCP Server name as specified in Interaction Administrator

mrcp.audio.voice.name Uses the specified MRCP voice to synthesize the text to speech

MRCP voice name as specified in Interaction Administrator

35

MRCP Technical Reference

Parameter Description Values

*mrcp.audio.voice.rate SSML prosody rate of a voice

The value can be an absolute float multiplier. For example 2.0 equals twice the rate, or 0.5 equals half of the rate

-or-

The following predefined values that indicate a relative change:

• x-slow

• slow

• medium

• fast

• x-fast

• default

*mrcp.audio.voice.volume SSML prosody volume The value can be an absolute number in the range of 0—100, zero being silence and higher values being louder

-or-

One of the following predefined values that indicate a relative change:

• silent

• x-soft

• soft

• medium

• loud

• x-loud

• default

*mrcp.audio.language Uses a voice that supports the specified language

Identifiers as specified in RFC 3066—language-country

mrcp.audio.vendor The MRCP Server vendor to use

MRCP vendor as specified in Interaction Administrator

*mrcp.audio.contentType The content type of the text being synthesized

• text/plain (default)

• application/ssml+xml

• text/uri-list

• multipart/mixed

*These parameters are vendor dependent and vary between TTS engines

36

MRCP Technical Reference

FAQ 1. Do we require MRCP Servers for some functionality or are they always

optional? MRCP Servers are not required. An alternative solution for TTS is to use SAPI (Microsoft Speech API) which is the default TTS provider of an CIC system. To configure SAPI voices, go to the speech applet in Control Panel in Windows. By default SAPI TTS processing is done on the IC server, but some vendors, such as Nuance RealSpeak, have SAPI implementations that support off-server installations. With some vendors, such as Loquendo, MRCP is the only solution available to be able to offload the TTS processing.

2. How many MRCP Servers per site do we need? The number of severs per site is dependent on the text-to-speech usage per site, that is TTS IVR prompts, email playback, custom rules, and so on.

3. How are MRCP ASR servers configured in Interaction Administrator? Only the MRCP synthesizer (TTS) resources are configured in Interaction Administrator. MRCP ASR servers are configured using the ASR Server MRCP controller. See the ASR Technical Reference for more details on configuring MRCP server settings for ASR.

37

MRCP Technical Reference

Change Log The following table summarizes the updates made to the MRCP Technical Reference version 4.0, after product availability.

Change Date

Updated Copyright and Trademarks for 2012 July 23, 2012

Updated document for selecting an MRCP server based on location

July 26, 2012

Updated document for 4.0 SU3 release for ASR MRCP support.

January 9, 2013

Updated document for configuring MRCP Servers to use Media Streaming Server for voice mail playback.

January 15, 2013

Updated Copyright and Trademarks for 2013. February 25, 2013

Updated Copyright and Trademarks for 2014. Reorganized document contents. Added information on Location and Selection Rules. Added information about Probation.

June 10, 2014

Updated documentation to reflect changes required in the transition from version 4.0 SU# to CIC 2015 R1, such as updates to product version numbers, system requirements, installation procedures, references to Interactive Intelligence Product Information site URLs, and copyright and trademark information.

August 5, 2014

Updated cover page to reflect new color scheme and logo. Updated copyright and trademark information.

July 1, 2015

Updated references to Interaction Desktop

Updated the document to reflect the CIC 2016 R1 version.

October 9, 2015

Updated Copyright and Trademarks for 2016.

Added link to the new CIC Documentation Library at Help.inin.com

February 4, 2016

Updated instructions and screenshots for configuring MRCP for TTS.

April 12, 2016