Skip to main content
Skip table of contents

Developer Guide

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 application developers in understanding the flow of messages between GC and GC-Client.


New In This Release

For new features in the 4.0 release, see the Generic Connector Install Guide V 4.0.


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, and 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 the 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 clients in language other than Java, you can find examples in respective technology on the 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

<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
  • The client is expected to subscribe on AMQ <Topic>Destination
  • GC listens on AMQ <Queue>Destination

A 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, and 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 listens on Queue “Connector1”, all the commands from the client should be published to Queue “Connector1” and GC replies on the Topic, specified by the 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.

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.
  • Create an AMQ producer with Destination <Queue> name Connector1 to send commands.
  • Send Hello Command
  • If GC-Client receives System#IN_SERVICE, the GC is assumed to be connected and ready to listen on.
  • 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.



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>,<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. MISSING_NUMBER
  3. CF_INVALID_OBJECT_STATE
  4. CF_RESOURCE_BUSY
  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)

    E_CTI_INVALID_CALL_ID

    MISSING_DIALOG_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

    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_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_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)

    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)


    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>

    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>

    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>

    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 Reclassify

    In UCCE  the possible reclassify values are

    • REX_ANS_MACHINE
    • REX_FAX
    • REX_INVALID
    • REX_VOICE


    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

    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)

    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

    Command:  Reject_Outbound_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


    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

    teamsit's a list of all teams. Each element is a team object as defined below. 
    team_idid of the team
    team_namename 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_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

    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

    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

    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

    JavaScript errors detected

    Please note, these errors can depend on your browser setup.

    If this problem persists, please contact our support.