Generic Connector JSON API

A GC client can call this API to connect with Generic Connector.  

Agent Commands

Message types and their expected output are mentioned below.

Input MessageCategoryMessage TypeMessage ParametersExpected OutputComments
Send Heartbeat while not logged insystemHello#<client_destination>
System Status
Send Heartbeatwhile logged insystemBeat#<client_destination>
System StatusNot implemented in client yet.

Connect AgentID with Client Unique Name

agent_infoConnect#<agent_login_Id><client_destination>,<agent_password>
No response
Agent Loginagent_stateLogin#<agent_login_Id><agent_password>,<agent_extension>

Agent State, Agent Info


Mobile Agent Loginagent_stateMobileAgentLogin#<agent_login_Id><agent_password>,<agent_extension>,<agent_phone>,<connection_mode>Agent State, Agent InfoOnly on UCCE but not tested yet. 
Set connection mode to “true” for “call by call”, “false” for “nailed connection”.
Agent Logoutagent_stateLogout#<agent_login_Id>
Agent State
Make agent readyagent_stateMakeReady#<agent_login_Id>
Agent State
Make agent not readyagent_stateMakeNotReady#<agent_login_Id>
Agent State
Get agent current stateagent_stateGetState#<agent_login_Id>
Agent State
Not Ready with reason codeagent_stateMakeNotReadyWithReason#<agent_login_Id><agent_reason_code>Agent State
Make a callagent_callMakeCall# <agent_login_Id><Other_Party_Extension_Number>Inbound Call
Answer a callagent_callAnswerCall# <agent_login_Id><Dialog_ID>Inbound Call
Hold a callagent_callHoldCall#<agent_login_Id><Dialog_ID>Inbound Call
Unhold a callagent_callRetrieveCall#<agent_login_Id><Dialog_ID>Inbound Call
Release a callagent_callReleaseCall#<agent_login_Id><Dialog_ID>Inbound Call
Get Agent Wrap-up Reason Codesagent_workwrapupreasoncode#<agent_login_Id>
Reason Codes
Get Agent Logout Reason Codesagent_statereasoncodelogout#<agent_login_Id>
Reason Codes
Get Agent Not Ready Reason Codesagent_statereasoncodenotready#<agent_login_Id>
Reason Codes
Blind Transferagent_callTransfer_sst#<agent_login_Id><Other_Party_Extension_Number>,<Dialog_ID>
Used only in UCCE, will update later.
Transfer Initiationagent_callConsultCall#<agent_login_Id><Other_Party_Extension_Number>,<Dialog_ID>Consult Call
Conference Inititationagent_callConsultCall#<agent_login_Id><Other_Party_Extension_Number>,<Dialog_ID>Consult Call
Complete Transferagent_callTransferCall#<agent_login_Id><agent_extension>,<Dialog_ID>Transfer Call
Complete Conferenceagent_callConferencecall#<agent_login_Id><agent_extension>,<Dialog_ID>Conference Call
Get Dialog Stateagent_dialoggetdialogstate#<agent_login_Id><Dialog_ID>Agent Dialog
Update Dialog Wrap-up Codesagent_dialogwrapup#<agent_login_Id><Wrapup_Reason>,<dialog_id>
No response is received when this event is called.
Logout with Reasonagent_statelogoutwithreason#<agent_login_Id><ReasonCode>Agent State
Abrupt Agent Disconnectionagent_stateforce_logout#<agent_login_Id>
Agent StateHad do send this message in backend but the output is same as of in Expected Output
Get Dialog State Controlsagent_dialoggetdialogstatecontrols#<agent_login_Id><Dialog_ID>
Not implemented in client yet
Make Work Not Readyagent_statemakeworknotready#<agentID>

Not implemented in client yet
Make Work Readyagent_statemakeworkready#<agentID>

Not implemented in client yet
Get Dialog Participantsagent_callgetDialogParticipants#<agent_login_id><dialog_id>
Deprecated, Not implemented in client yet
Get Logged in Agentsagent_callgetallagents#<agent_login_id>
Get All Agents
Update Dialog Variableagent_callupdate_call_variable#<agent_login_Id><dialog_id>,<variable_name>,<variable_value>
Not implemented in client yet
Pause Zoom Call RecordingzoomZOOMPauseRecording#<agent_login_Id>


