Avaya Aura® Contact Center Sample Application Guide:

Agent Provisioning Web Services

Issue 1.0 - September 2011



About this sample application

This sample application is intended to demonstrate how to invoke web services on Avaya Aura® Contact Center Server (AACC) in order to change call center agent profiles.

In a contact center agents log in to their phones so they are available to take calls. To login, an agent enters an ID either through a soft phone application or physically using the telephone itself. Once this agent ID is entered, the contact center will then associate an agent profile with this particular phone set. This application is designed to be used to modify this agent profile.

AACC is comprised of several different servers, each of which has one or more web services. This sample application uses web services on the Contact Center Manager Administration (CCMA) server. CCMA may or may not be co-resident with other AACC components on the same server. There are many different ways to invoke web services, but this document will describe the mechanisms used in the sample application to invoke web services which reside on the CCMA server to manipulate an agent’s profile.


Table of contents

  1. Introduction
    1. Application features
    2. CCMA concepts
  2. Application implementation
    1. Equipment and software used
    2. Architecture
    3. Web services
    4. Sample application file listing
  3. Appendix
    1. Glossary

Introduction

Application features

The application provides a Windows GUI which can be used to provision contact center agent capabilities.

Typically this function would be performed by a contact center administrator to enable certain calls to be delivered to certain agents.

The application runs on a client computer to allow an administrator to configure particular agent’s capabilities.

CCMA concepts

CCMA is the Contact Center Manager Administration Server. This server is part of a suite of Contact Center Servers which make up the Avaya Aura Contact Center (AACC) product.

Typically calls to the contact center would arrive from the PSTN, and the call is routed to contact center agents. AACC implements the notion of a ‘skillset’ whereby an agent is assigned particular skillsets and then calls are queued to specific skillsets depending on certain criteria (such as the number dialed by the caller, what information if any has been entered – perhaps through menu options).

Each skillet has a media type associated with it. For example, if the contact center is configured to allow agents to process emails, then there will be at least 1 skillset with an email media type attribute.

An agent has a priority for each of the skillsets which are assigned to that agent. This priority is used by the contact center to route calls to different agents, factoring in which agents are not ready, on calls, etc.

A priority of ‘unassigned’ means the agent is not assigned to that skillset.

Agents are allocated to supervisors.

To test the application after skillset assignments have been changed, a user should make test calls to specific skillsets.


Application implementation

Equipment and software used

  • Telephony switch: Avaya Communication Server 1000 with release 7.5 software
  • Contact Center software: Avaya Aura® Contact Center release 6.2 with Service pack 4
  • Application Client computer: Windows 7 with Service pack 1
  • The application was written in C# (Visual Studio 2008) running .NET 3.0.

Note the application will run against either Avaya Communication Server 1000 release 7.5 or Avaya Aura® release 6.1 – the telephony switch implementation is masked by Avaya Aura Contact Center software.

Architecture

On starting the client application, the user is prompted to enter credentials to authenticate with the contact center. Once logged on, a list of agents is presented, and the user can then select a specific agent and change the profile for that specific agent using the application.

An agent may not be assigned a skillset for which he/she does not have the media (contact) type assigned. The changes made by the application are dynamic, so once the changes are committed, they become live – there is no need for a reboot or service restart.

The agent profiles are stored internally in a database on the Contact Center Manager Server (CCMS) element of AACC. The CCMA server web services are used as an interface to internal CCMA components which manipulate this CCMS database.

The application consists of 3 modal dialog windows.

The first window provides credentials to authenticate and login to the CCMA server.

The second window displays a list of agents for a specific CCMA server, and allows one to be selected.

The third window displays general agent information (read only) and also shows all skillsets and contact types from the CCMA server. The window allows agent skillset assignment to be changed. It also provides for agent contact type assignments to be changed.

Web services

Web services are delivered as part of the base product.

Each web service contains one or more functions.

The server publishes a description (WSDL) of the web service capabilities and the client then uses this description to generate ‘proxy’ code to implement a mechanism to invoke this server functionality.

Consequently, web services are not language specific. Also, there is no need to provide client files to be used at compile time because these are generated as proxy classes. In this sample application, Visual Studio 2008 is used to generate the proxy code in C# which is then used to invoke the web services.

The web services are invoked as XML data over HTTP.

The application uses 2 web services on AACC – CCMA authentication and CCMA SOAP web services.

The authentication web service is located on the CCMA server - http://<CCMAserver>/WebServices/Authentication/Service.asmx.

The authentication web service is implemented as a web reference in Visual Studio in the sample application. Authentication web service functions used are login and logout.

The SOAP web service is located on the CCMA server - http://<CCMAserver>/WebServices/OpenInterfaces/soap.svc.

The SOAP web service is implemented as a service reference in Visual Studio in the sample application. SOAP web service functions used – getAgentsList, getSkillsetList, getServerList, getContactTypes, getUserDetails and UpdateUser.

Authentication

It is necessary to validate the application with the server before being able to manipulate any data.

Authentication is invoked in the sample application using the AuthenticateUser() function.

In calling the authentication web service, it is necessary to supply the CCMA credentials for the CCMA server.

The authentication web service is used to obtain a token which must be used in all subsequent web service calls.

To invoke any subsequent SOAP web service calls, the token is imbedded in the NTSSOCookie HTTP header.

In the sample application, the connection to the SOAP web service and setting of the cookie is done using the .NET framework System.ServiceModel reference in C#.

The SOAP connection is created using BasicHttpBinding, EndpointAddress and ChannelFactory.

Once established, the cookie returned by the AuthenticateUser() function is added.

The Cookie is added using HttpRequestMessageProperty.

List agents

The list of agents is retrieved using the getAgentsList web service in the Agent::GetAgentList() function.

Reading a particular agent’s data

The function AgentInfo::LoadAgentDetails() populates a specific agent’s data and populates the dialog window.

A complete skillset list is retrieved from CCMA (web service getSkillsetList).

A complete contact type list is retrieved from CCMA (web service getContactTypes).

The agent’s data is retrieved from CCMA (web service getUserDetails).

The data retrieved using getUserDetails will include assignedContactsandSkillsets array. This is used to populate the Contact and Skillset assignment.

Setting a particular agent’s data

The function AgentInfo::btnCommitClick() reads the required data from the dialog window and updates a specific agent’s data.

Once the skillsetArray for a specific agent has been populated from the dialog, the updateUser web service is invoked to update the CCMA server.

Sample application file listing

The files included in the sample application are shown below (both service references and web references) each contain only 1 file – \CCMALogin\Reference.cs and \OICCMA\Reference.cs.


Appendix

Glossary

PSTN – public switched telephone network
AACC – Avaya Aura Contact Center
CCMA – Contact Center Manager Administration
CCMS - Contact Center Manager Server
SOAP – Simple Object Access Protocol (SOA compliant)
WSDL – Web Services Description Language




Please e-mail any questions or comments pertaining to this sample application guide, along with the full title, directly to the Avaya DevConnect Program at devconnect@avaya.com.





About Avaya

Avaya is a global leader in enterprise communications systems. The company provides unified communications, contact centers, and related services directly and through its channel partners to leading businesses and organizations around the world. Enterprises of all sizes depend on Avaya for state-of-the-art communications that improve efficiency, collaboration, customer service and competitiveness. For more information please visit www.avaya.com.