Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Table of Contents

Abbreviations

Short Name

Full Name

GC

Generic Connector

GC-Client

Generic Connector Client Application

AMQ

ActiveMQ

Finesse

Cisco Finesse

Introduction

Purpose of this document

The purpose of this document is to assist Generic Connector client applications developers to understand the flow of messages between GC and GC-Client.

Before You Start

You’re expected to have a good understanding of JMS and broker based communication using ActiveMQ. You should know what are Topics and Queues, what is the difference between them and how they can be used in different contexts. While you are exploring ActiveMQ, many questions arise in your mind and those are answered here.

Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.

Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License

First of all, download, install and run ActiveMQ Broker. You can find some samples on ActiveMQ site. A basic Hello World program can be found here. You can find more complex examples here. All of these examples are implemented in java. If you are writing client in language other than Java, you can find examples in respective technology on ActiveMQ site.

ActiveMQ supports different types of topologies for communication. GC is using Client-Server topology with tcp protocol for communication. You need to develop at least a simple application that communicates on given specifications.

Generic Connector Communication Architecture
Image Modified

<Make diagram here showing GC-Client, GC, AMQ, Finesse>

  • Describe a little bit about broker based communication using AMQ 

  • On which protocol and ports GC communicates with AMQ

  • Client is expected to subscribe on AMQ <Topic>Destination

  • GC listens on AMQ <Queue>Destination

Message broker is an intermediary program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message brokers are elements in telecommunication or computer networks where software applications communicate by exchanging formally-defined messages. Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns.

GC uses ActiveMQ as a message broker for communication. By default, GC communicates with AMQ on port 61616 (openwire) using tcp protocol. You can change port in AMQ configurations. GC listen on Queue “Connector1”, all the commands from client should be published to Queue “Connector1” and GC replies on Topic, specified by client in Hello command. 

For more about GC deployment models, see Generic Connector Installation Guide.

What comes with the package?

GC installer comes with a preconfigured AMQ, GC and EF Service Manager. EF Service Manager is a mini tool to manage AMQ and GC services.

Environment and Tools

GC requires Java Runtime 8 to run. Download and install Java Runtime Environment 8 from here.

EF Service Manager requires .NET framework 4.5.2 that can be obtained from here.

In order to change the configurations of GC, you need to install WinRAR, which can be downloaded from here

For more about setting up GC, see Generic Connector Installation Guide.

Message Pattern

GC communicates via AMQ that follows simple open text JMS messaging over OpenWire. A message could either be a request/command from the GC-Client or it could be an event/response sent by GC. In the rest of the document, the term “Command” is used to mention the message sent by the GC-client and the term “Event” is used to mention the message sent by GC.

Command Pattern

In a Command, JMS-Type contains the command and JMS-Body contains command arguments.

Commands are grouped into categories for the sake of clean and easier to interpret documentation.

Command Pattern

JMS-Type

<Command>#{<Agent_ID> | <Client_Destination>}

JMS-Body

[ NULL | {Argument-1, Argument-2, …, Argument-N} ]

Where

  •  <Command> is any of the supported commands. See All Commands

  • <Agent_ID> is the agent’s login ID

  • <Client_Destination> is the ActiveMQ topic which GC-client is subscribed on. On this AMQ Topic, GC will send all events to GC-Client

  • In the JMS-Body, NULL represents an empty string and NOT a “NULL” string. If no command argument is needed, set the value to an empty string.

  • Multiple Command arguments are mentioned in a comma-separated string.

Event Pattern

An Event is a message sent by GC in response to any command or it can be an async message representing a real-time System or Finesse event. 

Event Pattern

JMS-Type

[ NULL ]

JMS-Body