Resume Zoom Call RecordingzoomZOOMResumeRecording#<agent_login_Id>


Refreshagent_staterefresh#<agent_login_Id>


Get Team and Global PhonebooksphonebookGetPhonebooks#<agent_login_id>
Phonebooks
Get Contacts of a PhonebookcontactsGetPhonebookContacts#<agent_login_id><PhonebookID>Contacts
Accept Outbound Preview Callagent_callAcceptOutboundPreview#<agent_login_id><dialog_id>,<ACCEPT>Inbound CallPass ACCEPT as a second parameter if you want to accept preview outbound call
Reject Outbound Preview Callagent_callRejectOutboundPreview#<agent_login_id><dialog_id>,<REJECT>Inbound CallPass REJECT as a second parameter if you want to reject preview outbound call
Close Outbound Preview Callagent_callCloseOutboundPreview#<agent_login_id><dialog_id>,<CLOSE>Inbound CallPass CLOSE as a second parameter if you want to close preview outbound call

Supervisor Commands

Input MessageCategoryMessage TypeMessage ParametersExpected OutputComments
Get Queue Infosupervisor_queue_infogetqueuelist#<agent_login_Id>



Silent Monitor (Supervisor Function)supervisor_dialogsilentmonitor#<agent_login_Id><Agent_Extension>

End Silent Monitor (Supervisor Function)supervisor_dialogendsilentmonitor#<agent_login_Id><Dialog_ID>

Drop Participant (Supervisor Function)supervisor_dialogdropparticipant#<agent_login_Id><Agent_Extension>,<Dialog_ID>

Get Team Users (Supervisor Function)supervisor_teamgetteamusers#<agent_login_Id>

<TeamID>,<true>


If you want to get team user and also want to subscribe team events then pass

"<true>" as an extra parameter.

Otherwise just pass 

<TeamID>

Get Team Users State (Supervisor Function)supervisor_team_member_stategetteamuserstate#<agent_login_Id><Team_Agent_LoginID>
Not implemented in client yet
Make a Barge Callagent_callbargein#<agent_login_Id><Team_Agent_LoginID >,<Dialog_ID>

Admin Commands

Input MessageCategoryMessage TypeMessage ParametersExpected OutputComments
Get Team and Global PhonebooksphonebookGetPhonebooks#<agent_login_id>
Phonebooks
Get Contacts of a PhonebookcontactsGetPhonebookContacts#<agent_login_id><PhonebookID>Contacts
Get Team PhonebooksphonebookGetTeamPhonebooks#<agent_login_id>
Phonebooks

GC Events

GC events as published by GC after receiving Finesse events:

System Status

AttributeValueDescriptionSample Output
typeSystem
System
{
"type": "System",
"status": "OUT_OF_SERVICE"
}
status
IN_SERVICE | OUT_OF_SERVICE

Agent Info 

AttributeValueDescriptionSample Output
typeAgentInfo
Agent Info
{
  "type": "AgentInfo",
  "firstName": "jehanzeb4",
  "lastName": "riaz",
  "supervisor": false,
  "wrapUpOnIncoming": "",
  "teams": [],
  "team": {
    "id": "7",
    "name": "Demo"
  },
  "agentId": "jehanzeb4"
}
firstName
Agent's first name
lastName
Agent's last name
supervisortrue | falseIs this agent a supervisor?
wrapUpOnIncoming

teams
If the agent is a supervisor, it's an array of all teams. Each element is a team object as defined below. 
team
Agent's team
agentId
Agent ID


Agent State 

AttributeValueDescriptionSample Output
typeState
Agent State
{
  "type": "State",
  "agentId": "jehanzeb6",
  "state": "NOT_READY",
  "reasonCode": "8",
  "stateChangeTimeString": "",
  "pendingState": "",
  "stateChangeTime": "2019-09-17 12:46:21"
}
agentId
Agent ID
StateAgent state

From one of the following agent states: 

