Versions Compared

Key

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

Table of Contents

Abbreviations

...

The purpose of this document is to assist Generic Connector client applications developers to understand 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.

...

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


...

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

...

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

...

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

...

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

...

Command:  SkillGroup

JMS-Type

GETSKILLGROPU#<agent_login_id>

JMS-Body


<agent_login_Id>

Login ID of the agent.

Expected Event (s)


Possible Error (s)


...

Command:  supervisors 

JMS-Type

GETSUPERVISOR#<agent_login_id>

JMS-Body


<agent_login_Id>

Login ID of the agent.

Expected Event (s)


Possible Error (s)


...

Note
titleCallback

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.

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...

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

...