[ <Event_For>#<Event_Type>#[ {<Argument-1>}{#<Argument-2>}…{#<Argument-N>} ]

<Event_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

  • DESTINATION

  • System

<Event_Type>

The actual event. See All Events

Where

  • JMS-Type carries nothing (An empty String)

  • JMS-Body contains the complete event

  • <Argument-N> represents event arguments. Event Arguments are separated by #

Error Pattern

 If any command from client encountered by some error, GC will event contains error details.

Error Event Pattern

JMS-Type

NULL

JMS-Body

<Error_For>#Error#<Error Details>

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

<Error Details>

Details about error. See All Errors

Client Communication Use Cases

There may be 2 type of GC-Clients:

  1. Desktop client - running one instance per agent like MS-CRM USD Client

  2. Server client - moderating and communicating on behalf of multiple agents per server as in the case of Siebel SCAPI Driver, SAP IC, etc.

Establish Connection

The client application must ensure proper establishment of connection with GC before invoking any agent operations. 

To establish connection with GC via AMQ, 

  1. GC-Client should create an AMQ topic (Client Destination) where this client will listen on.

    1. For a Desktop client, this should be unique for every client instance.

    2. For a Server client, this should be unique for every server instance.

  2. Create an AMQ producer with Destination <Queue> name Connector1 to send commands.

  3. Send Hello Command

  4. If GC-Client receives System#IN_SERVICE, the GC is assumed to be connected and ready to listen on.

  5. GC-Client should then send Heartbeats at defined intervals.

Note: If GC-Client doesn’t receive System#IN_SERVICE after CONNECT_TIMEOUT (Max. 3 seconds suggested) period, it should periodically keep sending the Hello command.

...

Agent State Transition

Agents can change their own states on finesse. If the request to change an agent's state is successful, the response is sent with updated state. Changing the state may cause CF_INVALID_OBJECT_STATE error. The state is not changed according to the transition diagram/table. 

The following figure illustrates the supported state transitions by Unified CCE agents.
Image Modified

The following table describes supported agent state transitions for Unified CCE.

From

To

Description

*

UNKNOWN

If the agent state is unknown, the state is UNKNOWN. This scenario is unlikely.

LOGOUT

LOGIN

To sign in to Finesse, the agent sets the state to LOGIN. LOGIN is a transient state and transitions to NOT_READY.

LOGIN

NOT_READY

After a successful LOGIN, the agent transitions to NOT_READY.

NOT_READY

LOGOUT

To sign out of Finesse, the agent sets the state to LOGOUT. An agent can set the state to LOGOUT only if that agent is in NOT_READY state.

NOT_READY

NOT_READY

To change their Not Ready reason code, agents can set a NOT_READY state from NOT_READY.

NOT_READY

READY

To become available for incoming or Outbound Option calls, agents set their state to READY.

NOT_READY

TALKING

An agent who places a call while in NOT_READY state transitions to TALKING.

READY

RESERVED

An incoming call arrives at an agent.

READY

RESERVED _OUTBOUND

An outbound agent becomes reserved to handle an Outbound Option Progressive or Predictive call.

READY

RESERVED_OUTBOUND _PREVIEW

An outbound agent becomes reserved to handle an Outbound Option Preview call.

READY

NOT_READY

Agents can change to NOT_READY to make themselves unavailable for incoming calls.

RESERVED

READY

An agent can become RESERVED but never take a call.

RESERVED

TALKING

When an agent answers an incoming call, the agent transitions to TALKING.

RESERVED _OUTBOUND

READY

An agent can change to READY state to leave RESERVED_OUTBOUND. If the system deems it necessary, that agent may transition back to RESERVED_OUTBOUND.

RESERVED _OUTBOUND

NOT_READY

An agent can change to NOT_READY state to leave RESERVED_OUTBOUND.

RESERVED _OUTBOUND

TALKING

An agent transitions to TALKING when an Outbound Option call arrives at the agent.

RESERVED_OUTBOUND _PREVIEW

READY

An agent transitions to READY if the agent was in READY state before being reserved in an Outbound Option Preview campaign.

RESERVED_OUTBOUND _PREVIEW

NOT_READY

An agent transitions to NOT_READY if that agent changes state to NOT_READY while reserved in an Outbound Option Preview campaign. This state change is a pending state change. The agent does not transition to NOT_READY until the call is complete or the Outbound Option Preview reservation is closed or rejected.

RESERVED_OUTBOUND _PREVIEW

TALKING

An agent transitions to TALKING when an Outbound Option call arrives at the agent.

TALKING

READY

If an agent is on a call that is dropped, the agent transitions to READY (if the agent was in READY state before the call).

TALKING

NOT_READY

If an agent is on a call that is dropped, the agent transitions to NOT_READY if that agent was in NOT_READY state before the call.

TALKING

WORK

If wrap-up is enabled, and the agent chooses NOT_READY while on a call, that agent enters WORK state after the call is dropped.

TALKING

WORK_READY

If wrap-up is enabled, an agent enters WORK_READY state after a call is dropped.

TALKING

HOLD

An agent puts a call on hold and transitions to HOLD state.

HOLD

READY

If an agent is connected to a held call and the call is dropped, the agent transitions to READY state (if the agent was in READY state before the call).

HOLD

NOT_READY

If an agent is connected to a held call and the call is dropped, the agent transitions to NOT_READY state (if the agent was in NOT_READY state before the call).

HOLD

WORK

If wrap-up is enabled and an agent is connected to a held call that is dropped, the agent transitions to WORK state if the agent chose to go NOT_READY during the call.

HOLD

WORK_READY

If wrap-up is enabled and an agent is connected to a held call that is dropped, the agent transitions to WORK_READY state.

HOLD

TALKING

When an agent retrieves a held call, the agent transitions to TALKING state.

WORK

READY

To leave WORK state, agents can set their state to READY.

WORK

NOT_READY

To leave WORK state, agents can set their state to NOT_READY. Agents automatically transition to NOT_READY after the wrap-up timer expires.

WORK_READY

READY

To leave WORK_READY state, agents can set their state to READY. Agents automatically transition to READY after the wrap-up timer expires.

WORK_READY

NOT_READY

To leave WORK_READY state, agents can set their state to NOT_READY.

All Commands

Following is the list of all possible commands supported by GC. Each of the commands is explained with parameters supplied, events expected against the command and possible error that can occur for that particular command.

Note: While sending a command message, set the value for the property Time To Live for the message to a certain time(milliseconds), after the specified time that message/command will automatically discarded by AMQ. It needs to do so that the old command should not be processed. 

GC supports synchronous requests. To achieve this, you need to send JMSCorrelationID along with the command, GC will send the same JMSCorrelationID with the event that corresponds to that particular command. 

Set ReplyTo attribute of command message to the topic on which the client is subscribed to receive events.

Hello

Hello is the first command sent from Client to GC for handshake purpose. If GC replies with some event means that your connection with GC has been established and the client is able to send further commands to GC. If the client does not receive any response from GC, either GC is dead or command is not delivered to GC. Before sending a Hello command you should know on which topic the client will listen from GC. You need to create that topic on ActiveMQ explicitly and subscribe to it. Specify that particular topic in hello command as <Client_Destination> parameter. If client receives System#IN_SERVICE, you can supply further commands to GC (other than hello command). Normally, Connect and Login commands are sent after a successful handshake to GC in order to start your session (Make and receive calls). If client receives System#OUT_OF_SERVICE or no response from GC, keep sending hello command. 

Command: Hello

JMS-Type

Hello#<Client_Destination>

JMS-Body


<Client_Destination>

A unique string (ActiveMQ Topic name) on which GC will send events to client. Client should subscribe on this Topic in order to receive the events.

Expected Event (s)

There can be two possible events:

System#IN_SERVICE: GC is connected to finesse and can process command. You can send further commands to GC.

System#OUT_OF_SERVICE: GC is not connected to finesse. Your commands will not be processed by GC. You are expected to send Hello command continuously until you didn’t receive System#IN_SERVICE.

Connect

Connect is the first formal command send to GC after receiving System#IN_SERVICE in response to Hello command. This command is used to subscribe the user for finesse notifications. If invalid credentials are provided, GC will reply with subscription errors. In the case of a successful subscription, GC will not reply with anything. The login command should be sent next to the Connect command without waiting for any response for the Connect command.

Command: Connect

JMS-Type

Connect#<agent_login_Id>

JMS-Body

<client_destination>,<agent_password>,<SSO> (We will pass SSO as a third parameter if the user is SSO Enabled, otherwise we will send two parameters as we are sending previously )

<agent_login_Id>

Agent login Id to log on to finesse.

<agent_password>

Agent password to log on to finesse.

<Client_Destination>

A unique string (ActiveMQ Topic name) on which GC will send events to client. Should be same as sent with Hello command.

<SSO>

will pass SSO if user is SSO Enabled

Expected Event (s)


Possible Error (s)

Two error are possible:

  1. SUBSCRIPTION_FAILED

  2. UNABLE_TO_SUBSCRIBE_TO_FINESSE

  3. SESSION_INVALIDATED

Login

The Login command is used to actually login to finesse. Remember that Connect command only subscribes the user for finesse notifications. Still the user is not logged in to the finesse to make and receive calls. Login command parameters are agent login id, password and extension that allows the agent to login to finesse desktop. In case of successful login, GC raises Agent Info, AgentState and Dialog state events. Now the agent will be able to make and receive calls on the client application.  

Command: Login

JMS-Type

Login#<agent_login_Id>

JMS-Body

<agent_password>,<agent_extension>

<agent_login_Id>

Agent login Id to log on to finesse.

<agent_password>

Agent password to log on to finesse.

<agent_extension>

Agent extension used to make and receive calls from finesse

Expected Event (s)

Three events will be sent:

  1. AgentInfo

  2. AgentState

  3. DialogStatus

Possible Error (s)

Following errors are possible:

  1. MISSING_EXTENSION

  2. WRONG_EXTENSION

  3. LICENSES_EXCEEDED

  4. MISSING_PASSWORD

  5. USER_NOT_FOUND

  6. GENERAL_ERROR

  7. CF_GENERIC_UNSPECIFIED

  8. CF_INVALID_LOGON_DEVICE_SPECIFIED

  9. CF_RESOURCE_BUSY

Mobile Agent Login

The Login command is used to actually login to finesse. Remember that Connect command only subscribes the user for finesse notifications. Still the user is not logged in to the finesse to make and receive calls. Login command parameters are agent login id, password and extension that allows the agent to login to finesse desktop. In case of successful login, GC raises Agent Info, AgentState and Dialog state events. Now the agent will be able to make and receive calls on the client application.  

Command: Mobile Agent Login

JMS-Type

MOBILEAGENTLOGIN#<agent_login_Id>

JMS-Body

<agent_password>,<agent_extension>,

<dialNumber>

<dialNumber>,<connection_mode>

<agent_login_Id>

Agent login Id to log on to finesse.

<agent_password>

Agent password to log on to finesse.

<agent_extension>

Agent extension used to make and receive calls from finesse

<dialNumber>

The phone number that the system calls to connect with the mobile agent

<connection_mode>

The connection mode for the call (connection mode to “true” for “call by call”, “false” for “nailed connection”.)

Expected Event (s)

Three events will be sent:

  1. AgentInfo

  2. AgentState

  3. DialogStatus


Possible Error (s)

Following errors are possible:

  1. MISSING_EXTENSION

  2. WRONG_EXTENSION

  3. LICENSES_EXCEEDED

  4. MISSING_PASSWORD

  5. USER_NOT_FOUND

  6. GENERAL_ERROR

  7. CF_GENERIC_UNSPECIFIED

  8. CF_INVALID_LOGON_DEVICE_SPECIFIED

  9. CF_RESOURCE_BUSY


Heartbeats

Heartbeats keep clients up to date about connectivity to GC. Client sends Heartbeat command and GC replies with a system status event. Purpose of Hello and Beat looks similar. But, hello establishes the connection between GC and client for the first time and Beat ensures the connectivity periodically after the connection is established successfully. Response of Hello and Beat is the same. 

Command: Beat

JMS-Type

Beat#<Client_Destination>

JMS-Body


<Client_Destination>

ActiveMQ Topic name on which GC will reply to the client. The client should subscribe on this Topic in order to receive the events.

Expected Event (s)

There can be three possible events:

System#IN_SERVICE: GC is connected to finesse and can process command. You can send further commands to GC.

System#OUT_OF_SERVICE: GC is not connected to finesse. Your commands will not be processed by GC. You are expected to send Hello command continuously until you didn’t receive System#IN_SERVICE.

DESTINATION RECONNECT: Indicates that the <Client_Destination> is not present in GC. Need to send Connect and Login for all the agents available in the client's agent list.

Logout (Supervisor Command)

A Supervisor can change the agent's state to logout by sending Logout. Before sending the logout command, the agent must be in a state in which it can change its state to logout. See agent state transition.

Command: Logout

JMS-Type

Logout#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent need to be logout.

Expected Event (s)

  1. AgentState (State#LOGOUT)

Possible Error (s)

  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

LogoutWithReason

Once an agent is logged into the system, if he wants to leave the system, it should logout explicitly. Before sending the logout command, the agent must be in a state in which it can change its state to logout. See agent state transition. Client can get the configured reason on finesse by sending Agent Logout Reason Codes

Command: logoutwithreason

JMS-Type

logoutwithreason#<agent_login_Id>

JMS-Body

<reason_code>

<agent_login_Id>

Login id of the agent needs to be logged out.

<reason_code>

Logout reason code. Must be defined in Finesse.

Expected Event (s)

  1. AgentState (State#LOGOUT)

Possible Error (s)


  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

  4. MISSING_REASON_CODE

GetState

GetState command sends the user's current state on the finesse. 

Command: GetState

JMS-Type

GetState#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

 AgentState

Possible Error (s)


MakeNotReady (Supervisor Command)

A Supervisor can change the agent's state to Not Ready by sending MakeNotReady. Before sending this command, the agent must be in a state in which it can change its state to NotReady. See agent state transition

Command: MakeNotReady

JMS-Type

MakeNotReady#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

AgentState (State#NOT_READY)

Possible Error (s)


  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY


MakeNotReadyWithReason

An agent can change its state to Not Ready by sending MakeNotReady. Many times changing state to NotReady requires reason code. Reason codes can be configured in Finesse. The reason code must be sent along this request in the JMS body. Before sending this command, the agent must be in a state in which it can change its state to Not Ready. See agent state transition The client can get the configured reason on finesse by sending Agent Not Ready Reason Codes.

Command: MakeNotReadyWithReason

JMS-Type

MakeNotReadyWithReason#<agent_login_Id>

JMS-Body

<reason_code>

<agent_login_Id>

Login id of the agent needs to be logged out.

<reason_code>

Not Ready reason code. Must be defined in Finesse.

Expected Event (s)

AgentState (State#NOT_READY)

Possible Error (s)

  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

  4. MISSING_REASON_CODE

MakeReady

An agent can change its state to Ready by sending MakeReady. Before sending this command, the agent must be in a state in which it can change its state to Ready. See agent state transition.

Command: MakeReady

JMS-Type

MakeReady#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

AgentState (State#READY)

Possible Error (s)

  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

Make WorkReady

If wrap-up is enabled, an agent enters WORK_READY state after a call is dropped. To leave WORK_READY state, agents can set their state to READY. Agents automatically transition to READY after the wrap-up timer expires. Before sending this command, the agent must be in a state in which it can change its state to Ready. See agent state transition.

Command: MakeWorkReady

JMS-Type

MakeWorkReady#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

AgentState (State#WORK_READY)

Possible Error (s)

  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

Make WorkNotReady

If wrap-up is enabled, and the agent chooses NOT_READY while on a call, that agent enters WORK state after the call is dropped. To leave WORK state, agents can set their state to NOT_READY. Agents automatically transition to NOT_READY after the wrap-up timer expires. Before sending this command, the agent must be in a state in which it can change its state to Ready. See agent state transition.

Command: MakeWorkNotReady

JMS-Type

MakeReady#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

AgentState (State#WORK)

Possible Error (s)

  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

Make a Call

This command allows a user to make a call. To make a call, a new Dialog object is created that specifies the <Extension_Number> (the destination target). The new Dialog object is posted to the Dialog collection for that user. 

Command: MakeCall

JMS-Type

MakeCall#<agent_login_Id>

JMS-Body

<Extension_Number>

<agent_login_Id>

Login id of the agent.

<Extension_Number>

Extension of the other agent.

Expected Event (s)

The following events will arrive:

  1. AgentState (State#TALKING)

  2. InboundCall (INITIATING)

  3. InboundCall (INITIATED)

  4. InboundCall (ACTIVE)

Possible Error (s)

  1. PLEASE_RETRY

  2. CF_INVALID_OBJECT_STATE

  3. CF_RESOURCE_BUSY

  4. MISSING_NUMBER

  5. CF_GENERIC_UNSPECIFIED

Answer a Call

This command allows a user to answer a call. To answer a call, a new Dialog object is created that specifies the <Dialog_ID> received in NEW INBOUND Call event . 

Command: AnswerCall

JMS-Type

AnswerCall# <agent_login_Id>

JMS-Body

<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call

Expected Event (s)

The following events will arrive in a sequence:

  1. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Release a Call

This command allows a user to drop a call. To drop a call, a new Dialog object is created that specifies the <Dialog_ID> received in  INBOUND CALL ACTIVE event. 

Command: ReleaseCall

JMS-Type

ReleaseCall# <agent_login_Id>

JMS-Body

<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call

Expected Event (s)

The following events will arrive in a sequence:

  1. InboundCall (DROP)

  2. AgentState

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED


Hold a Call (UCCE Only)

This command allows a user to hold a call. To hold a call, a new Dialog object is created that specifies the <Dialog_ID> received in  INBOUND CALL ACTIVE event. 

Command: HoldCall

JMS-Type

HoldCall# <agent_login_Id>

JMS-Body

<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call

Expected Event (s)

The following events will arrive:

  1. InboundCall (HOLD)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Note: This Command is only supported for UCCE. UCCX does not send the hold event in response to this command.

Retrieve a Call

This command allows a user to unhold a call. To unhold a call, a new Dialog object is created that specifies the <Dialog_ID> received in  INBOUND CALL ACTIVE event. 

Command: ReterieveCall

JMS-Type

RetrieveCall# <agent_login_Id>

JMS-Body

<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call

Expected Event (s)

The following events will arrive:

  1. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Blind Transfer 

This command allows a user to transfer the call blindly without waiting for the other agent to receive the call.

Command: BlindTransfer

JMS-Type

Transfer_sst# <agent_login_Id>

JMS-Body

<Other_Party_Extension_Number>,<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call

<Other_Party_Extension_Number>

Extension of the other agent.

Expected Event (s)

The following events will arrive:

    1. AgentState (HOLD)

    2. AgentState (TALKING)

    3. InboundCall (ACTIVE)

    4. ConsultCall (INITIATING)

    5. ConsultCall (INITIATED)

    6. ConsultCall (ALERTING)    

    7. ConsultCall (DROP)   

    8. InboundCall (ACTIVE)

    9. AgentState (TALKING)

    10. InboundCall (DROP)


Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Consult Call 

This command allows a user to initiate a consult call with other agent. Once the call is accepted by the other agent, the user can either transfer this call to the other agent or can initiate the conference call between all parties.

Command: CosultCall

JMS-Type

ConsultCall#<agent_login_Id>

JMS-Body

<Other_Party_Extension_Number>,<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call

<Other_Party_Extension_Number>

Extension of the other agent.

Expected Event (s)

The following events will arrive:

  1. ConsultCall (INITIATING)

  2. ConsultCall (INITIATED)

  3. ConsultCall (ALERTING)    

  4. ConsultCall (ACTIVE)   

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Consult Transfer 

This command allows a user to transfer the customer call to the consulted agent. This will drop the consult call between agents and transfer the customer call to the other agent.

Command: TransferCall

JMS-Type

TransferCall#<agent_login_Id>

JMS-Body

<Agent_Extension>,<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call (Main Call Dialog Id)

<Agent_Extension>

Extension of the agent. (Extension of the 2nd agent)

Expected Event (s)

The following events will arrive:

  1. InboundCall (DROP)

  2. ConsultCall (DROP)  

  3. InboundCall (ACTIVE)

  4. AgentState

  5. InboundCall (DROP)

  6. AgentState

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Conference Call 

This command allows a user to initiate the conference call with the customer and the consulted agent. 

Command: ConferenceCall

JMS-Type

Conferencecall#<agent_login_Id>

JMS-Body

<Agent_Extension>,<Dialog_ID>

<agent_login_Id>

Login id of the agent.

<Dialog_ID>

ID of new inbound call  (Main Call Dialog Id)

<Agent_Extension>

Extension of the agent. (Extension of the 2nd agent)

Expected Event (s)

The following events will arrive:

 

InboundCall (ACTIVE)

ConsultCall (DROP)  

IInboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

GetDialogState

While a call is active, the client can get the state of that particular dialog by sending GetDialogState command. Dialog state event will update the current state of the dialog.

Command: GetDialogState

JMS-Type

GetDialogState#<agent_login_Id> 

JMS-Body

<Dialog_Id>

<agent_login_Id>

Login id of the agent.

<Dialog_Id>

Id of Dialog whose state update is needed.

Expected Event (s)

DialogState

Possible Error (s)


Agent Logout Reason Codes

Logout reason codes represent reasons that agents can select when they change their state to logout.

Command: reasoncodelogout

JMS-Type

reasoncodelogout#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

ReasonCode

Possible Error (s)

CF_RESOURCE_BUSY

Agent Not Ready Reason Codes

Not Ready reason codes represent reasons that agents can select when they change their state to Not Ready.

Command: reasoncodenotready

JMS-Type

reasoncodenotready#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

ReasonCode

Possible Error (s)

CF_RESOURCE_BUSY

Agent Wrap-up Reasons

The Wrap Up Reasons represents a reason that an agent can apply to a call during call wrap-up.

Command: wrapupreasoncode

JMS-Type

wrapupreasoncode#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

ReasonCode

Possible Error (s)

CF_RESOURCE_BUSY

Update Dialog Wrap-up Reason

The Wrap Up Reason code represents a reason that an agent can apply to a call during call wrap-up.

Command: wrapup

JMS-Type

wrapup#<agent_login_Id>

JMS-Body

<Wrapup_Reason>,<dialog_id>

<agent_login_Id>

Login id of the agent.

<dialog_id>

Id of dialog for which Wrap-Up code needs to be updated.

<Wrapup_Reason>

The reason to be updated for the dialog

Expected Event (s)


Possible Error (s)

MISSING_DIALOG_ID

E_CTI_INVALID_CALL_ID


Update Call Variable Data


This command  allows a user to set or change call variables (including named variables or ECC variables) on a dialog.

Command: Update Call Variable

JMS-Type

update_call_variable#<agent_login_Id>

JMS-Body

<dialog_id>,<variable_name>=<variable_value>| <variable_name>=<variable_value>....

<agent_login_Id>

Login id of the agent.

<dialog_id>

Id of dialog for which variable needs to be updated.

<variable_name>

The name of the variable to be updated.  See Appendix 1 for variable names details

<variable_value>

This value of the variable.

Expected Event (s)

INBOUND CALL (ACTIVE)

Possible Error (s)

INVALID_CALL_DATA


Get Agents List


This command allows an admin user to get the list of all logged-in users.

Command: Get All Agents

JMS-Type

getallagents##<agent_login_Id>

JMS-Body


<agent_login_Id>

Login id of the agent.

Expected Event (s)

Users

Possible Error (s)

CF_GENERIC_UNSPECIFIED


title
Note

Note

We have an API that returns all the PhoneBooks and contacts related to an Agent as well as Global Type but we are not using it right now as we decided first we will implement the flow of  commands as mentioned below

API Url
https://developer.cisco.com/docs/finesse/#!user%e2%80%94get-list-of-phone-books/userget-list-of-phone-books

Get Team and Global Phonebooks

This command will get the global and team phonebooks for the agent

Command: Get_Phonebooks

JMS-Type

GetPhonebooks#<agent

GetPhonebooks#<agent_login_id>

JMS-Body


<agent_login_Id>

Login ID of the agent.

Expected Event (s)

Phonebooks

Possible Error (s)


Get PhoneBook Contacts

This command will get the contacts of a specific phonebook

Command: Get_Phonebook_Contacts

JMS-Type

GetPhonebookContacts#<agent

GetPhonebookContacts#<agent_login_id>

JMS-Body

<PhonebookID>

<agent_login_Id>

Login ID of the agent.

<PhonebookID>

The ID of the phonebook whose contacts are required

Expected Event (s)

Contacts

Possible Error (s)


Get Team PhoneBook

This command will get the phonebook of a specific team

Command: Get_Phonebook_Contacts

JMS-Type

GetTeamPhonebooks#<agent_login_id>

JMS-Body

<TeamID>

<agent_login_Id>

Login ID of the agent.

Expected Event (s)

Team PhoneBook

Possible Error (s)


Get Queue Info


This command will get the list of Queues with all detail in a Queue 

Command: Get_Queue_Info

JMS-Type

getqueuelist#<agent_login_Id>

JMS-Body


<agent_login_Id>

Login ID of the agent.

Expected Event (s)

Queue Info

Possible Error (s)


Silent Monitor (Supervisor Function)


This command will start silent monitoring of Supervisor team members

Command:  Silent_Monitor

JMS-Type

silentmonitor#<agent_login_Id>

JMS-Body

<Agent_Extension>

<agent_login_Id>

Login ID of the agent.

<Agent_Extension>

Extension of the Agent 

Expected Event (s)

On Supervisor

  1. InboundCall (INITIATING)

  2. InboundCall (INITIATED)

  3. InboundCall (ACTIVE)

On Agent

  1. NewInboundCall

  2. InboundCall (ACTIVE)

Possible Error (s)


End Silent Monitor (Supervisor Function)


This command will end silent monitoring of Supervisor team members

Command:  End_Silent_Monitor

JMS-Type

endsilentmonitor#<agent_login_Id

JMS-Body

<Dialog_ID>

<agent_login_Id>

Login ID of the agent.

<Dialog_ID>

Id of dialog for which need to end silent monitoring 

Expected Event (s)

On Supervisor

  1. InboundCall (ACTIVE)

  2. InboundCall (DROP)

On Agent

  1. InboundCall (DROP)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Drop Participant (Supervisor Function)


This command will drop participant from call

Command:  Drop_Participant

JMS-Type

dropparticipant#<agent_login_Id>

JMS-Body

<Agent_Extension>,<Dialog_ID>

<agent_login_Id>

Login ID of the agent.

<Agent_Extension>

Extension of the Agent 

<Dialog_ID>

Id of dialog for which need to be drop

Expected Event (s)

On Supervisor

  1. InboundCall (ACTIVE)

  2. Print Message

On Agent

  1. InboundCall (DROP)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Get Team Users (Supervisor Function)


This command will get team user and subscribe for team events

Command:  Get_Team_Users

JMS-Type

getteamusers#<agent_login_Id>

JMS-Body

<TeamID>,<true>

<agent_login_Id>

Login ID of the agent.

<TeamID>

The ID of the team which we want to get

<true>

Pass true if you want to subscribe for team events

Expected Event (s)

Team Users

Possible Error (s)


Make a Barge Call (Supervisor Function)


This command will allow the supervisor to Barge In a call 

Command:  BargIn_Call

JMS-Type

bargein#<agent_login_Id>

JMS-Body

<Team_Agent_Extension>,<Dialog_ID>

<agent_login_Id>

Login ID of the agent.

<Team_Agent_LoginID>

ID of team agent which we want to bargeIn

<Dialog_ID>

Id of dialog

Expected Event (s)

On Supervisor

  1. InboundCall (ACTIVE)

  2. InboundCall (DROP)

  3. NewInboundCall

  4. NewInboundCall

  5. InboundCall (DROP)

  6. NewInboundCall

  7. InboundCall (ACTIVE)

On Agent

  1. InboundCall (DROP)

  2. InboundCall (HELD)

  3. ConsultCall (INITIATING)

  4. ConsultCall (INITIATED)

  5. InboundCall (ACTIVE)

  6. InboundCall (DROP)

  7. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Get Team Users State (Supervisor Function)

This command will get Team user state 

Command:  BargIn_Call

JMS-Type

getteamuserstate#<agent_login_Id>

JMS-Body

<Team_Agent_LoginID>

<agent_login_Id>

Login ID of the agent.

<Team_Agent_LoginID>

ID of team agent which we want to bargeIn

Expected Event (s)

Team Member State Changed

Possible Error (s)


Accept Outbound Preview Call

This command will accept  the outbound preview call

Command:  Accept_Outbound_Call

JMS-Type

AcceptOutboundPreview#<agent_login_id>

JMS-Body

<dialog_id>,<ACCEPT>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

Id of dialog

<ACCEPT>

String parameter

Expected Event (s)

Before Call Accepted

  1. NewOutboundPreviewCall

  2. AgentState (RESERVED)

  3. InboundCall (ACTIVE)

  4. InboundCall (ACTIVE)

After Call Accepted

  1. InboundCall (ACCEPTED)

  2. InboundCall (INITIATING)

  3. InboundCall (DROPPED)

  4. InboundCall (INITIATING)

  5. InboundCall (INITIATED)

  6. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED


Reject Outbound Preview Call

This command will reject the outbound preview call 

Command:  BargIn_Call

JMS-Type

RejectOutboundPreview#<agent_login_id>

JMS-Body

<dialog_id>,<REJECT>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

Id of dialog

<REJECT>

String parameter

Expected Event (s)

  1. InboundCall (ACTIVE)

  2. InboundCall (DROPPED)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Close Outbound Preview Call

This command will close the outbound preview call

Command:  BargIn_Call

JMS-Type

CloseOutboundPreview#<agent_login_id>

JMS-Body

<dialog_id>,<CLOSE>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

Id of dialog

<CLOSE>

String parameter

Expected Event (s)

  1. InboundCall (ACTIVE)

  2. InboundCall (DROPPED)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED


Get Skill Group (Only for UCCE)

This command will get a list of skill groups from the database

Command:  SkillGroup

JMS-Type

GETSKILLGROPU#<agent_login_id>

JMS-Body


<agent_login_Id>

Login ID of the agent.

Expected Event (s)


Possible Error (s)



Get Supervisors List (Only for UCCE)

This command will get a list of supervisors from the database

Command:  supervisors 

JMS-Type

GETSUPERVISOR#<agent_login_id>

JMS-Body


<agent_login_Id>

Login ID of the agent.

Expected Event (s)


Possible Error (s)



title
Note

Callback

Callbacks

Regular Callbacks

     Any agent who is assigned to the campaign can handle regular callbacks.

Personal Callbacks

Only an agent who dealt with the original call can set a personal callback. The dialer offers the agent the personal callback using a mode similar to the Preview dialing mode.

Personal callback supports three callback modes:

  • Use Campaign DN

  1.     If the agent is unavailable at the callback time, Outbound Option reserves another agent for the callback using the dialed number of the associated campaign skill group.

  2.     If an alternate agent is also unavailable from the Campaign DN script, the retry action is No Answer.

  • Reschedule the personal callback to the same time the next business day or Abandon the personal callback.             

  1.     If the agent is logged in at any point during the callback period, Outbound Option reserves the agent and places the callback.

  2.     If the agent is unavailable during the entire callback period, the personal callback fails. The call is rescheduled or abandoned based on the configuration setup.

this configuration will be done at the campaign management side, we will only schedule a callback

Can we schedule a callback again on callback?

Yes, we can schedule a callback again on the callback.

Schedule a callback call

This command will schedule a campaign callback call

Command:  Schedule_callback_Call

JMS-Type

SHCEDULECALLBACK#<agent_login_

id>

id>

JMS-Body

<targetMediaAddress>,<dialog_id>,<callbackTime>,<callbackNumber>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

The ID of the dialog

<targetMediaAddress>

The extension of the agent who is making the request

<callbackTime>

callback time 

<callbackNumber>

callback number

Expected Event (s)

  1. Print Message

  2. InboundCall (ACTIVE)

  3. Callback Scheduled

  4. Print Message

  5. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

...

Update a callback call

This command will update a campaign callback call

Command:  Update_callback_Call

JMS-Type

UPDATECALLBACK#<agent_login_

id>

id>

JMS-Body

<targetMediaAddress>,<dialog_id>,<callbackTime>,<callbackNumber>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

The ID of the dialog

<targetMediaAddress>

The extension of the agent who is making the request

<callbackTime>

callback Time

<callbackNumber>

callback Number

Expected Event (s)

  1. Print Message

  2. InboundCall (ACTIVE)

  3. Callback Updated

  4. Print Message

  5. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Cancel a Schedule callback Call

This command will cancel the scheduled callback call

Command:  cancel_scheduled_Call

JMS-Type

CANCELSHCEDULECALLBACK#<agent_login_

id>

id>

JMS-Body

<targetMediaAddress>,<dialog_id>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

Id of dialog

<targetMediaAddress>

The extension of the agent who is making the request

Expected Event (s)

  1. Callback Canceled

  2. Print Message

  3. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Reclassify a Direct Preview Call

This command will reclassify an outbound direct preview call

Command:  Reclassify _Call

JMS-Type

RECLASSIFYCALL#<agent_login_id>

JMS-Body

<targetMediaAddress>,<dialog_id>,<Value>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

The ID of the dialog

<targetMediaAddress>

The extension of the agent who is making the request

<Value>

Reclassify value

Expected Event (s)

  1. Reclassify Created

  2. Print Message

  3. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED


Note
title

Note Reclassify

In UCCE  the possible reclassify values are

  • REX_ANS_MACHINE

  • REX_FAX

  • REX_INVALID

  • REX_VOICE



Note
title

Note Accept and Reject Personal Callback

We will use the same commands as we are using to accept direct preview calls and reject direct preview calls for accept and reject personal callback.

we are just highlighting there for personal callback but we will use already implemented commands for direct preview campaign call

Accept Personal Callback Call

This command will accept the personal callback call

agent

Command:  Accept_Outbound_Call

JMS-Type

AcceptOutboundPreview#<

AcceptOutboundPreview#<agent_login_

id>

id>

JMS-Body

<dialog_id>,<ACCEPT>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

Id of dialog

<ACCEPT>

String parameter

Expected Event (s)

In UCCE

Before Call Accepted

  1. NewOutboundPreviewCall

  2. AgentState (RESERVED)

  3. InboundCall (ACTIVE)

  4. InboundCall (ACTIVE)

After Call Accepted

  1. InboundCall (ACCEPTED)

  2. InboundCall (INITIATING)

  3. InboundCall (DROPPED)

  4. InboundCall (INITIATING)

  5. InboundCall (INITIATED)

  6. InboundCall (ACTIVE)

In UCCX

Before Call Accepted

  1. AgentState (RESERVED)

  2. InboundCall (INITIATING)

  3. NewOutboundPreviewCall

After Call Accepted

  1. InboundCall (DROPPED)

  2. InboundCall (INITIATING)

  3. InboundCall (INITIATED)

  4. Print Message

  5. InboundCall (ACTIVE)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED

Reject Personal Callback Call

This command will reject the personal callback Call

agent

Command:  Reject_Outbound_Call

JMS-Type

RejectOutboundPreview#<

RejectOutboundPreview#<agent_login_

id>

id>

JMS-Body

<dialog_id>,<REJECT>

<agent_login_Id>

Login ID of the agent.

<dialog_id>

Id of dialog

<REJECT>

String parameter

Expected Event (s)

  1. InboundCall (ACTIVE)

  2. InboundCall (DROPPED)

Possible Error (s)

  1. MISSING_DIALOG_ID

  2. CF_GENERIC_UNSPECIFIED


All Events

System#IN_SERVICE

System#IN_SERVICE is the event that a client connected to GC receives frequently. Normally it is the response of Hello or Beat commands. It indicates that the GC is connected to Finesse and can perform actions in response to the command.

Event: System#IN_SERVICE

JMS-Type

NULL

JMS-Body

System#IN_SERVICE

Event Category

System


System#OUT_OF_SERVICE

Normally it is the response of Hello or Beat commands. It indicates that the GC is not connected to Finesse and unable to perform action in response to the commands. After sending this event, GC will stop receiving further commands from clients. Client should send Hello until it didn’t receive System#IN_SERVICE.

Event: System#OUT_OF_SERVICE

JMS-Type

NULL

JMS-Body

System#OUT_OF_SERVICE

Event Category

System


DESTINATION RECONNECT

GC replies to Heartbeat commands with System#<System_Status> if the destination is already present in GC. If the destination specified by Heartbeat is not present in GC, GC replies with this event. In response to this event, the client should send Connect and Login for all the agents available in the client's agent list.

Event: DESTINATION

JMS-Type

NULL

JMS-Body

DESTINATION#<Destination_Name>#RECONNECT

<Destination_Name>

Client destination on which GC will reply to client.

Event Category

Destination

CallBack Scheduled

We will send this event to the Client after successfully scheduling a callback.

Event: Callback

JMS-Type

NULL

JMS-Body

CallBack#<CallBack>

Event Category

Info

AgentInfo

AgentInfo event contains the basic information of the agent. Like, Agent’s first name, last name, wrapup mode, is this agent has supervisor rights and agent’s full name. GC sends this event only when the agent logged in successfully to the finesse. This event will never be sent again in a session.

Event: AgentInfo

JMS-Type

NULL

JMS-Body

For Agent

<agent_login_Id>#AgentInfo#<agent_first_name>#<agent_last_name>#<Is_Supervisor>#<wrap_up_mode>#<agent_teamId>#<agent_full_name>#<agent_login_name>

For Supervisor

<agent_login_Id>#AgentInfo#<agent_first_name>#<agent_last_name>#<Is_Supervisor>#<wrap_up_mode>#TotalNumberOfTeams:TeamsCount#<team_1_id><team_1_name>|<team_2_id><team_2_name>#<agent_teamId>#<agent_full_name>#<agent_login_name>

<agent_login_Id>

Agent’s login Id, which is logged in

<agent_first_name>

Agent’s First Name

<agent_last_name>

Agent’s Last Name

<Is_Supervisor>

Is this agent has the role of Supervisor. True | False

teams

it's a list of all teams. Each element is a team object as defined below. 

team_id

id of the team

team_name

name of the team

<wrap_up_mode>

Configured wrapup mode for agent. 

Allowed values for wrap_up mode are:

  • OPTIONAL

  • REQUIRED

  • NOT_ALLOWED

  • REQUIRED_WITH_ WRAP_UP_DATA

Event Category

agent_info


AgentState

AgentState describes the current state of the agent on finesse. Normally GC sends this event when the agent state is changed on finesse or in response to the GetState command from the client.

Event: State

JMS-Type

NULL

JMS-Body

<agent_login_Id>#State#<agent_current_state>#<resonCodeId>#<agent_

StateChangeTimeString>#<agent_PendingState>#<agent_StateChangeTime>#<agent

StateChangeTimeString>#<agent_PendingState>#<agent_StateChangeTime>#<agent_full_name>#<agent_login_Id>#<agent_Extension>#<agent_StateChangeReasonLabel>#<agent_full_name>#<agent_login_name>

<agent_login_Id>

Agent’s login Id, which is logged in

<agent_current_state>

Current State of Agent. Possible states are:

  • UNKNOWN

  • READY

  • NOT_READY

  • LOGOUT

  • LOGIN

  • TALKING

  • RESERVED

  • RESERVED_OUTBOUND

  • RESERVED_OUTBOUND_PREVIEW

  • WORK

  • WORK_READY

  • HOLD

<resonCodeId>

Reason code for state change. In case of LOGOUT  and NOT_READY for the first time it will be -1. After that whenever you change state with reason code, that reason code will be sent along. In case of ready, it will be empty.

<agent_full_name>

name of the agent

<agent_login_Id>

login id of the agent

<agent_Extension>

login extension of the agent 

<agent_StateChangeReasonLabel>

Label of any state change

Event Category

agent_state

State#RE_LOGIN

RE_LOGIN is a special case. It occurs when GC receives command from a client for a particular agent  which is not present in GC. In this case, the client needs to send the Connect and Login commands again.

DialogStatus

When an agent login, GC explicitly gets the list of active dialogs of the agent and sends it. GC gets the list of dialogs for each agent upon failover. If there is any dialog active, even any dialog is associated with active dialog for the agent, GC will send detailed dialog status event to the particular agent. If there is no active dialog for an agent, GC will send DialogStatus###.

Event: DialogStatus

JMS-Type

NULL

JMS-Body

<agent_login_id>#DialogStatus#<dialog_ID>#DialogState#<fromAddress>#<Call-Variables>#<associated_dialog_ID>#AssDialogState#<fromAddress>#<Call-Variables>

<agent_login_Id>

Agent’s login Id, which is logged in

<dialog_ID>

ID of the current active dialog

<fromAddress>

From address of active dialog

<Call-Variables>

Call variable of the dialog

<associated_dialog_ID>

ID of dialog associated with the dialog of the agent.

Event Category

agent_state


Reason Codes

The ReasonCode object represents a reason code that can be applied when an agent changes state. There are two categories of reason codes: not ready reason codes and sign out reason codes.

Administrators can use either the ReasonCode APIs or the Finesse administration console to configure not ready and sign out reason codes. When using the APIs to configure reason codes, the administrator specifies the category of reason code in the request (NOT_READY or LOGOUT).

An additional reason code category is Wrap-up reason. The WrapUpReason object represents a reason that an agent can apply to a call during call wrap-up. WrapUp has only reason labels. There are no codes associated with the labels.

Event: ReasonCodes

JMS-Type

NULL

JMS-Body

<agent_login_Id>#ReasonCodes#Category:<category>#<code_1>,<code_2>,… #Labels:<label_1>,<label_2>,…#<agent_full_name>

<category>

Category of reason codes. Possible values:

  • NOT_READY

  • LOGOUT

  • Wrap_Up

<code_1>,<code_2>,.....

Numeric codes of reasons

<label_1>,<label_2>,…

Labels for each code. <code_1> corresponds to <label_1>

Event Category

agent_work


Inbound Call State

This event is fired when GC receives an update about dialog from finesse for an inbound call. It is sent along with dialog id as multiple dialogs can be present simultaneously at a time. “#DialogID:<dialog_ID>” is only sent in case of (Failed,Dropped,Deleted,Hold.Held,Wrap_up). <Inboundcall_current_state> will be equal “DROP” in case of (Failed,Dropped,Deleted)

Event: InboundCall

JMS-Type

NULL

JMS-Body

Normal:InboundCall#<Inboundcall_current_state>#DialogID:<dialog_ID>#<fromAddress>#<CallVariables>#<start_time>#CallType:<call_type>#ParticipantsCount:<participantsCount>#participants:<participants>

Failure: <agent_login_Id>#InboundCall#FAILED#DialogID:<dialog_ID>#<Failure_Cause>#<agent_full_name>

<agent_login_Id>

Agent’s login Id, which is logged in

<Inboundcall_current_state>

Current state of the dialog. Possible values are:

  • INITIATING

  • INITIATED

  • ALERTING

  • ACTIVE

  • FAILED

  • DROPPED

  • ACCEPTED

<dialog_ID>

ID of the current active dialog

<fromAddress>

From address of active dialog

<Call-Variables>

Call variable values are sent comma separated. Call variable names are not being sent.

<start_time>

start time of the call

<call_type>

call type

In Silent Monitoring the call type (at Agent & Supervisor) will be

  • SUPERVISOR_MONITOR (SM)

<Failure_Cause>

Cause of Dialog failure. Only in the case of State=Failed

Event Category

agent_dialog


New Inbound Call

This event occurs when an incoming call is ringing for the agent. This event specifies from address, call variables and dialog id for the agent. Client needs to activate the control for accepting or rejecting the call. 

Event: NewInboundCall

JMS-Type

NULL

JMS-Body

NewInboundCall#<from_address>#<callvariable1,callvariable2,..>#DialogID:<dialog_ID>#CallType:<call_type>#<start_time>

<agent_login_Id>

Agent’s login Id, which is logged in

<Dialog_ID>

ID of the current active dialog

<fromAddress>

From address of active dialog

<Call-Variables>

Call variable values are sent comma separated. Call variable names are not being sent.

<start_time>

start time of the call

<call_type>

call type

In Silent Monitoring the call type (at Agent & Supervisor) will be

  • SUPERVISOR_MONITOR (SM)

Event Category

agent_dialog



New Outbound Preview Call

This event occurs when an incoming call is ringing for the agent. This event specifies from address, call variables and dialog id for the agent. Client needs to activate the control for accepting or rejecting the call. 

Event:

 NewOutboundPreviewCall

 NewOutboundPreviewCall

JMS-Type

NULL

JMS-Body

NewOutboundPreviewCall#<from_address>#<callvariable1,callvariable2,..>#DialogID:<dialog_ID>#CallType:<call_type>

<agent_login_Id>

Agent’s login Id, which is logged in

<Dialog_ID>

ID of the current active dialog

<fromAddress>

From address of active dialog

<Call-Variables>

Call variable values are sent comma separated. Call variable names are not being sent.

<call_type>

call type

Event Category

agent_dialog


DialogState


While a call is active, the client can get the state of that particular dialog by sending GetDialogState command. Dialog state event represents the current state of the dialog.

Event: DialogState

JMS-Type

NULL

JMS-Body

<agent_login_Id>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name>

<agent_login_Id>

Agent’s login Id, which is logged in

<dialog_state>

Current state of the dialog. Possible values are:

  • INITIATING

  • INITIATED

  • ALERTING

  • ACTIVE

  • FAILED

  • DROPPED

  • ACCEPTED

<dialog_ID>

ID of the dialog

Event Category

agent_dialog


Consult Call State


This event informs the client about the current state of consult call for an agent. <associated_dialog_ID> denotes the id of associated dialog whose state is being sent.

Event: DialogState

JMS-Type

NULL

JMS-Body

Normal: <agent_login_Id>#ConsultCall#<ConsultCall_current_state>#AssDialogID:<associated_dialog_ID>#<fromAddress>#<Call_Variable>#<Agent_Name>

Failure:
<agent_login_Id>#ConsultCall#FAILED#AssDialogID:<associated_dialog_ID>#<Failure_Cause>#<Agent_Name>

<agent_login_Id>

Agent’s login Id, which is logged in

<ConsultCall_current_state>

Current state of the dialog. Possible values are:

  • INITIATING

  • INITIATED

  • ALERTING

  • ACTIVE

  • FAILED

  • DROPPED

  • ACCEPTED

<associated_dialog_ID>

ID of the associated dialog

<Call-Variables>

Call variable values are sent comma separated. Call variable names are not being sent.

Event Category

agent_dialog


Supervisor Team Info(IDs) [Supervisor Event]


Informs a Supervisor agent about its team. It consists of the ID’s of all the teams assigned to the supervisor agent. This event is only available for supervisor agents. 

Event: TeamInfoIDs

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#TeamInfoIDs#TeamID#<agent_team_ID_1>,<agent_team_ID_2>,… #<agent_full_name>

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

<agent_team_ID_1>,<agent_team_ID_2>,...

Comma separated team ids assigned to the agent.

Event Category

supervisor_info


Supervisor Team Info(Names) [Supervisor Event]

Informs a Supervisor agent about its team. It consists of names of all the teams (comma separated) assigned to the supervisor agent. This event is only available for supervisor agents. 

Event: TeamInfoNames

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#TeamInfoNames#TeamName#<agent_team_name_1>,<agent_team_name_2>,… #<agent_full_name>

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

<agent_team_name_1>,<agent_team_name_2>,…

Comma separated team names assigned to the agent.

Event Category

supervisor_info


Queue Info [Supervisor Event]

Informs a supervisor about its Queue. This event comes with the Queue Name, Calls in Queue, no of calls in queue, No of agents with their states. This is a supervisor only event.

Event: QueueList

JMS-Type

NULL

JMS-Body

UCCE Payload

<agent_supervisor_login_Id>#QueueList#











QueueName:<queue_1_name>,AgentsNotReady:<queue_1_Number_of_Agents_NotReady>,AgentsReady:<queue_1_Number_of_Agents_Ready>,











AgentsTalkingInbound:<queue_1_number_of_agents_talking_inbound>,AgentsTalkingInternal:<queue_1_number_of_agents_talking_internal>,











AgentsTalkingOutbound:<queue_1_number_of_agents_talking_outbound>,AgentsWrapUpNotReady:<queue_1_number_of_agents_in_wrapup_notready>,











AgentsWrapUpReady:<queue_1_number_of_agents_in_wrapup_ready>,CallsInQueue:<queue_1_Number_of_CallsInQueue>,











StartTimeOfLongestCallInQueue:<queue_1_startTimeOfLongestCallInQueue>#...#











QueueName:<queue_n_name>,AgentsNotReady:<queue_n_Number_of_Agents_NotReady>,AgentsReady:<queue_n_Number_of_Agents_Ready>,











AgentsTalkingInbound:<queue_n_number_of_agents_talking_inbound>,AgentsTalkingInternal:<queue_n_number_of_agents_talking_internal>,











AgentsTalkingOutbound:<queue_n_number_of_agents_talking_outbound>,AgentsWrapUpNotReady:<queue_n_number_of_agents_in_wrapup_notready>,











AgentsWrapUpReady:<queue_n_number_of_agents_in_wrapup_ready>,CallsInQueue:<queue_n_Number_of_CallsInQueue>,











StartTimeOfLongestCallInQueue:<queue_n_startTimeOfLongestCallInQueue>


UCCX Payload

For Supervisor

<agent_supervisor_login_Id>#QueueList#
QueueName:<queue_1_name>,Type:<SnapShot>:WaitingCalls:<queue_1_WaitingCalls>,AgentsLoggedIn:<queue_1_AgentsLoggedIn>,
AgentsReady:<queue_1_AgentsReady>,AgentsNotReady:<queue_1_AgentsNotReady>,
AgentsInAfterCallWork:<queue_1_AgentsInAfterCallWork>,AgentsTalking:<queue_1_AgentsTalking>,
AgentsReserved:<queue_1_AgentsReserved>|Type:<SinceMidNight>:WaitingCalls:<queue_WaitingCalls>,
HandledCalls:<queue_1_HandledCalls>,AbandonedCalls:<queue_1_AbandonedCalls>,
TotalCalls:<queue_1_TotalCalls>,
LongestCallInQueue:<queue_1_LongestCallInQueue>,
LongestHandleTime:<queue_1_LongestHandleTime>#...#
QueueName:<queue_n_name>,Type:<SnapShot>:WaitingCalls:<queue_n_WaitingCalls>,AgentsLoggedIn:<queue_n_AgentsLoggedIn>,
AgentsReady:<queue_n_AgentsReady>,AgentsNotReady:<queue_n_AgentsNotReady>,
AgentsInAfterCallWork:<queue_1_AgentsInAfterCallWork>,AgentsTalking:<queue_1_AgentsTalking>,
AgentsReserved:<queue_n_AgentsReserved>|Type:<SinceMidNight>:WaitingCalls:<queue_n_WaitingCalls>,
HandledCalls:<queue_n_HandledCalls>,AbandonedCalls:<queue_1_AbandonedCalls>,
TotalCalls:<queue_n_TotalCalls>,
LongestCallInQueue:<queue_n_LongestCallInQueue>,
LongestHandleTime:<queue_n_LongestHandleTime>


For Agent

<agent_login_Id>#QueueList#
QueueName:<queue_1_name>,WaitingCalls:<queue_1_WaitingCalls>,LongestCallInQueue:<queue_1_LongestCallInQueue>#...
#QueueName:<queue_n_name>,WaitingCalls:<queue_n_WaitingCalls>,LongestCallInQueue:<queue_n_LongestCallInQueue>

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

<queue_name>

Name of Queue

<Number_of_CallsInQueue>

No of Calls in Queue

<Number_of_Agents_Ready>

No of agents in READY state

<Number_of_Agents_NotReady> 

No of agents in NOT_READY state

<number_of_agents_talking_inbound>

No of agents TALKING on INBOUND calls

<number_of_agents_talking_outbound>

No of agents TALKING on OUTBOUND calls

<number_of_agents_talking_internal>

No of agents talking internal

<number_of_agents_in_wrapup_ready_state>

No of agents in WRAPUP READY state

<number_of_agents_in_wrapup_notready_state>

No of agents in WRAPUP NOT_READY state

<queue_1_WaitingCalls>

Number of calls in queue for a CSQ.

<queue_1_AgentsLoggedIn>

Number of agents in Logged-In state.

<queue_1_AgentsInAfterCallWork>

Number of agents in Work state.

<queue_1_AgentsTalking>

Number of agents in Talking state.

<queue_1_AgentsReserved>

Number of agents in Reserved state.

<queue_1_HandledCalls>

Number of calls that are answered by the agents in the CSQ.

<queue_1_AbandonedCalls>

Number of calls that are abandoned for a CSQ.

<queue_1_TotalCalls>

Number of calls that are presented to the CSQ.

<queue_1_LongestHandleTime>

Longest talk time of any call that the agent handled.

<agent_full_name>

Full name of Supervisor

Event Category

supervisor_queue_info



Users [Admin Event]


Event: TeamUsersList

JMS-Type

NULL

JMS-Body

<agent_login_Id>#AgentsList#LoginId=XXXX,Name=XXXX Extension=XXXX,State=XXXX,Team=XXXX|.......|.......

<agent_login_Id>

Agent’s login Id, which is logged in

Event Category



Team Users [Supervisor Event]


Event: TeamUsersList

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#TeamUsersList#FirstName:<user_1_firstName>,LastName:<user_1_lastName>,Extension:<user_1_extension>,











LoginID:<user_1_loginID>,State:<user_1_state>,PendingState:<user_1_pendingState>,MediaType:<user_1_mediaType>,StateChangeTime:<user_1_stateChangeTime>,Label:<user_1_stateChangeLabel>#











FirstName:<user_2_firstName>,LastName:<user_2_lastName>,Extension:<user_2_extension>,LoginID:<user_2_loginID>,State:<user_2_state>,











PendingState:<user_2_pendingState>,MediaType:<user_2_mediaType>,StateChangeTime:<user_2_stateChangeTime>,Label:<user_2_stateChangeLabel>#











FirstName:<user_n_firstName>,LastName:<user_n_lastName>,Extension:<user_n_extension>,LoginID:<user_n_loginID>,State:<user_n_state>,











PendingState:<user_n_pendingState>,MediaType:<user_n_mediaType>,StateChangeTime:<user_n_stateChangeTime>,Label:<user_n_stateChangeLabel>

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

<user_firstName>

User's first name

<user_lastName>

User's last name

<user_extension>

User's extension

<user_loginID>

User's login ID

<user_state>

User's state

<user_pendingState>

User's pending State

<user_mediaType>

User's media Type

<user_stateChangeTime>

User's state Change Time

<user_stateChangeLabel>

User's state Change Label

Event Category

supervisor_team_user


Team Member State Changed [Supervisor Event] (Not Using)

This event informs a Supervisor agent about the state change of an agent in the team.

Event: TeamMemberStateChanged

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#TeamMemberStateChanged#<teamID>#<agent_state>

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

Event Category

supervisor_team_info


Conference Participants [Supervisor Event]

This event updates a Supervisor about participants of a call. Only extensions of conference participants are provided. 

Event: ConferenceParticipants

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#ConferenceParticipants#<extension_1>,<extension_2>,…

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

Event Category

supervisor_queue_info


Print Message in agent window as sent

Sometimes it needs to display some messages in the agent's windows. This event helps to achieve this objective. GC sends a message that should display directly in the agent's window.

Event: Control

JMS-Type

NULL

JMS-Body

<agent_login_Id>#Control#PrintStatusBar#<Message_To_Agent>

<agent_login_Id>

Agent’s login Id, which is logged in

<Message_To_Agent>

Message to print in agent’s window

Event Category

agent_control

Phonebooks

This event contains the names and IDs of global and team phonebooks

Event: Phonebook

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#Phonebooks#name:<phonebook_1_name>,type:<phonebook_1_type>,id:<phonebook_1_id>











#name:<phonebook_2_name>,type:<phonebook_2_type>,id:<phonebook_2_id> #.......











#name:<phonebook_n_name>,type:<phonebook_n_type>,id:<phonebook_n_id>

If no data found 

<agent_supervisor_login_Id>#Phonebooks#NoPhoneBookFound

<agent_login_Id>

Agent’s login Id, which is logged in

<phonebook_name>

PhoneBook name

<phonebook_type>

PhoneBook type

<phonebook_id>

PhoneBook Id

Event Category

phonebook

Contacts

This event contains all the contacts for a specific phonebook

Event: Phonebook

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#PhonebookContacts#description:<contact_1_description>,firstName:<contact_1_firstName>,lastName:<contact_1_lastName>,phoneNumber:<contact_1_phoneNumber>,id:<contact_1_id>











#description:<contact_2_description>,firstName:<contact_2_firstName>,lastName:<contact_2_lastName>,phoneNumber:<contact_2_phoneNumber>,id:<contact_2_id>#.......











#description:<contact_n_description>,firstName:<contact_n_firstName>,lastName:<contact_n_lastName>,phoneNumber:<contact_n_phoneNumber>,id:<contact_n_id>

If no data found 

<agent_supervisor_login_Id>#PhonebookContacts#NoContactFound

<agent_login_Id>

Agent’s login Id, which is logged in

<contact_description>

Description of contact

<contact_firstName>

Contact first name

<contact_lastName>

Contact last name

<contact_phoneNumber>

Contact phone number

<contact_id>

Contact Id

Event Category

contacts

Team PhoneBook

This event contains all the phonebook for a specific team

Event: TeamUsersList

JMS-Type

NULL

JMS-Body

<agent_supervisor_login_Id>#TeamPhoneBooks#name:<phonebook_1_name>,type:<phonebook_1_type>,id:<phonebook_1_id>











#name:<phonebook_2_name>,type:<phonebook_2_type>,id:<phonebook_2_id>#.......











#name:<phonebook_n_name>,type:<phonebook_n_type>,id:<phonebook_n_id>

If no data found 

<agent_supervisor_login_Id>#TeamPhoneBooks#NoTeamPhoneBookFound

<agent_supervisor_login_Id>

Agent’s login Id, which is logged in

<phonebook_name>

PhoneBook name

<phonebook_type>

PhoneBook type

<phonebook_id>

PhoneBook Id

Event Category

phonebook


CallBack Message


Event: CallbackMessage

JMS-Type

NULL

JMS-Body

<agent_login_Id>#title#data

<agent_login_Id>

Agent’s login Id, which is logged in

Event Category



All Errors

All the possible errors are listed below with the suggested action on the client side. You can display friendly messages against these messages on the client end. Error origin is mentioned with each error that helps the developer to debug the issue.

SUBSCRIPTION_FAILED

This error occurs when GC tries to get a subscription of an agent with supplied credentials and those credentials are invalid. 

Error: SUBSCRIPTION_FAILED

JMS-Type

NULL

JMS-Body

<Error_For>#Error#SUBSCRIPTION_FAILED

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Invalid credentials supplied for agent login

Expected Client’s Behaviour

Display the error message and ask the agent to enter valid credentials and send the command again.


UNABLE_TO_SUBSCRIBE_TO_FINESSE

This error occurs when GC tries to get a subscription of an agent with supplied credentials and those credentials are invalid. Same as SUBSCRIPTION_FAILED.

Error: UNABLE_TO_SUBSCRIBE_TO_FINESSE

JMS-Type

NULL

JMS-Body

<Error_For>#Error#UNABLE_TO_SUBSCRIBE_TO_FINESSE

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Invalid credentials supplied for agent login

Expected Client’s Behaviour

Display the error message and ask the agent to enter valid credentials and send the command again.


SESSION_INVALIDATED

Sometimes user requests connect from a new destination while he is already logged in from an older destination and his session is active. In such cases, GC will send this error to the older destination and process the connect request from the new destination. AgentState LOGOUT immediately after this error.

Error: SESSION_INVALIDATED

JMS-Type

NULL

JMS-Body

<Error_For>#Error#SESSION_INVALIDATED

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

The current session session for user has been invalidated, user has been logged in from a new destination. GC will send a logout message followed by this message

Expected Client’s Behaviour

Display the error message and ask the user to login again.


LICENSES_EXCEEDED

No. of simultaneous logged in users exceed to the allowed users in license.

Error: LICENSES_EXCEEDED

JMS-Type

NULL

JMS-Body

<Error_For>#Error#LICENSES_EXCEEDED

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

User license limit exceeded 

Expected Client’s Behaviour

Display the error message.


MISSING_EXTENSION

Extension is missing in request.

Error: MISSING_EXTENSION

JMS-Type

NULL

JMS-Body

<Error_For>#Error#MISSING_EXTENSION

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Extension is missing in request.

Expected Client’s Behaviour

Display the error message and ask the user to enter valid Extension. Send the request again.

WRONG_EXTENSION

Extension provided in request contains alphabetic characters. 

Error: WRONG_EXTENSION

JMS-Type

NULL

JMS-Body

<Error_For>#Error#WRONG_EXTENSION

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Extension is not valid (contains alphabetic characters)

Expected Client’s Behaviour

Display the error message and ask the user to enter valid Extension. Send the request again.


MISSING_PASSWORD

Password is missing in the request. The request should be sent along with the password.

Error: MISSING_PASSWORD

JMS-Type

NULL

JMS-Body

<Error_For>#Error#MISSING_PASSWORD

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Password is missing in request

Expected Client’s Behaviour

Display the error message and ask the user to enter a password. Send the request again.


USER_NOT_FOUND

Agent ID isn't found in Finesse.

Error: USER_NOT_FOUND

JMS-Type

NULL

JMS-Body

<Error_For>#Error#USER_NOT_FOUND

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

Agent ID isn't found in Finesse

Expected Client’s Behaviour

Display the error message and ask the user to enter valid credentials. Send the request again.


GENERAL_ERROR

When the root cause of error is unclear. This error is sent only for the Login command.

Error: GENERAL_ERROR

JMS-Type

NULL

JMS-Body

<Error_For>#Error#GENERAL_ERROR

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

When the root cause of error is unclear.

Expected Client’s Behaviour

Display the error message and send the request again.


CF_GENERIC_UNSPECIFIED

When the root cause of error is unclear. No specific details available. Can occur at any command.

Error: CF_GENERIC_UNSPECIFIED

JMS-Type

NULL

JMS-Body

<Error_For>#Error#CF_GENERIC_UNSPECIFIED

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

Root cause of the error is unclear. No specific details available

Expected Client’s Behaviour

Display the error message and send the request again.


CF_INVALID_LOGON_DEVICE_SPECIFIED

The request specified an invalid logon device.

Error: CF_INVALID_LOGON_DEVICE_SPECIFIED

JMS-Type

NULL

JMS-Body

<Error_For>#Error#CF_INVALID_LOGON_DEVICE_SPECIFIED

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

The request specified an invalid logon device.

Expected Client’s Behaviour

Display the error message and ask the user to enter a valid extension. Send the request again.


CF_RESOURCE_BUSY

An internal resource is busy.

Error: CF_RESOURCE_BUSY

JMS-Type

NULL

JMS-Body

<Error_For>#Error#CF_RESOURCE_BUSY

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

An internal resource is busy.

Expected Client’s Behaviour

Send the request again.


CF_INVALID_OBJECT_STATE

The object is in the incorrect state for the request.

Error: CF_INVALID_OBJECT_STATE

JMS-Type

NULL

JMS-Body

<Error_For>#Error#CF_INVALID_OBJECT_STATE

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

The object is in the incorrect state for the request.

Expected Client’s Behaviour

Send the request again.


PLEASE_RETRY

Invalid request params, IOException, request timeout.

Error: PLEASE_RETRY

JMS-Type

NULL

JMS-Body

<Error_For>#Error#PLEASE_RETRY

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Invalid request params, IOException, request timeout.

Expected Client’s Behaviour

Send the request again.


MISSING_REASON_CODE

GC/Finesse expects reason-code that wasn't provided by the client.

Error: MISSING_REASON_CODE

JMS-Type

NULL

JMS-Body

<Error_For>#Error#MISSING_REASON_CODE

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

GC/Finesse expects reason-code that wasn't provided by the client

Expected Client’s Behaviour

Send the request again with reason codes.


MISSING_DIALOG_ID

Dialog ID is missing in request.

Error: MISSING_DIALOG_ID

JMS-Type

NULL

JMS-Body

<Error_For>#Error#MISSING_DIALOG_ID

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Dialog id is missing in request

Expected Client’s Behaviour

Send the request again with dialog id.


MISSING_NUMBER

Number to dial is missing in request

Error: MISSING_NUMBER

JMS-Type

NULL

JMS-Body

<Error_For>#Error#MISSING_NUMBER

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Generic Connector

Error Summary

Number to dial is missing in request

Expected Client’s Behaviour

Send the request again with dialog id.


E_CTI_INVALID_CALL_ID

A request message was received with an invalid CallID value.

Error: E_CTI_INVALID_CALL_ID

JMS-Type

NULL

JMS-Body

<Error_For>#Error#E_CTI_INVALID_CALL_ID

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

A request message was received with an invalid CallID value.

Expected Client’s Behaviour

Send the request again with a valid call id.


CF_GENERIC_OPERATION

An operation error occurred (no specific details available).

Error: CF_GENERIC_OPERATION

JMS-Type

NULL

JMS-Body

<Error_For>#Error#CF_GENERIC_OPERATION

<Error_For>

Possible values are:

  • <Agent_ID> 

  • <Supervisor_ID>

Error Origin

Finesse

Error Summary

An operation error occurred (no specific details available).

Expected Client’s Behaviour

Display error message according to the last command sent.


INVALID_CALL_DATA


A request message was received with invalid parameters.

Error: CF_GENERIC_OPERATION

JMS-Type

NULL

JMS-Body

<Error_For>#Error#INVALID_CALL_DATA

<Error_For>

Possible values are:

  • <dialog_id> 

  • <variable_name>

  • <variable_value>

Error Origin

Generic Connector

Error Summary

Parameters missing in the request body.

Expected Client’s Behaviour

Display error message according to the last command sent.




# Symbol Handling


title
Info

Note

We will send # Binary number in case we recieve # in following events.

  • Global and Team Phone Books Event

  • Team Phone Books Event

  • Phone Book Contacts Event

  • State Change Event

  • Team State change Event

  • Team User List Event

  • Call Vrariables


Appendix 1


This table lists down the default variables in CISCO finesse desktop layout. However, administrators can define the custom variables as well. For details refer to this manage call variables layout guide.

Label 

Variable Name

Call Variable 1

callVariable1

Call Variable 2

callVariable2

Call Variable 3

callVariable3

Call Variable 4

callVariable4

Call Variable 5

callVariable5

Call Variable 6

callVariable6

Call Variable 7

callVariable7

Call Variable 8

callVariable8

Call Variable 9

callVariable9

Call Variable 10

callVariable10

BA Account Number

BAAccountNumber

BA Buddy Name

BABuddyName

BA Campaign

BACampaign

BA Customer Number

BACustomerNumber

BA Dialed ListID

BADialedListID

BA Response

BAResponse

BA Status

BAStatus

BA TimeZone

BATimeZone