UNKNOWN,
READY,
NOT_READY,
LOGOUT,
TALKING,
RESERVED,
RESERVED_OUTBOUND,
RESERVED_OUTBOUND_PREVIEW,
WORK,
WORK_READY,
HOLD

reasonCode
Not Ready reason codes as defined in Finesse
stateChangeTimeString
not used
pendingState
Only available with UCCE and as passed by Cisco Finesse
stateChangeTime2019-09-17 12:46:21Date & Time of state change

Inbound Call State

AttributeValueDescriptionSample Output
typeInboundCallAttributes may vary for each type of Call object.
Agent Call
{
  "type": "InboundCall",
  "dialogId": "16871253",
  "state": "INITIATED",
  "startTime": "2019-09-17 15:32:15",
  "prevDialogId": null,
  "fromAddress": "4012",
  "callVariables": [
    {
      "callVariable1": ""
    },
    {
      "callVariable2": ""
    },
    {
      "callVariable3": ""
    },
    {
      "callVariable4": ""
    },
    {
      "callVariable5": ""
    },
    {
      "callVariable6": ""
    },
    {
      "callVariable7": ""
    },
    {
      "callVariable8": ""
    },
    {
      "callVariable9": ""
    },
    {
      "callVariable10": ""
    },
    {
      "ani": "4012"
    }
  ],
  "participants": [
    {
      "mediaAddress": "1006",
      "state": "INITIATED",
      "addressType": "AGENT_DEVICE"
    }
  ],
  "agentId": "jehanzeb6"
}
dialogID
Finesse Dialog ID
state
One of the Finesse dialog states
startTime
The start time of the call 
prevDialogId
Finesse Dialog ID
fromAddress
A number from an inbound call is placed
callVariables
A total of 10 call variables as received from Finesse
participants
Participants engaged in the call
agentId
Agent ID

New Inbound Call

AttributeValueDescriptionSample Output
typeNewInboundCall
New Call
{
  "type": "NewInboundCall",
  "dialogId": "16871263",
  "fromAddress": "1006",
  "callVariables": [
    {
      "callVariable1": ""
    },
    {
      "callVariable2": ""
    },
    {
      "callVariable3": ""
    },
    {
      "callVariable4": ""
    },
    {
      "callVariable5": ""
    },
    {
      "callVariable6": ""
    },
    {
      "callVariable7": ""
    },
    {
      "callVariable8": ""
    },
    {
      "callVariable9": ""
    },
    {
      "callVariable10": ""
    },
    {
      "ani": "1006"
    }
  ],
  "agentId": "jehanzeb4"
}
dialogID
Finesse Dialog ID
fromAddress
A number from an inbound call is placed
callVariables
A total of 10 call variables as received from Finesse
agentId
Agent ID


Reason Codes 

AttributeValueDescriptionSample Output
typeReasonCodes
Reason Codes
{
"type": "ReasonCodes",
"category": "WrapUp",
"reasonCodes": [
{
"1": "Complaint"
},
{
"2": "Inquiry New"
},
{
"3": "Conf call"
},
{
"4": "Transfer call"
},
{
"5": "Customer new call"
},
{
"6": "Old call customer"
},
{
"7": "Bill Inquiry"
}
],
"agentId": "jehanzeb4"
}
categoryWrapUp | LOGOUT | NOT_READYas passed in the request
reasonCodes
key-value pair of defined reason codes of the specified category
agentId
Agent ID

Consult Call State

AttributeValueDescriptionSample Output
typeConsultCall
Consult Call States
{
"type": "ConsultCall",
"state": "INITIATED",
"assDialogId": "16871288",
"fromAddress": "1004",
"toAddress": "1006",
"startTime": "2019-09-17 17:17:03",
"callVariables": [
{
"callVariable1": ""
},
{
"callVariable2": ""
},
{
"callVariable3": ""
},
{
"callVariable4": ""
},
{
"callVariable5": ""
},
{
"callVariable6": ""
},
{
"callVariable7": ""
},
{
"callVariable8": ""
},
{
"callVariable9": ""
},
{
"callVariable10": ""
},
{
"ani": "1004"
}
],
"participants": [
{
"mediaAddress": "1004",
"state": "INITIATED",
"addressType": "AGENT_DEVICE"
}
],
"agentId": "jehanzeb4"
}
stateINITIATING | INITIATEDstate of call
assDialogId

