Guide

Virtual Agent Release 4.0

Printed on 20 April, 2009

© 2009 Avaya Inc. All Rights Reserved. Notice While reasonable efforts were made to ensure that the information in this document was complete and accurate at the time of printing, Avaya Inc. can assume no liability for any errors. Changes and corrections to the information in this document may be incorporated in future releases. Documentation disclaimer Avaya Inc. is not responsible for any modifications, additions, or deletions to the original published version of this documentation unless such modifications, additions, or deletions were performed by Avaya. Link disclaimer Avaya Inc. is not responsible for the contents or reliability of any linked Web sites referenced elsewhere within this Documentation, and Avaya does not necessarily endorse the products, services, or information described or offered within them. We cannot guarantee that these links will work all of the time and we have no control over the availability of the linked pages. License USE OR INSTALLATION OF THE PRODUCT INDICATES THE END USER'S ACCEPTANCE OF THE TERMS SET FORTH HEREIN AND THE GENERAL LICENSE TERMS AVAILABLE ON THE AVAYA WEBSITE AT http://support.avaya.com/LicenseInfo/ ("GENERAL LICENSE TERMS"). IF YOU DO NOT WISH TO BE BOUND BY THESE TERMS, YOU MUST RETURN THE PRODUCT(S) TO THE POINT OF PURCHASE WITHIN TEN (10) DAYS OF DELIVERY FOR A REFUND OR CREDIT. Avaya grants End User a license within the scope of the license types described below. The applicable number of licenses and units of capacity for which the license is granted will be one (1), unless a different number of licenses or units of capacity is specified in the Documentation or other materials available to End User. "Designated Processor" means a single stand-alone computing device. "Server" means a Designated Processor that hosts a software application to be accessed by multiple users. "Software" means the computer programs in object code, originally licensed by Avaya and ultimately utilized by End User, whether as stand-alone Products or pre-installed on Hardware. "Hardware" means the standard hardware Products, originally sold by Avaya and ultimately utilized by End User. License type(s) Concurrent User License (CU). End User may install and use the Software on multiple Designated Processors or one or more Servers, so long as only the licensed number of Units are accessing and using the Software at any given time. A "Unit" means the unit on which Avaya, at its sole discretion, bases the pricing of its licenses and can be, without limitation, an agent, port or user, an e-mail or voice mail account in the name of a person or corporate function (eg., webmaster or helpdesk), or a directory entry in the administrative database utilized by the Product that permits one user to interface with the Software. Units may be linked to a specific, identified Server. Copyright Except where expressly stated otherwise, the Product is protected by copyright and other laws respecting proprietary rights. Unauthorized reproduction, transfer, and or use can be a criminal, as well as a civil, offense under the applicable law. Third-party components

Certain software programs or portions thereof included in the Product may contain software distributed under third party agreements (“Third Party Components”), which may contain terms that expand or limit rights to use certain portions of the Product (“Third Party Terms”). Information identifying Third Party Components and the Third Party Terms that apply to them is available on Avaya’s web site at: http://support.avaya.com/ThirdPartyLicense/. Avaya fraud intervention If you suspect that you are being victimized by toll fraud and you need technical assistance or support, call Technical Service Center Toll Fraud Intervention Hotline at +1-800-643-2353 for the United States and Canada. Suspected security vulnerabilities with Avaya Products should be reported to Avaya by sending mail to: [email protected]. For additional support telephone numbers, see the Avaya Web site: http://www.avaya.com/support. Trademarks Avaya is a trademark of Avaya Inc. All non-Avaya trademarks are the property of their respective owners. Avaya support Avaya provides a telephone number for you to use to report problems or to ask questions about your contact center. The support telephone number is 1-800-242-2121 in the United States. For additional support telephone numbers, see the Avaya Web site: http://www.avaya.com/support. For the most current versions of documentation, go to the Avaya Contact Center Express support Web site: http://www.avayacce.com/Public_Downloads.htm.

iv

Contents Chapter 1 Preface

6

Introduction

6

Knowledge Base

6

Part I User Guide

7

Chapter 2 What is Virtual Agent?

8

Worker Plug-ins

8

Web Service Worker Plug-in ........................................................................................................................9 Using Web Service Worker Plug-in ................................................................................................11 Outbound Worker Plug-in ..........................................................................................................................12 Using Outbound Worker Plug-in.....................................................................................................14

Part II Technical Guide

17

Installation

17

Installation Requirements ...........................................................................................................................17 Desktop ................................................................................................................................18 Server ...................................................................................................................................18 Interaction Data Service .......................................................................................................18 Database ...............................................................................................................................18 Email Server.........................................................................................................................18 Developers............................................................................................................................18

Contents

v

Installing Virtual Agent ..............................................................................................................................19

Chapter 3 Configuration

26

