Introduction

This document describes the process involved in an agent login through the Finesse system with the log files. It is important to understand the message flow between the different Finesse Components, the Computer Telephony Integration (CTI) Server, and the client desktop so that you can successfully troubleshoot issues.

Prerequisites

Requirements

Cisco recommends that you have knowledge of Cisco Finesse and the Voice Operating System (VOS) CLI command prompt.

Components Used

The information in this document is based on Cisco Finesse Version 9.1(1).

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Launch the Agent Desktop

In order to launch the agent desktop, copy this URL into the web browser: http://<your finesse server>/desktop. In Finesse Version 9.1, HTTP or HTTPS is supported.

Finesse uses Tomcat as the web server. When you launch your web browser, the request is made to Finesse to present the agent desktop to you. The Cisco Tomcat localhose_access_log command shows the request to load the agent desktop.

Agent Login Credentials

Now that the agent desktop has been presented, you enter your login credentials. Before Finesse can send the login request to the CTI Server, the client needs to establish a Bidirectional-streams Over Synchronous HTTP (BOSH) Connection. In order to establish the BOSH Connection, the client first requests System Information from the Finesse Server.

SystemInfo

The client's desktop made a Representational State Transfer (REST) Application Programming Interface (API) request to this URL: /finesse/api/SystemInfo. Take note of the nocache=. This unique ID is used in order to trace this request through the system. Returned with status=200 indicates that the request was successfully received.

If you do not have clientlogs but you need to trace the request, you can search the Tomcat localhost_access_log in order to determine when the REST API request was made and to locate the unique identifier.

API_REQUEST

Tomcat sends this API request to the Finesse REST API Web Application Repository (WAR). In order to find the Finesse REST API logs, search the Finesse webservices log either by timestamp or the nocache ID in order to locate the API_REQUEST. This log shows the REQUEST_START, the REQUEST_URL, the REQUEST_END, and the elapsed_time the system took to complete the request.

Establish the BOSH Connection

The SystemInfo shows the Primary and Secondary Finesse servers, the status of Finesse as IN_SERVICE, the xmppDomain, and the xmppPubSubDomain. The client now has enough information in order to establish a BOSH connection.

The client is successfully subscribed to the Finesse Object (node) /finesse/api/User/2001 once the BOSH connection is established.

When the client's BOSH connection is established, the webservices log recieves a PRESENCE_NOTIFICATION message from the client. This PRESENCE_TYPE only indicates that the client is available to recieve XMPP Events and has nothing to do with the agent availability in Unified Contact Center Enterprise (UCCE). Remember that the agent is not signed in yet.

Note: You only see the PRESENCE_TYPE messages when a client establishes a BOSH connection or when a client's BOSH connection is disconnected. When the client's BOSH connection is disconnected, the PRESENCE_TYPE displays as unavailable.

Agent Sign-in

Now that the client has established the BOSH connection, the sign-in process begins. The client makes another REST API request in order to obtain current user information. In order to make this request, navigate to this URL: /finesse/api/User/2001 and enter method=GET.

Because this is a different API Request, the nocache ID is different. So, in order to track this request, you need to use this new ID.

This XMPP Event, which is agent 2001 in this example, is sent to all subscription clients. The JavaScript at the client recieves the XMPP Event, and the Event is sent to the Gadget within the client. Here are the clientlogs that show the content of the response:

Perform Login

Now the client is ready to perform login. Notice the RequestID. The RequestID is sent in the body of the request. You use this RequestID in order to follow the login request to the REST API > CTI > REST API > Notification Service > Response back to the client. This request is a PUT, which means that the client is requesting an UPDATE or a change to its current state.

Now that Finesse received the AgentStateEvent from the CTI server, the event needs to be Published to the Notification Service so that the client receives the UPDATE. The only way for the agent to know that his/her state has changed is by receiving this XMPP Event. Finesse converts the AgentStateEvent to XMPP and sends the XMPP to the Notification Service. Notice that the Event is a PUT, and the RequestID is in the Payload.