This is an associated Dialog ID.

In case of consult call, dialogId is named as  assDialogId

startTime
Starting Time of call 
fromAddress
A number from which consult call is initiated
toAddress
A number to which the consult call is requested
callVariables
Call Variables in Finesse
participants
Participants engaged in call
agentId
Agent ID

Release Call Output

AttributeValueDescriptionSample Output
typeInboundCall
Dropped Call
{
  "type": "InboundCall",
  "dialogId": "16871284",
  "prevDialogId": null,
  "state": "DROPPED",
  "agentId": "jehanzeb6"
}
dialogId
ID of the call
prevDialogIdnullprevDialogId is not null if call is being transferred to another agent
state
state of call
agentId
Agent Id

Complete Conference

AttributeValueDescriptionSample Output
typeInboundCall
Complete Conference
{
  "type": "InboundCall",
  "dialogId": "16871286",
  "state": "ACTIVE",
  "startTime": "2019-09-17 17:16:10",
  "prevDialogId": null,
  "fromAddress": "1005",
  "callVariables": [
    {
      "callVariable1": ""
    },
    {
      "callVariable2": ""
    },
    {
      "callVariable3": ""
    },
    {
      "callVariable4": ""
    },
    {
      "callVariable5": ""
    },
    {
      "callVariable6": ""
    },
    {
      "callVariable7": ""
    },
    {
      "callVariable8": ""
    },
    {
      "callVariable9": ""
    },
    {
      "callVariable10": ""
    },
    {
      "ani": "1005"
    }
  ],
  "participants": [
    {
      "mediaAddress": "1005",
      "state": "ACTIVE",
      "addressType": ""
    },
    {
      "mediaAddress": "1004",
      "state": "ACTIVE",
      "addressType": "AGENT_DEVICE"
    },
    {
      "mediaAddress": "1006",
      "state": "ACTIVE",
      "addressType": "AGENT_DEVICE"
    }
  ],
  "agentId": "jehanzeb4"
}
dialogId
DialogId is id of the call
stateActiveStates in Finnese
startTime
Starting Time of call 
prevDialogIdnullDialog Id in Finesse
fromAddress
A number from an inbound call is placed
callVariables
 Call Variables in Finesse
participants
Participants engaged in call
agentId
Agent ID

Transfer Call

AttributeValueDescriptionSample Output
typeInboundCall
Complete Transfer
{
  "type": "InboundCall",
  "dialogId": "16874257",
  "state": "HELD",
  "startTime": "2019-09-20 16:25:14",
  "prevDialogId": null,
  "fromAddress": "1005",
  "callVariables": [
    {
      "callVariable1": ""
    },
    {
      "callVariable2": ""
    },
    {
      "callVariable3": ""
    },
    {
      "callVariable4": ""
    },
    {
      "callVariable5": ""
    },
    {
      "callVariable6": ""
    },
    {
      "callVariable7": ""
    },
    {
      "callVariable8": ""
    },
    {
      "callVariable9": ""
    },
    {
      "callVariable10": ""
    },
    {
      "ani": "1005"
    }
  ],
  "participants": [
    {
      "mediaAddress": "1005",
      "state": "ACTIVE",
      "addressType": ""
    },
    {
      "mediaAddress": "1004",
      "state": "HELD",
      "addressType": "AGENT_DEVICE"
    }
  ],
  "agentId": "jehanzeb4"
}
dialogId
Dialog Id in Finesse
stateHeldStates in Finnese
startTime
Starting Time of call 
prevDialogIdnullDialog Id in Finesse
fromAddress
A number from an inbound call is placed
callVariables
Call Variables in Finesse
participants
Participants engaged in call
agentId
Agent ID

Get Dialog State

AttributeValueDescriptionSample Output
typeDialogState
Dialog State
{
  "type": "DialogState",
  "dialogId": "16871286",
  "state": "HELD",
  "agentId": "jehanzeb6"
}
dialogId
Dialog Id in Finesse
stateINITIATED | ALERTING | ACTIVE | HELD | NOT_FOUNDThis is state of the call
agentId
Agent ID