Configuring Virtual Agent..........................................................................................................................27 Configuring XML Server............................................................................................................................32 Configuring Virtual Agent Groups .............................................................................................................35 Configuring Virtual Agent Workers ...........................................................................................................39 Configuring Virtual Agent for Web Service...............................................................................................42 Setting up customized programs for Outbound Work Items.......................................................................44

Integrating Voice Portal with Virtual Agent Web Service

49

Web Service Worker Plug-in Architecture

50

Web Service Methods.................................................................................................................................53

Index

59

6

CHAPTER 1

Preface The following few pages provides information that will help you use this document.

Introduction For ease of use this guide has been divided into two parts. Part I: User Guide - This covers the necessary information for quick and hands-on use of Virtual Agent. Part II: Technical Guide - This covers the more technical aspects of the application, from installation through to configuration and set-up.

Knowledge Base For information on any errors and updates relating to this document, visit the Avaya Contact Center Express Knowledge Base (http://support.avayacce.com).

7

PART I

User Guide

8

CHAPTER 2

What is Virtual Agent? Virtual Agent is a Contact Center Express service that allows you to process work items using 'virtual' agents instead of real agents. It gives you the ability to send out email or text messages to customers via a group of virtual agents essentially creating an automated messaging service. What's more, Virtual Agent gives customers who call a phone number answered by an Avaya Voice Portal, access to data that is stored in Contact Center Express. Once again, Virtual Agents access the voice work items that are generated when these incoming phone calls are received. There is no manual effort (other than some initial set-up by an administrator) required! Virtual Agents process work items the way 'real' agents do - they log into Contact Center Express's XML Server, consume a station DN and (optionally) an agent ID, and then wait to receive and deliver Contact Center Express work items. The Virtual Agent service supports up to 300 concurrent virtual agents, each capable of receiving one work item per second. The service starts automatically with the server's operating system, and is fully configured via Contact Center Express Control Panel. It is envisaged that in time, Virtual Agent working in tandem with the Web Service Worker Plug-in will render much of the same control and functionality (if not more) provided by IVR Server in Contact Center Express 3.x (which has since been discontinued in Contact Center Express 4.0).

Worker Plug-ins Virtual Agent relies on the technology of certain plug-ins (referred to as 'worker' plug-ins) to carry out tasks. This release of Virtual Agent comes with two worker plug-ins: 1: Web Service Worker Plug-in This plug-in gives customers who call a phone number answered by an Avaya Voice Portal, access to data that is stored in Contact Center Express. 2: Outbound Worker Plug-in This plug-in gives you the ability to automatically send out email or text messages to customers.

Worker Plug-ins

Web Service Worker Plug-in Giving Calling Customers Access to Database Data This plug-in gives customers who call a phone number answered by an Avaya Voice Portal, access to data that is stored in Contact Center Express's customer database.

9

Worker Plug-ins

10

In addition to the Web Service Worker Plug-in (which is installed automatically as part of the Virtual Agent installation), you need to install the Virtual Agent Web Service, which forwards requests from the Avaya Voice Portal script to the Web Service Worker Plug-in. The manual tasks required by your call center administrator are detailed in the following diagram:

Note: For more details on how to configure the Virtual Agent service and how to setup the Web Service Worker Plug-in refer to the Technical Section of this Guide.

Worker Plug-ins

11

Using Web Service Worker Plug-in Once the plug-in has been setup and configured correctly, it is ready for use via the Web Service for Voice Portal.

To access the service, open the URL - http://localhost/VirtualAgentWebService/Service.asmx from the local machine on which the Web Service is installed. Note: For details of the Web Service Methods see the relevant (see "Web Service Methods" on page 53) Technical Section of this Guide.

Worker Plug-ins

Outbound Worker Plug-in Sending Out Email or Text Messages to customers in bulk and without staff involvement. The diagram below details the automated process that the Outbound Worker Plug-in goes through in concert with Virtual Agent to deliver email or simple message work items.

12

Worker Plug-ins

13

This can be achieved after your call center administrator has completed a manual set up via Contact Center Express Control Panel.

Two media stores must be configured: Preview Contact Media Store (which is used to carry customer data and the outgoing message to Media Director) and either Email Media Store or Simple Messaging Media Store (which are used to send out the actual email or text message to the customer). Once configuration is complete, the automated process will run at the scheduled time. Note: For more details on how to configure the Virtual Agent service and how to setup outbound programs refer to the Technical Section of this Guide.

Worker Plug-ins

Using Outbound Worker Plug-in Once the plug-in has been setup and configured correctly, it is then a simple matter of loading work items to the Preview Contact Media Store outbound program. 1 Simply right-click on the node of the program in Contact Center Express Control Panel.

14

Worker Plug-ins

2 The Load Interactions tab will open.

3 Then select a CSV file to load.

15

Worker Plug-ins

16

For Email:

ƒ

To function correctly, the CSV file for Outbound Email, MUST have the word "Email" entered as either the First, Second or Third contact option.

ƒ

The Email message contents should be in the Email outbound message field.

For SMS:

ƒ

To function correctly, the CSV file for Outbound SMS, MUST have the word "Simple Messaging" entered as either the First, Second or Third contact option.

ƒ

The SMS message contents should be in the Simple Messaging outbound message field.

Note: A sample reference for the CSV file schema is installed by default into the Contact Center Express Control Panel folder: C:\Program Files\Avaya\Contact Center Express\Desktop\Contact Center Express Control Panel\PreviewContactSchema.csv

17

PART II

Technical Guide

Installation For full instructions on how to install Web Chat for IIS, refer to the Contact Center Express Installation Guide. The Contact Center Express Installation Guide is on the Contact Center Express DVD (Overview and Miscellaneous folder) or can be downloaded from the Avaya Contact Center Express website (http://www.avayacce.com).

Installation Requirements The specifications listed here are the minimum recommended. As far as is known and unless otherwise stated, Contact Center Express and its components should be compatible with all higher specification hardware configurations and software versions that those listed here. Note: The following are not yet supported ƒ

Microsoft .Net Framework 3.0

ƒ

Microsoft .Net Framework 3.5

Installation

18

Desktop For Contact Center Express Desktop, Contact Center Express Reporting, Contact Center Express Control Panel and Supervisor. Hardware: 1.6 GHz Pentium, 512MB of RAM, 50MB of free hard disk space, DVD drive, graphics card capable of supporting 1024x768 resolution monitor, mouse or other Windows-compatible pointing device, and TCP/IP LAN connection. Software: Either Windows Vista (Enterprise), Windows XP Professional 32-bit SP2/SP3, Citrix Presentation Server 3.0.2 or Windows Terminal Services 32-bit with Application Enablement Services (AE Services) client software release 4.2.1, Microsoft Internet Explorer 6.0 SP1 and Microsoft .Net Framework 2.0 or 2.0 SP1.

Server For License Director, XML Server, Configuration Server, Application Management Director, Media Director, all Media Stores and Gateways, Call Routing Server and Virtual Agent. Hardware: A 2.4 GHz Pentium with 2GB of RAM. Software: Either Windows 2003 Server (Enterprise & Standard) 32-bit, Windows 2008 Server (Enterprise & Standard) 32-bit with Application Enablement Services (AE Services) client software release 4.2.1, Microsoft Internet Explorer 6.0 SP1 and Microsoft .Net Framework 2.0 or 2.0 SP1. VMWare and Virtual Server are also supported.

Interaction Data Service The Interaction Data Service requires its own dedicated server with the same minimum requirements as the server specifications listed above - excluding Microsoft Internet Explorer which is not required.

Database Interaction Data Server (ActiveInteractionData), Configuration Server (ACS), ASMSControl Database, ASMSData and ASContact Databases may be installed on either Microsoft SQL Server 2008 or Microsoft SQL Server 2005.

Email Server Only POP3/SMTP supported: Microsoft Exchange Server 2003, Version 6.5 or Microsoft Exchange Server 2007.

Developers Developing applications: Windows XP Professional 32-bit SP2/SP3 with Microsoft Visual Studio 2005, Application Enablement Services (AE Services) client software release 4.2.1, Microsoft Internet Explorer 6.0 SP1 and Microsoft .Net Framework 2.0 or 2.0 SP1.

Installation

Installing Virtual Agent 1

Close any applications you have open.

2 Insert the Contact Center Express DVD into your computer’s DVD drive. 3 Select the language you would like to use for the installation from the drop-down list box.

4 Click Server.

19

Installation

5 Click Virtual Agent.

6 The Virtual Agent setup screen appears. Click Next to continue.

20

Installation

21

7 The License Agreement screen appears. Read through the license agreement and, if you are happy with the terms, click Yes.

8 To select a different install location, click the Browse button. Otherwise, click Next to continue.

Installation

9 Select both components and click Next.

10 Specify the remoting IP address and port number the Virtual Agent Web Service will use to connect to the Virtual Agent service and click Next.

22

Installation

11 Review your install settings and click Next to start the install.

12 The installation proceeds.

23

Installation

13 If the installer finds that ASP Net 2.0 Web Service Extension is not installed, it will ask that you OK its installation. This component is required for the Virtual Agent Web Service Worker Plugin.

14 Click Finish.

24

Installation

15 If you are asked to restart your machine (this will happen if some application components need updating or registering), click Yes.

25

26

CHAPTER 3

Configuration The configuration and monitoring of this Contact Center Express service is accomplished by the Application Management Service installation of which is a necessary pre-requisite for the configuration and setup of Virtual Agent. For detailed information on how to install Application Management Service refer to the about the Contact Center Express Installation Guide.pdf. One component of this service is the Contact Center Express Control Panel, a user interface that allows you to add and change configuration and operation information about currently monitored servers. For detailed information on how to configure this service, refer to the about the Contact Center Express Control Panel User Guide.pdf.

In This Chapter Configuring Virtual Agent .................................................27 Configuring XML Server ...................................................32 Configuring Virtual Agent Groups.....................................35 Configuring Virtual Agent Workers...................................39 Configuring Virtual Agent for Web Service ......................42 Setting up customized programs for Outbound Work Items

44

Configuration

Configuring Virtual Agent 1

Open Contact Center Express Control Panel to configure Virtual Agent.

27

Configuration

2 Expand the Virtual Agent tree node.

28

Configuration

29

3 Right-click on Virtual Agent tree node and click Edit. The Edit Virtual Agent menu appears.

Media Director

ƒ

Select the Media Director that the Media Stores connect to enable access by Virtual Agent from the drop-down menu.

The control panel will then use the 4 fields of IP, Port, channel type and URI to compose the the correct URL, which it will automatically update in the URL field. Error Logging

Agent logs error information relating to its own operation to a series of log files. A new log file is created for each day of the week. The name of the error log file clearly identifies the application and the day of the week, for example, MonACRS.log. Once a log file reaches the size limit specified in its configuration, it is archived and a new file is created. (Note: The archive only stores one log file. If the second error log reaches the specified maximum size, it overrides the previously archived log file.) The types of errors logged by the error log are determined by the logging level retrieved from the application's configuration data. Levels of error logging are: ƒ

0. No error logging takes place.

ƒ

1. Logs fatal, major, minor and trace information.

Configuration

ƒ

2 Logs fatal, major and minor errors.

ƒ

4. Logs fatal and major errors.

ƒ

8. Logs fatal errors only.

30

Each file records the selected logging level as well as the date, time, location and description of every error that occurs. Error log files are automatically saved into the application's current working folder (the same folder as the application executable). License Director

Enable connection to License Director. ƒ

Primary IP: Set location of the Primary License Director.

ƒ

Secondary: If applicable, set location of the Secondary License Director.

ƒ

Input the Port numbers relevant to the IP addresses above.

To use Web Service Worker Plug-in, you need to buy one CCE IVR license key with enough runtime licenses to cover the number of IVR ports Virtual Agent is configured to monitor. To use Outbound Worker Plug-in, you need to buy one CCE Multimedia license key with at least enough run-time licenses to cover the number of virtual agents and one CCE Voice license key with at least enough run-time licenses to cover the number of virtual agents plus two. License keys are added to License Director (a central repository for all Contact Center Express licenses) using Contact Center Express Control Panel. For information on how to add a license key to License Director, refer to the Application Management Service User Guide. Licensing Error Messages

On starting Agent, an error message will display if: ƒ

The license has not been set up using the Application Management Service.

ƒ

The license is a trial-only license and has already expired.

ƒ

The number of run-time licenses requested exceeds the total number of licenses purchased.

ƒ

The server running License Director or License Director itself is not available.

For more information on how Agent interacts with License Director, refer to the License Director User Guide. Voice Media Stores

These will automatically be listed by Contact Center Express Control Panel and you can select which one/s you want Virtual Agent to connect to. If the Voice Media Store is not on the same multicast, then it will not appear, however, in this case it can be manually entered into the Media store list field below.

Configuration

31

4 Finally ensure you click the Save icon button at the top of the control panel to effect your changes.

Configuration

Configuring XML Server 1

Right-click on XML Server tree node and click Edit to open the Edit XML Server tab.

2 XML Server is used by Virtual Agent to monitor voice stations. If more than one XML Server is used, another section with the same configuration entries can be created. However, the section name needs to begin with "XML Server", for example: [XML Server AnotherServer].

32

Configuration

33

ƒ

Primary XML Server IP: The primary IP address or computer name which is used by the Virtual Agent to connect to the primary server.

ƒ

Primary Link Name: The TLink name (for example:AVAYA#AVAYA_ECS_PROD#CSTA#TSVROLD) which is used by the Virtual Agent to connect to the primary XML Server. Once the Primary XML Server IP has been input, then click the ... button to automatically retrieve the Primary Link Name.

ƒ

Primary XML Server Port: The port number which is used by the Virtual Agent to connect to the Secondary XML Server.

ƒ

Secondary XML Server IP: The primary IP address or computer name which is used by the Virtual Agent to connect to the Secondary server. If the Primary XML Server fails, the Virtual Agent will automatically connect to the Secondary XML Server to continue working.

ƒ

Secondary Link Name: The TLink name (for example:AVAYA#AVAYA_ECS_PROD#CSTA#TSVROLD) which is used by the Voice Media Store to connect to the Secondary XML Server. If the Primary XML Server fails, the Virtual Agent will automatically connect to the Secondary XML Server to continue working.

ƒ

Secondary XML Server Port: The port number which is used by the Virtual Agent to connect to the primary XML Server. If the primary XML Server fails, the Virtual Agent will automatically connect to the secondary XML Server to continue working.

1

Finally, ensure that you save your settings by clicking the Save icon button at the top of the control panel. Alternatively you can also right-click anywhere within the Edit XML Server tab and use the convenient drop-down menu to save your configuration.

Configuration

34

Configuration

Configuring Virtual Agent Groups 1

Right-click on XML Server tree node and click Edit to open the Edit XML Server tab.

35

Configuration

36

2 By default, a Virtual Agent Group A is created in the Contact Center Express Control Panel. You can choose to use this and configure it to your needs, or alternatively you can create your own Virtual Agent Group.

Configuration

37

3 To create a new Virtual Agent Group, simply right-click over the Virtual Agent tree node and click Add Virtual Agent.

Virtual Agent Group

Enable Virtual Agent Group: If this is ticked, the Virtual Agent group will work, otherwise the Virtual Agent Group will be turned off. Enable connection to Media Director: To enable multimedia functionality within Virtual Agent tick this check box beside Enable connection to Media Director. If you leave this box unselected, the application will only function as a telephony application - use this de-selected setting for Virtual Agent Web Service Worker Groups. Virtual Agent answers the call: If selected, the call will be answered by Virtual Agent. If not selected, the call will be answered by Communication Manager or Voice Portal. Connect To Media Director When Agent Logs In: To make the each agent in this group connects to Media Director when the agent logs into the switch, tick the check box beside Connect to Media Director when agent logs in. To make the agent automatically connects to Media Director as soon as it starts up, remove the tick. As agents cannot be used for the Outbound Worker when associated with phantom (CTI) stations this must be unchecked for normal operation. Multimedia workitems are distributed to virtual agents using hunt groups not skills. Agent Login Mode: From the drop-down list, select what work mode the agent is automatically placed in when they log in.

Configuration

38

ƒ

Auxiliary - This makes the agent unavailable to receive calls so they can do a non-call-related activity like taking a break or going to lunch.

ƒ

After Call Work - This makes the agent unavailable to receive calls so they can perform a call-related activity like filling out a form.

ƒ

Available - This makes the agent available to receive calls.

Agent Available Mode: From the drop-down list, select how an agent becomes available to receive another call after ending a call. ƒ

Auto-In - Here the agent is automatically placed in Available mode after ending a call.

ƒ

Manual-In - Here the agent is automatically placed in After Call Work mode after ending a call and needs to manually make themselves Available.

ƒ

Maximum MultiMedia Work Items Held By Agent: This specifies the maximum work items that can be held by each agent.

Alarm

End Point Busy High Water Percentage: Specifies the high water point at which an alarm is triggered. Alarm On Busy High Water Mark: If selected, an alarm will be generated when the percentage of endpoints specified in the configuration variable End Point Busy High Water Percentage has been reached. Alarm On All Endpoints Busy: If selected, an alarm will be generated when all endpoints in a specific group are occupied with work. Agent List

Agent List: A collection of the currently configured agent groups within the Virtual Agent. The format is station|stationpassword|agentID|agentpassword|TelecommuteNumber. For example: 90001|90001|90301|90301|90000, 90002|90002|90302|90302|90000 Edit and Add Agent Tabs

Use these to add and edit agents within Virtual Agent Group.

Configuration

Configuring Virtual Agent Workers 1

Expand the Workers node in the Contact Center Express Control Panel treeview.

2 Click on Outbound Worker.

39

Configuration

40

3 Right-click and select Edit.

4 The Edit Outbound Worker tab appears.

Supported CCE work item types: Select the CCE work items types that you want to be processed by the Outbound Worker. Supported customized work item types: Use this to select any custom work item types you may have. Agent group names: Select which Virtual Agent group or groups you want to assigned to the Outbound Worker.

Configuration

5 Remember to Save your settings. Simply right-click anywhere within the Edit Outbound Worker tab and use the drop-down menu.

6 Right-click over the Web Service tab and select Edit. Then make your assignments in a similar manner to what has described above for Outbound Worker and save your settings.

41

Configuration

42

Configuring Virtual Agent for Web Service 1

You can choose to use the default Virtual Agent Group and configure it to your needs (as described Configuring Virtual Agent Groups (on page 35),) or alternatively you can create your own Virtual Agent Group.

2 IMPORTANT: Ensure that Enable connection to media director is NOT selected. 3 Add the Voice Portal device that you wish to monitor to the Agent List. Then Save and Close. 4 Assign your Group to the Web Service Worker as described Configuring Virtual Agent Workers (on page 39).

Configuration

5 Then, add the same Voice Portal device to the Voice Media Store XML Server Station list.

6 Click on the Voice Station node to verify that the device is being monitored successfully.

43

Configuration

44

Setting up customized programs for Outbound Work Items To ensure that the programs you assign to the Outbound Work Items function and are able to send outbound work items, you need to customize each Preview Contact Media Store outbound program in Contact Center Express Control Panel. Outbound Email Work Item 1 Select the Email Media Store Queue that you want to use to send your Outbound Email. Note the Program ID.

Configuration

2 This Program ID is the same ID as that displayed in the matching Media Store Program.

3 Add a new program or Edit an existing Preview Contact Media Store Program by right-clicking on the node and selecting from the drop-down menu.

45

Configuration

4 Select the Customized Configuration tab.

Key: You MUST enter "Outbound Program ID" manually into this field. Value: Enter the Program ID of the Email Media Store. Topic: You MUST enter "Email" into this field. 5 Once you have done this, Save your settings. 6

46

Configuration

Outbound SMS Work Item 1 Select the Short Message Remote Service that you want to assign to the Outbound SMS Work Item.

2 Scroll to the bottom of the Summary Window to reveal the Channels information. And note the Simple Messaging Media Store Queue name (in this example: Sales)

47

Configuration

48

3 Select the relevant Simple Messaging Queue node to obtain the specific Program ID that will be used for the Outbound SMS Work Item.

4 Add or Edit an existing Preview Contact Media Store Program, and then select the Customized Configuration tab.

5 First enter: Key: You MUST enter "Outbound Program ID" manually into this field. Value: Enter the Program ID of the Simple Messaging Media Store. Topic: You MUST enter "Simple Messaging" into this field.

Integrating Voice Portal with Virtual Agent Web Service

49

6 Then enter: Key: "Service Name" Value: Enter the Short Message Service Gateway remote service name. Topic: You MUST enter "Simple Messaging" into this field. 7 Finally, Save your settings.

Integrating Voice Portal with Virtual Agent Web Service To integrate Voice Portal with Virtual Agent use Avaya Dialog Designer with the wsdl file located in the Virtual Agent Web Service folder.

Web Service Worker Plug-in Architecture

50

Web Service Worker Plug-in Architecture

Web Service Worker Plug-in Architecture

51

VAWebServiceWorkerPlugin is the worker plug-in for VA that is based on the Service Plug-in Host architecture. VAWebServiceWorkerPlugin consists of the following classes: ƒ

VAWebServiceWorkerPlugin – this is the main plug-in class that upon startup will instantiate the following classes:

ƒ

VAWorker – This class overrides the VMCWorkerBase abstract class. This will allow it to receive work items from VMC and buffer these work items in a synchronized dictionary that uses UCID as the key.

ƒ

VAWorkItemBufferDictionary – this wrapper class contains a two synchronized dictionary buffer. The first dictionary will have the UCID or InteractionID as the key and the work item as the value. The second dictionary will have the CallID or Identifier as the key and UCID or InteractionID as the value. This is a one and only wrapper class and will be implemented based on the singleton pattern.

ƒ

IVAWebServiceImplement - this class will implement the remoting interface with the VMCWebService and will on initialization, setup a remote listening channel.

ƒ

RequestBufferDictionary – this wrapper class contains a single synchronized dictionary buffer. This dictionary will have the UCID/InteractionID as a key and the ManualResetEvent object as the value. This is a one and only wrapper class and will be implemented based on the singleton pattern. The dictionary will be populated only when the “Get work item according to UCID” failed to retrieve the work item from the VAWorkItemBufferDictionary.

ƒ

Configuration – this class will implement configuration loading for the worker plug-in.

The “Get work item according to UCID” in the figure above (VAWebServiceWorkerPlugin Overview) will wait for a specified time if the UCID does not exist in the VAWorkItemBufferDictionary. This wait time can be configured and will be the “Work Item Wait Time Seconds” configuration item. Startup The VAWebServiceWorkerPlugin will be started up when VA starts up as a windows service. The VAWebServiceWorkerPlugin is based on the SPIH plugin architecture. The VAWebService on the other hand, is started from IIS and will listen for web service requests. Configuration The following is a sample configuration including default values. [Plugin Assembly List] Virtual Agent Web Service Worker Section = Virtual Agent Web Service Worker

[Virtual Agent Web Service Worker] Assembly File Name = ASVAWebServiceWorkerPlugin.dll Plugin ID = Supported Work Item Types = 0 Accepted Agent Groups =

Web Service Worker Plug-in Architecture

52

The Supported Work Item Types configuration will have a default value of 0 which means that all work item types are supported. IVAWebService Interfaces This interface is used for the remoting channel between VAWebService and the VAWebServiceWorkerPlugin. The VAWebServiceWorkerPlugin will implement the interface and VAWebService will make method invocation through this interface via .net remoting. There are two distinct return classes. Both of which are serialized. They are VAWSReturnClass and WorkItemProp classes. WorkItemProp is made exclusively for the GetWorkItemProperties method while the VAWSReturnClass is the generalized return class for all the other web methods. Within the Avaya Voice Portal, these two classes will be setup as a Complex Variable. The third return type is a string return and is only used by the TestConnectivity method. Properties None.

Web Service Worker Plug-in Architecture

53

Web Service Methods Initialize This method allows other applications to have full control over when the work item will be closed and removed from the work item buffer within ASVAWebServiceWorkerPlugin.dll. If this method is not invoked, it cannot be guaranteed that the work item will remain in the buffer. This means that even when the media stores have closed down, the work item is still available in the buffer until CloseWorkItem is called. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID.

Returns: VAWSReturnClass Syntax: VAWSReturnClass Initialize(string UCID); CloseWorkItem This method calls the WorkItem.Close method to indicate that the work item related to the UCID/InteractionID can now close. If any Extra Data has been updated, this will also call the SetCustomerData method before closing the work item. The work item will also be removed from the work item buffers. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID. This specifies the UCID/InteractionID associated with the work item to close.

Returns: VAWSReturnClass Syntax: VAWSReturnClass CloseWorkItem(string UCID); SuspendWorkItem This method calls the WorkItem.Suspend method to indicate that the work item related to the UCID/InteractionID can now be suspended. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID. This specifies the UCID/InteractionID associated with the work item to suspend.

ƒ

invokeRef - this parameter is a free text parameter that must be unique if there is a need to tie this request to a particular event. This is currently reserved for future use and can be left blank.

ƒ

suspendDuration - this parameter takes the string format type [-]d.hh:mm:ss.ff where d = number of days, hh = hours as measured on a 24-hour clock, mm = minutes, ss = seconds and ff = fractions of seconds. The VAWebService will allow users to input the individual components of Days, Hours, Minutes and Seconds only and the fractions are set to 0. The VAWebService will convert the information to a TimeSpan format that is acceptable for this suspendDuration parameter.

ƒ

suspendReason - this parameter specified the reason for the work item being suspended.

Web Service Worker Plug-in Architecture

ƒ

preferredAgentID - this parameter specifies the agent that this work item should return to if available. If the agent is unavailable, it will revert to the standard ACD to return to the next available agent.

ƒ

preferredAgentOnly - this parameter will ensure the work item is returned to the specified preferredAgentID when set to true.

54

Returns: VAWSReturnClass Syntax: VAWSReturnClass SuspendWorkItem(string UCID, string invokeRef, System.TimeSpan suspendDuration, string suspendReason, string preferredAgentID, bool preferredAgentOnly); GetExtraData This method returns the value from the specified Key and/or Topic pair for the specified UCID/InteractionID of the work item. If no topic is defined, it will return all values for the Key defined. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID.

ƒ

NextRecordSetIndex - this parameter defines the zero based index that indicates the next data row to start retrieving values from. Enter 0 for the first GetExtraData method invocation for the UCID defined. Subsequent ones will use the previously returned NextRecordSetIndex value from the VAWSReturnClass.

ƒ

Key - this parameter specifies the Key for the Extra Data (from the Associated Data table) that is to be retrieved.

ƒ

Topic - this parameter specifies the Topic for the Extra Data (from the Associated Data table) that is to be retrieved. This parameter is optional and can be left blank.

Returns: VAWSReturnClass Syntax: VAWSReturnClass GetExtraData(string UCID, int NextRecordSetIndex, string Key, string Topic); SetExtraData This method updates the value of the specified Key and/or Topic pair found from the specified UCID/InteractionID. If the Key/Topic pair is not found, it will be created. Both the Key and Topic values are required and cannot be blank. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID.

ƒ

Key - this parameter specifies the Key of the Extra Data (from the Associated Data table) that is to be updated or added.

ƒ

Topic - this parameter specifies the Topic of the Extra Data (from the Associated Data table) to be updated.

ƒ

Value - this parameter specifies the value to be set for the specified Key/Topic pair for the said work item as provided by the UCID/InteractionID.

Returns: VAWSReturnClass Syntax: VAWSReturnClass SetExtraData(string UCID, string Key, string Topic, string Value);

Web Service Worker Plug-in Architecture

55

DeleteExtraData This method deletes the specified Key and/or Topic pair for the specified UCID/InteractionID. If no Topic is defined, all entries that matches the Key will be deleted. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID.

ƒ

Key - this parameter specifies the Key of the Extra Data (from the Associated Data table) to be deleted.

ƒ

Topic - this parameter specifies the particular Topic associated with the Key to be deleted. This parameter is optional and can be left blank.

Returns: VAWSReturnClass Syntax: VAWSReturnClass DeleteExtraData(string UCID, string Key, string Topic); GetQueueData This method will return the value from the specified Key and/or Topic pair for the specified UCID/InteractionID of the work item. If no topic is defined, it will return all values for the Key defined. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID.

ƒ

NextRecordSetIndex - this parameter defines the zero based index that indicates the next data row to start retrieving values from. Enter 0 for the first GetQueueData method invocation for the UCID defined. Subsequent ones will use the previously returned NextRecordSetIndex value from the VAWSReturnClass.

ƒ

Key - this parameter specifies the Key for the Queue Data (from the Queue Configuration table) that is to be retrieved.

ƒ

Topic - this parameter specifies the Topic for the Queue Data (from the Queue Configuration table) that is to be retrieved. This parameter is optional and can be left blank.

Returns: VAWSReturnClass Syntax: VAWSReturnClass GetQueueData(string UCID, int NextRecordSetIndex, string Key, string Topic); GetWorkItemProperties This method will return the entire work item data associated with the specified UCID/InteractionID in the WorkItemProp class. ƒ

UCID - this parameter will take either the UCID of the voice call or the InteractionID of the work item for non-voice work item types. If the UCID is not found, it will try it in the CallID/Identifier dictionary to retrieve the valid UCID/InteractionID.

Returns: WorkItemProp Syntax: WorkItemProp GetWorkItemProperties(string UCID); TestConnectivity

Web Service Worker Plug-in Architecture

56

This method allows users to verify and pinpoint where in the scheme of things are with the connection. This is useful when users intend to check that the connection from the web method invocation right through to the web method implementation in the worker plugin is working. It also allows users to verify how many work items are available in the two dictionary buffers. Both dictionary buffers must be synchronized and therefore must contain the same number. The string return will indicate exception errors in the case where a failure is encountered. If successful, the connectivity is working and will return the dictionary buffer counts. Returns: string Syntax: string TestConnectivity(); Events None. Further notes on the GetExtraData and GetQueueData methods These methods have an extra parameter that needs to be specified. This is the zero based NextRecordSetIndex. In order to retrieve all values for the Key specified for the first time, the GetExtraData/GetQueueData method will have the NextRecordSetIndex set to 0. Subsequent calls to the GetExtraData/GetQueueData can use the VAWSReturnClass.NextRecordSetIndex as the parameter for the NextRecordSetIndex. This allows daisychaining the list of values from the table providing 20 results at a time since the VAWSReturnClass contains ValueX (where X is the 1 based number up to 20) that will be populated. The VAWSReturnClass.RecordCount value indicates the total number of records. This allows the application to determine if it is an end of record. The VAWSReturnClass.NextRecordSetIndex will also be set to the last record index. This will be one less than the RecordCount (ie. If RecordCount = 43, then at the end, it will set NextRecordSetIndex = 42). Returned Values There are three sets of return values. These are the WorkItemProp class, the VAWSReturnClass and the string data type. From the previous section, the VAWSReturnClass is the general return type. The WorkItemProp and string data type are only reserved for the two methods GetWorkItemProperties and TestConnectivity respectively . The following are the parameters within the VAWSReturnClass and WorkItemProp constructor classes with default values: [Serializable] public VAWSReturnClass() { ReturnCode = -1; ReturnMessage = string.Empty; RecordCount = 0; NextRecordSetIndex = 0;

Web Service Worker Plug-in Architecture

Value1 = string.Empty; Value2 = string.Empty; Value3 = string.Empty; Value4 = string.Empty; Value5 = string.Empty; Value6 = string.Empty; Value7 = string.Empty; Value8 = string.Empty; Value9 = string.Empty; Value10 = string.Empty; Value11 = string.Empty; Value12 = string.Empty; Value13 = string.Empty; Value14 = string.Empty; Value15 = string.Empty; Value16 = string.Empty; Value17 = string.Empty; Value18 = string.Empty; Value19 = string.Empty; Value20 = string.Empty; }

[Serializable] public WorkItemProp() { ReturnCode = -1; CreatedOn = String.Empty; CustomerIdentifier = string.Empty;

57

Web Service Worker Plug-in Architecture

Identifier = string.Empty; Type = -1; ConversationID = string.Empty; InteractionID = string.Empty; MediaStoreServerInstanceID = string.Empty; ParentInteractionID = string.Empty; AgentGroupName = string.Empty; AgentID = string.Empty; AgentIdentifier = string.Empty; CallID = string.Empty; Skill = string.Empty; StationDN = string.Empty; UCID = string.Empty; VDN = string.Empty; WorkItemType = string.Empty; }

Note: There is currently only a GetWorkItemProperties method. However, this can be extended to include the SetWorkItemProperties method if required.

58

59

Index C Configuration • 26 Configuring Virtual Agent • 27 Configuring Virtual Agent for Web Service • 42 Configuring Virtual Agent Groups • 35, 42 Configuring Virtual Agent Workers • 39, 42 Configuring XML Server • 32

I Installation • 17 Installation Requirements • 17 Installing Virtual Agent • 19 Integrating Voice Portal with Virtual Agent Web Service • 49 Introduction • 6

K Knowledge Base • 6

O Outbound Worker Plug-in • 12

P Preface • 6

S Setting up customized programs for Outbound Work Items • 44

T Technical Guide • 17

U User Guide • 7 Using Outbound Worker Plug-in • 14 Using Web Service Worker Plug-in • 11

W Web Service Methods • 11, 53 Web Service Worker Plug-in • 9 Web Service Worker Plug-in Architecture • 50 What is Virtual Agent? • 8 Worker Plug-ins • 8