Get All Agents

AttributeValueDescriptionSample Output
typeAgents
Get All Agents
[ 
   { 
      "type":"Agents",
      "users":[ 
         { 
            "firstName":"jehanzeb6",
            "lastName":"riaz",
            "extension":"1006"
         },
         { 
            "firstName":"jehanzeb7",
            "lastName":"riaz",
            "extension":"1007"
         }
      ]
   }
]
users
List of login agents

Get Team User

AttributeValueDescriptionSample Output
typeAgents
Get All Agents
[ 
   { 
      "type":"Agents",
      "users":[ 
         { 
            "firstName":"jehanzeb6",
            "lastName":"riaz",
            "extension":"1006"
         },
         { 
            "firstName":"jehanzeb7",
            "lastName":"riaz",
            "extension":"1007"
         }
      ]
   }
]
users
List of team user

Phonebooks

AttributeValueDescriptionSample Output (JSON)Sample Output (Default)
typeobjectList of phonebooks
[
   {
      "type":"Phonebooks",
      "phonebooks":[
         {
            "name":<name>,
            "id":<phonebookId>
         },
         {
            "name":BookName2,
            "id":PhonebookId2
         }
      ]
   }
]
[Phonebooks#<BookName1>=<id1>|<BookName2>=<id2>...]

Contacts

AttributeValueDescriptionSample Output (JSON)Sample Output (Default)
typeobjectList of contacts
[
   {
      "type":"PhonebookContacts",
      "phonebookId":"<PhonebookID>",
      "contacts":[
         {
            "firstName":<fname>,
            "lastName":<lname>,
            "phoneNumber":<number>,
            "contactId":<contactId>
         },
      ]
   }
]
[PhonebookContacts#PhonebookId#name=<firstAndLastName>,phoneNumber=<phoneNumber>,contactId=<contactId>|name=<firstAndLastName>,phoneNumber=<phoneNumber>,contactId=<contactId>...]

GC Output Messages


Output Message NameJMS TypeMessageCategoryComments
O-001Send Agent StateNil<agent_login_Id>#State#<agent_current_state>#<agent_full_name>(old format)
<agent_login_Id>#State#<agent_current_state>#<reasonCodeId>#<agent_full_name>(New format)
agent_state
O-002ErrorindicationmessageNil<agent_login_Id>#Error#<Error_Message>agent_errorDetails of errors can be found here
O-003Printmessage in agent windowas sentNil<agent_login_Id>#Control#PrintStatusBar#<Message_To_Agent>agent_control
O-004System In ServiceNilSystem#IN_SERVICEsystem
O-005System Out of ServiceNilSystem#OUT_OF_SERVICEsystem
O-006Indication that an agent is logged out - use O-001Nil<agent_login_Id>#LOGOUTagent_state
O-007Agent not foundNil<agent_login_Id>#State#RE_LOGINagent_statea) Indication that an agent is not found in EF Generic Connector.
b) It also indicates that the GC didn't have agent extension in agent structure while checking agent subscription status. GC therefore requests client to RE_LOGIN. This situation may occur when an abnornal failover happens from one GC to the other.

The client should attempt to re-login the agent by sending following requests to GC.
i) I-021, (ii) I-001
O-008Inbound Call StateNil<agent_login_Id>#InboundCall#<Inboundcall_current_state>#DialogID:<dialog_ID>#<agent_full_name> (Old Format)
<agent_login_Id>#InboundCall#<Inboundcall_current_state>#DialogID:<dialog_ID>#<fromAddress>#<CallVariables>#<call_start_time>#<agent_full_name> (New Format)
<agent_login_Id>#InboundCall#FAILED#DialogID:<dialog_ID>#<Failure_Cause>#<agent_full_name> (In case of Call Failed)
agent_call“#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)
"<CallVariables>" Format: <callvariable1>=value|<callvariable2>=value|<callvariable3>=value|.........
"<call_start_time>": Shows the agent start time in call , Format: "yyyy-MM-dd HH:mm:ss"
O-009New Inbound CallNil<agent_login_Id>#NewInboundCall#<from_address>#<ani>,<callvariable1,callvariable2,..>#DialogID:<dialog_ID> (Old Format)
<agent_login_Id>#NewInboundCall#<from_address>#<ani>|<callvariable1>=value|<callvariable2>=value|<callvariable3>=value|..>#DialogID:<dialog_ID>(New format)
agent_call
O-010Indication of a consult call state4Nil<agent_login_Id>#ConsultCall#<ConsultCall_current_state>#AssDialogID:<associated_dialog_ID> (Old Format)
<agent_login_Id>#ConsultCall#<ConsultCall_current_state>#AssDialogID:<associated_dialog_ID>#<fromAddress>#<Call_Variable>#<call_start_time>#<agent_full_name> (New Format)
<agent_login_Id>#ConsultCall#FAILED#AssDialogID:<associated_dialog_ID>#<Failure_Cause>#<Agent_Name> (In case of Call Failure)
agent_call<ConsultCall_current_state> will be equal “DROP”in case of (Failed,Dropped,Deleted)
"<call_start_time>": Shows the agent start time in call , Format: "yyyy-MM-dd HH:mm:ss"
O-011Agent info upon loginNil<agent_login_Id>#AgentInfo#<agent_first_name>#<agent_last_name>#<Is_Supervisor>#<wrap_up_mode>#<agent_full_name>agent_infoallowed values for wrap_up mode are:
- OPTIONAL
- REQUIRED
- NOT_ALLOWED
- REQUIRED_WITH_ WRAP_UP_DATA
O-012Supervisor Team InfoNil<agent_supervisor_login_Id>#TeamInfoIDs#TeamID#<agent_team_ID_1>,<agent_team_ID_2>,… #<agent_full_name>supervisor_info
O-013Supervisor Team InfoNil<agent_supervisor_login_Id>#TeamInfoNames#TeamName#<agent_team_name_1>,<agent_team_name_2>,… #<agent_full_name>supervisor_info
O-014Get DialogState ReplyNil<agent_login_Id>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name>#<fromAddress>#<Call-Variables>#<associated_dialog_ID>#AssDialogState#<fromAddress>#<Call-Variables>agent_dialog
O-015Get Dialog State Controls ReplyNil<agent_login_Id>#<dialog_type>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name>agent_dialog
O-016Reason CodesNil<agent_login_Id>#ReasonCodes#Category:<category>#Codes:<code_1>,<code_2>,… #Labels:<label_1>,<label_2>,…#<agent_full_name>agent_work
O-017Controls5Nil<agent_login_Id>#Control#<control_1_index>,<control_1_visibleFlag>|<control_2_index>, <control_2_visibleFlag>|…agent_control
O-018Get Agent State without Agent Controls Reply - DepreciatedNil<agent_login_Id>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name>agent_state
O-019Get Queue Info ReplyNil<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>
supervisor_queue_info
O-020Get Team Users Reply (Supervisor Function)Nil

<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>#
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>#
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>

supervisor_team
O-021Team Member State Changed
(Supervisor Function)
Nil<agent_supervisor_login_Id>#TeamMemberStateChanged#<teamID>#<agent_state>supervisor_team_member_state
O-022Conference Participants
(Supervisor Function)
Nil<agent_supervisor_login_Id>#ConferenceParticipants#<extension_1>,<extension_2>,…supervisor_dialog
O-023Reconnect Agent - Depreciated{Request_JMS_Type}<agent_login_id>#RECONNECT#{Request_message_text}agent_stateIf generic connector receives request from driver for the agent that doesn't exist in GC side, Reconnect request would be sent to driver.  Alongwith this Reconnect request, data of previous command will also be sent to execute after successfull enrollment of agent. Upon receiving this reconnect request, Driver will send 'Connect' and 'GetState' request to GC to register agent. After this, Driver will send actual command (that was returned with Reconnect request) to execute.
O-024Dialog IDs on Failover 
<agent_login_id>#DialogStatus#DialogID#DialogState#AssDialogID#AssDialogState
<agent_login_id>#DialogStatus#<dialog_ID>#DialogState#<fromAddress>#<Call-Variables>#<associated_dialog_ID>#AssDialogState#<fromAddress>#<Call-Variables>
agent_stateIn the case of failover GC sends the Dialog ID and Associated Dialog ID, with states and call type in JMS type
O-025AgentState on Connector SyncNilAgentState#<Agent_Id>#<Agent_Password>#<Agent_Extension>#<SubscriptionTime>connector_syncOn topic "ConnectorSync", the message is sent from one GC to the other.
O-026Reconnect DestinationNilDESTINATION#<Destination_Name>#RECONNECTagent_stateThis new type is now for Destination events
System events have "SYSTEM" as the first keyword to identify the event
Agent events (which currently include call events also) are identified by <Agent_ID>

Destination events will now be identified by "DESTINATION". There wasn't any destination event in the system before
<Destination_Name> refers to the destination which is created. 
O-027System Not ReachableNilSystem#NOT_REACHABLEsystem
O-028New Outbound CallNil<agent_login_Id>#NewOutboundCall#<from_address>#ani=<ani>|<callvariable1>=value|<callvariable2>=value|<callvariable3>=value|..>#DialogID:<dialog_ID>agent_callBA Call variables List (Passed as it is to the GC Client)
-BACampaign
-BAStatus
-BAResponse
-BAAccountNumber
-BADialedListID
-BACampaignID
-BACustomerNumber
-BATimeZone
-BABuddyName
GC Receives two packets from finesse when an outbound call is dialed. GC blocks first packet, as it has some missing information like dialled number, outbound call variables and call type of this packet is OTHER_IN. The second packet contains all the required infromation, hence GC generates NewOutboundCall event for the client.
O-29Get Phonebooks (Administrator Function)NilPhonebooks#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>


O-30Get Team Phonebooks (Administrator Function)Nil

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>



O-31

Get PhoneBook Contacts

(Administrator Function)

NilPhonebookContacts#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>



Errors

Error_CodeError_OriginError DescriptionExpected Driver Behaviour
CF_INVALID_CALLED_DEVICEFinesseThe called device is not validdisplay the error message and continue regular operations
CF_INVALID_CALLING_DEVICEFinesseThe calling device is not validdisplay the error message and continue regular operations
CF_INVALID_CONNECTION_ID_FOR_ACTIVE_CALLFinesseThe active connection ID in the request is invaliddisplay the error message and continue regular operations
CF_INVALID_CONSULT_TYPEFinesseThe consult type is invaliddisplay the error message and continue regular operations
CF_AGENT_ACCOUNT_LOCKED_OUTFinesseThe account is locked outdisplay the error message and continue regular operations
CF_INVALID_CSTA_DEVICE_IDENTIFIERFinesseThe device ID is not valid.display the error message and ask user to enter valid Extension
CF_RESOURCE_BUSYFinesseAn internal resource is busy

CF_INVALID_LOGON_DEVICE_SPECIFIEDFinesseThe request specified an invalid logon device.display the error message and ask user to enter valid Extension
CF_GENERIC_UNSPECIFIED_REJECTIONFinesseThe request has been rejected (no specific details available).

CF_INVALID_OBJECT_STATEFinesseThe object is in the incorrect state for the request.

CF_INVALID_PASSWORD_SPECIFIEDFinesseThe request specified an invalid agent password.Prompt user to supply a valid password
CF_GENERIC_SYSTEM_RESOURCE_AVAILABILITYFinesse        

The request failed due to lack of system resources (no specific details available)
Ref: http://www.cisco.com/en/US/docs/voice_ip_comm/cust_contact/contact_center/crs/express_10_0/programming/guide/UCCX_BK_C239BA3D_00_cti-protocol-developer-guide_chapter_01010.html
E_CTI_INVALID_CALLIDFinesseA request message was received with an invalid CallID value.

USER_NOT_FOUNDFinesseWhen Agent ID isn't found in FinesseDisplay the error message
Configuration update in Siebel / Finesse is required to match Agent definition (ID/Pwd).
Driver/client app should show the error message
GENERAL_ERRORFinessewhen root cause is uncleardisplay the error message and continue regular operations
CF_GENERIC_OPERATIONFinesseAn operation error occurred (no specific details available).display error message according to the last command sent
BAD_DESTINATIONFinesseAgent called to an invalid extensiondisplay the error message and continue regular operations
DOWNGCIOException
When Requester gets no response from Finesse
GC tries to establish connection with the secondary Finesse
display the error message and continue regular operations
LICENSES_EXCEEDEDGCUser license limit exceeded display the error message
MISSING_EXTENSIONGCMissing Extensiondisplay the error message and ask user to enter extension
MISSING_NUMBERGCNumber to dial is missing in requestdisplay the error message and ask user to enter dial number
MISSING_PASSWORDGCPassword is missing in requestdisplay the error message and ask user for credentials
MISSING_REASON_CODEGCGC/Finesse expects reason-code that wasn't provided by the clientdisplay the error message and ask user to provide reason code
NO_DIALOG_IDGCThe requested dialog doesn't exists in GC send getdialogstate request for any active dialogs
NOT_REACHABLEGCSocketTimeoutException
Timeout exception on connecting to Finesse via Requester
After 2 unsuccessful retries, GC tries to establish connection with secondary Finesse
display the error message and continue regular operations
PLEASE_RETRYGCinvalid request params, IOException, request timeoutdisplay the error message and continue regular operations
SUBSCRIPTION_FAILEDGCInvalid credentials supplied for agent logindisplay the error message and ask user to enter valid credentials
UNABLE_TO_SUBSCRIBE_TO_FINESSEGCInvalid credentials supplied for agent logindisplay the error message and ask user to enter valid credentials
WRONG_EXTENSIONGCExtension is not valid (contains alphabetic characters)display the error message and ask user to enter valid Extension
SESSION_INVALIDATEDGCThe current session session for login has been invalidate, user has been logged in from a new destination. GC will send a logout message followed by this messagedisplay the error message and ask user to login again
Note: Some of the error from finesse are mentioned here. Rest of the Finesse errors can be found in this document on page 17: https://drive.google.com/open?id=0B0txXw8kofb1blBxenFmcHBWcms

User Messages

MessageDescription
Error#LICENSES_EXCEEDEDLicense exceeded, please contact system administrator.
Error#SUBSCRIPTION_FAILEDInvalid LoginId / Password.
Error#MISSING_EXTENSIONExtension is missing.
Error#MISSING_PASSWORDPassword not set, please contact system administrator.
Error#CF_INVALID_LOGON_DEVICE_SPECIFIEDIncorrect phone extension.
Error#CF_GENERIC_UNSPECIFIED_REJECTIONPlease reset your phone and try again
Error#CF_RESOURCE_BUSYPhone extension is already in use
Error#FINESSE_UNAVAILABLESystem is not available, it will connect automatically once available.
Error#GENERIC_ERRORAn error occurred, please try again later.
Error#PLEASE_RETRYAn error occurred, please try again later.
Error#NO_DIALOG_IDInvalid operation or call not found.
State#RE_LOGINReconnecting, please wait...
State#LOGOUTYou are Logged out
State#LOGGED_INYou are Logged in
State#READYYour State: Ready
State#NOT_READYYour State: Not Ready
State#RESERVEDYour are Reserved, an inbound call is coming.
State#TALKINGYou are talking.
State#WORKWrap up -> Not Ready
State#WORK_READYWrap up -> Ready
State#UNKNOWNAn error occurred, please refresh your browser.
State#HOLDCall is on hold.
InboundCall#INITIATINGCall is initiated..
InboundCall#INITIATED
InboundCall#ALERTINGCall is ringing..
InboundCall#ACTIVECall is active..
InboundCall#FAILEDCall has failed..
InboundCall#DROPCall has been released..
InboundCall#ACCEPTEDCall is accepted..
ConsultCall#ACTIVEConsult call is active..
ConsultCall#INITIATING
ConsultCall#INITIATED
ConsultCall#ALERTINGConsult call is ringing..
ConsultCall#FAILEDConsult call has failed..
ConsultCall#DROPConsult call has dropped.