Generic Connector JTAPI
A GC client can call this API to connect with Generic Connector.
Agent Commands
Message types and their expected output are mentioned below.
Input Message | Category | Message Type | Message Parameters | Expected Output | Comments |
---|---|---|---|---|---|
Send Heartbeat while not logged in | system |
| |||
Send Heartbeatwhile logged in | system |
| Not implemented in client yet. | ||
Connect AgentID with Client Unique Name | agent_info |
|
| No response | |
Agent Login | agent_state |
|
| ||
Mobile Agent Login | agent_state |
| <agent_password>,<agent_extension>,<agent_phone>,<connection_mode> | Only on UCCE but not tested yet. | |
Agent Logout | agent_state |
| |||
Make agent ready | agent_state |
| |||
Make agent not ready | agent_state |
| |||
Get agent current state | agent_state |
| |||
Not Ready with reason code | agent_state |
|
| ||
Make a call | agent_call |
|
| ||
Answer a call | agent_call |
|
| ||
Hold a call | agent_call |
|
| ||
Unhold a call | agent_call |
|
| ||
Release a call | agent_call |
|
| ||
Get Agent Wrap-up Reason Codes | agent_work |
| |||
Get Agent Logout Reason Codes | agent_state |
| |||
Get Agent Not Ready Reason Codes | agent_state |
| |||
Blind Transfer | agent_call |
|
| Used only in UCCE, will update later. | |
Transfer Initiation | agent_call |
|
| ||
Conference Inititation | agent_call |
|
| ||
Complete Transfer | agent_call |
|
| ||
Complete Conference | agent_call |
|
| ||
Get Dialog State | agent_dialog |
|
| ||
Update Dialog Wrap-up Codes | agent_dialog |
|
| No response is received when this event is called. | |
Logout with Reason | agent_state |
|
| ||
Abrupt Agent Disconnection | agent_state |
| Had do send this message in backend but the output is same as of in Expected Output | ||
Get Dialog State Controls | agent_dialog |
|
| Not implemented in client yet | |
Make Work Not Ready | agent_state |
| Not implemented in client yet | ||
Make Work Ready | agent_state |
| Not implemented in client yet | ||
Get Dialog Participants | agent_call |
|
| Deprecated, Not implemented in client yet | |
Get Logged in Agents | agent_call |
| |||
Update Dialog Variable | agent_call |
|
| Not implemented in client yet | |
Pause Zoom Call Recording | zoom | ZOOMPauseRecording#<agent_login_Id> | |||
Resume Zoom Call Recording | zoom | ZOOMResumeRecording#<agent_login_Id> | |||
Refresh | agent_state | refresh#<agent_login_Id> | |||
Get Team and Global Phonebooks | phonebook |
| |||
Get Contacts of a Phonebook | contacts |
|
| ||
Accept Outbound Preview Call | agent_call | AcceptOutboundPreview#< |
| Pass ACCEPT as a second parameter if you want to accept preview outbound call | |
Reject Outbound Preview Call | agent_call | RejectOutboundPreview#< |
| Pass REJECT as a second parameter if you want to reject preview outbound call | |
Close Outbound Preview Call | agent_call | CloseOutboundPreview#< |
| Pass CLOSE as a second parameter if you want to close preview outbound call |
Supervisor Commands
Input Message | Category | Message Type | Message Parameters | Expected Output | Comments |
---|---|---|---|---|---|
Get Queue Info | supervisor_queue_info |
| |||
Silent Monitor (Supervisor Function) | supervisor_dialog |
|
| ||
End Silent Monitor (Supervisor Function) | supervisor_dialog |
|
| ||
Drop Participant (Supervisor Function) | supervisor_dialog |
|
| ||
Get Team Users (Supervisor Function) | supervisor_team |
|
| If you want to get team user and also want to subscribe team events then pass
Otherwise just pass
| |
Get Team Users State (Supervisor Function) | supervisor_team_member_state |
|
| Not implemented in client yet | |
Make a Barge Call | agent_call |
|
|
Admin Commands
Input Message | Category | Message Type | Message Parameters | Expected Output | Comments |
---|---|---|---|---|---|
Get Team and Global Phonebooks | phonebook |
| |||
Get Contacts of a Phonebook | contacts |
|
| ||
Get Team Phonebooks | phonebook |
|
GC Events
GC events as published by GC after receiving Finesse events:
System Status
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | System | System{
"type": "System",
"status": "OUT_OF_SERVICE"
}
| |
status | IN_SERVICE | OUT_OF_SERVICE |
Agent Info
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | AgentInfo | 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 | ||
supervisor | true | false | Is 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
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | State | Agent State{
"type": "State",
"agentId": "jehanzeb6",
"state": "NOT_READY",
"reasonCode": "8",
"stateChangeTimeString": "",
"pendingState": "",
"stateChangeTime": "2019-09-17 12:46:21"
} | |
agentId | Agent ID | ||
State | Agent state | From one of the following agent states: UNKNOWN, | |
reasonCode | Not Ready reason codes as defined in Finesse | ||
stateChangeTimeString | not used | ||
pendingState | Only available with UCCE and as passed by Cisco Finesse | ||
stateChangeTime | 2019-09-17 12:46:21 | Date & Time of state change |
Inbound Call State
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | InboundCall | Attributes may vary for each type of Call object. | Agent Call |
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 Outbound Preview Call
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | InboundCall | Attributes may vary for each type of Call object. | Agent Call |
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 Outbound Call
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | InboundCall | Attributes may vary for each type of Call object. | Agent Call |
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
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | NewInboundCall | New Call | |
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
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | ReasonCodes | Reason Codes | |
category | WrapUp | LOGOUT | NOT_READY | as passed in the request | |
reasonCodes | key-value pair of defined reason codes of the specified category | ||
agentId | Agent ID |
Consult Call State
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | ConsultCall | Consult Call States | |
state | INITIATING | INITIATED | state 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
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | InboundCall | Dropped Call | |
dialogId | ID of the call | ||
prevDialogId | null | prevDialogId is not null if call is being transferred to another agent | |
state | state of call | ||
agentId | Agent Id |
Complete Conference
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | InboundCall | Complete Conference | |
dialogId | DialogId is id of the call | ||
state | Active | States in Finnese | |
startTime | Starting Time of call | ||
prevDialogId | null | Dialog 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
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | InboundCall | Complete Transfer | |
dialogId | Dialog Id in Finesse | ||
state | Held | States in Finnese | |
startTime | Starting Time of call | ||
prevDialogId | null | Dialog 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
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | DialogState | Dialog State | |
dialogId | Dialog Id in Finesse | ||
state | INITIATED | ALERTING | ACTIVE | HELD | NOT_FOUND | This is state of the call | |
agentId | Agent ID |
Get All Agents
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | Agents | Get All Agents | |
users | List of login agents |
Get Team User
Attribute | Value | Description | Sample Output |
---|---|---|---|
type | Agents | Get All Agents | |
users | List of team user |
Phonebooks
Attribute | Value | Description | Sample Output (JSON) | Sample Output (Default) |
---|---|---|---|---|
type | object | List of phonebooks |
Contacts
Attribute | Value | Description | Sample Output (JSON) | Sample Output (Default) |
---|---|---|---|---|
type | object | List of contacts |
GC Output Messages
Output Message Name | JMS Type | Message | Category | Comments | |
O-001 | Send Agent State | Nil | <agent_login_Id>#State#<agent_current_state>#<agent_full_name>(old format) | agent_state | |
O-002 | Errorindicationmessage | Nil | <agent_login_Id>#Error#<Error_Message> | agent_error | |
O-003 | Printmessage in agent windowas sent | Nil | <agent_login_Id>#Control#PrintStatusBar#<Message_To_Agent> | agent_control | |
O-004 | System In Service | Nil | System#IN_SERVICE | system | |
O-005 | System Out of Service | Nil | System#OUT_OF_SERVICE | system | |
O-006 | Indication that an agent is logged out - use O-001 | Nil | <agent_login_Id>#LOGOUT | agent_state | |
O-007 | Agent not found | Nil | <agent_login_Id>#State#RE_LOGIN | agent_state | a) Indication that an agent is not found in EF Generic Connector. |
O-008 | Inbound Call State | Nil | <agent_login_Id>#InboundCall#<Inboundcall_current_state>#DialogID:<dialog_ID>#<agent_full_name> (Old Format) | 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) |
O-009 | New Inbound Call | Nil | <agent_login_Id>#NewInboundCall#<from_address>#<ani>,<callvariable1,callvariable2,..>#DialogID:<dialog_ID> (Old Format) | agent_call | |
O-010 | Indication of a consult call state4 | Nil | <agent_login_Id>#ConsultCall#<ConsultCall_current_state>#AssDialogID:<associated_dialog_ID> (Old Format) | agent_call | <ConsultCall_current_state> will be equal “DROP”in case of (Failed,Dropped,Deleted) |
O-011 | Agent info upon login | Nil | <agent_login_Id>#AgentInfo#<agent_first_name>#<agent_last_name>#<Is_Supervisor>#<wrap_up_mode>#<agent_full_name> | agent_info | allowed values for wrap_up mode are: |
O-012 | Supervisor Team Info | Nil | <agent_supervisor_login_Id>#TeamInfoIDs#TeamID#<agent_team_ID_1>,<agent_team_ID_2>,… #<agent_full_name> | supervisor_info | |
O-013 | Supervisor Team Info | Nil | <agent_supervisor_login_Id>#TeamInfoNames#TeamName#<agent_team_name_1>,<agent_team_name_2>,… #<agent_full_name> | supervisor_info | |
O-014 | Get DialogState Reply | Nil | <agent_login_Id>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name>#<fromAddress>#<Call-Variables>#<associated_dialog_ID>#AssDialogState#<fromAddress>#<Call-Variables> | agent_dialog | |
O-015 | Get Dialog State Controls Reply | Nil | <agent_login_Id>#<dialog_type>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name> | agent_dialog | |
O-016 | Reason Codes | Nil | <agent_login_Id>#ReasonCodes#Category:<category>#Codes:<code_1>,<code_2>,… #Labels:<label_1>,<label_2>,…#<agent_full_name> | agent_work | |
O-017 | Controls5 | Nil | <agent_login_Id>#Control#<control_1_index>,<control_1_visibleFlag>|<control_2_index>, <control_2_visibleFlag>|… | agent_control | |
O-018 | Get Agent State without Agent Controls Reply - Depreciated | Nil | <agent_login_Id>#DialogState#<dialog_state>#<dialog_ID>#<agent_full_name> | agent_state | |
O-019 | Get Queue Info Reply | Nil | <agent_supervisor_login_Id>#QueueList# | supervisor_queue_info | |
O-020 | Get Team Users Reply (Supervisor Function) | Nil | <agent_supervisor_login_Id>#TeamUsersList#FirstName:<user_1_firstName>,LastName:<user_1_lastName>,Extension:<user_1_extension>, | supervisor_team | |
O-021 | Team Member State Changed | Nil | <agent_supervisor_login_Id>#TeamMemberStateChanged#<teamID>#<agent_state> | supervisor_team_member_state | |
O-022 | Conference Participants | Nil | <agent_supervisor_login_Id>#ConferenceParticipants#<extension_1>,<extension_2>,… | supervisor_dialog | |
O-023 | Reconnect Agent - Depreciated | {Request_JMS_Type} | <agent_login_id>#RECONNECT#{Request_message_text} | agent_state | If 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-024 | Dialog IDs on Failover | <agent_login_id>#DialogStatus#DialogID#DialogState#AssDialogID#AssDialogState | agent_state | In the case of failover GC sends the Dialog ID and Associated Dialog ID, with states and call type in JMS type | |
O-025 | AgentState on Connector Sync | Nil | AgentState#<Agent_Id>#<Agent_Password>#<Agent_Extension>#<SubscriptionTime> | connector_sync | On topic "ConnectorSync", the message is sent from one GC to the other. |
O-026 | Reconnect Destination | Nil | DESTINATION#<Destination_Name>#RECONNECT | agent_state | This new type is now for Destination events |
O-027 | System Not Reachable | Nil | System#NOT_REACHABLE | system | |
O-028 | New Outbound Call | Nil | <agent_login_Id>#NewOutboundCall#<from_address>#ani=<ani>|<callvariable1>=value|<callvariable2>=value|<callvariable3>=value|..>#DialogID:<dialog_ID> | agent_call | BA Call variables List (Passed as it is to the GC Client) |
O-29 | Get Phonebooks (Administrator Function) | Nil | Phonebooks#name:<phonebook_1_name>,type:<phonebook_1_type>,id:<phonebook_1_id> | ||
O-30 | Get Team Phonebooks (Administrator Function) | Nil | TeamPhoneBooks#name:<phonebook_1_name>,type:<phonebook_1_type>,id:<phonebook_1_id> | ||
O-31 | Get PhoneBook Contacts (Administrator Function) | Nil | PhonebookContacts#description:<contact_1_description>,firstName:<contact_1_firstName>,lastName:<contact_1_lastName>,phoneNumber:<contact_1_phoneNumber>,id:<contact_1_id> |
Errors
Error_Code | Error_Origin | Error Description | Expected Driver Behaviour | |
CF_INVALID_CALLED_DEVICE | Finesse | The called device is not valid | display the error message and continue regular operations | |
CF_INVALID_CALLING_DEVICE | Finesse | The calling device is not valid | display the error message and continue regular operations | |
CF_INVALID_CONNECTION_ID_FOR_ACTIVE_CALL | Finesse | The active connection ID in the request is invalid | display the error message and continue regular operations | |
CF_INVALID_CONSULT_TYPE | Finesse | The consult type is invalid | display the error message and continue regular operations | |
CF_AGENT_ACCOUNT_LOCKED_OUT | Finesse | The account is locked out | display the error message and continue regular operations | |
CF_INVALID_CSTA_DEVICE_IDENTIFIER | Finesse | The device ID is not valid. | display the error message and ask user to enter valid Extension | |
CF_RESOURCE_BUSY | Finesse | An internal resource is busy | ||
CF_INVALID_LOGON_DEVICE_SPECIFIED | Finesse | The request specified an invalid logon device. | display the error message and ask user to enter valid Extension | |
CF_GENERIC_UNSPECIFIED_REJECTION | Finesse | The request has been rejected (no specific details available). | ||
CF_INVALID_OBJECT_STATE | Finesse | The object is in the incorrect state for the request. | ||
CF_INVALID_PASSWORD_SPECIFIED | Finesse | The request specified an invalid agent password. | Prompt user to supply a valid password | |
CF_GENERIC_SYSTEM_RESOURCE_AVAILABILITY | Finesse | | ||
E_CTI_INVALID_CALLID | Finesse | A request message was received with an invalid CallID value. | ||
USER_NOT_FOUND | Finesse | When Agent ID isn't found in Finesse | Display the error message | |
GENERAL_ERROR | Finesse | when root cause is unclear | display the error message and continue regular operations | |
CF_GENERIC_OPERATION | Finesse | An operation error occurred (no specific details available). | display error message according to the last command sent | |
BAD_DESTINATION | Finesse | Agent called to an invalid extension | display the error message and continue regular operations | |
DOWN | GC | IOException | display the error message and continue regular operations | |
LICENSES_EXCEEDED | GC | User license limit exceeded | display the error message | |
MISSING_EXTENSION | GC | Missing Extension | display the error message and ask user to enter extension | |
MISSING_NUMBER | GC | Number to dial is missing in request | display the error message and ask user to enter dial number | |
MISSING_PASSWORD | GC | Password is missing in request | display the error message and ask user for credentials | |
MISSING_REASON_CODE | GC | GC/Finesse expects reason-code that wasn't provided by the client | display the error message and ask user to provide reason code | |
NO_DIALOG_ID | GC | The requested dialog doesn't exists in GC | send getdialogstate request for any active dialogs | |
NOT_REACHABLE | GC | SocketTimeoutException | display the error message and continue regular operations | |
PLEASE_RETRY | GC | invalid request params, IOException, request timeout | display the error message and continue regular operations | |
SUBSCRIPTION_FAILED | GC | Invalid credentials supplied for agent login | display the error message and ask user to enter valid credentials | |
UNABLE_TO_SUBSCRIBE_TO_FINESSE | GC | Invalid credentials supplied for agent login | display the error message and ask user to enter valid credentials | |
WRONG_EXTENSION | GC | Extension is not valid (contains alphabetic characters) | display the error message and ask user to enter valid Extension | |
SESSION_INVALIDATED | GC | The 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 message | display 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
Message | Description |
Error#LICENSES_EXCEEDED | License exceeded, please contact system administrator. |
Error#SUBSCRIPTION_FAILED | Invalid LoginId / Password. |
Error#MISSING_EXTENSION | Extension is missing. |
Error#MISSING_PASSWORD | Password not set, please contact system administrator. |
Error#CF_INVALID_LOGON_DEVICE_SPECIFIED | Incorrect phone extension. |
Error#CF_GENERIC_UNSPECIFIED_REJECTION | Please reset your phone and try again |
Error#CF_RESOURCE_BUSY | Phone extension is already in use |
Error#FINESSE_UNAVAILABLE | System is not available, it will connect automatically once available. |
Error#GENERIC_ERROR | An error occurred, please try again later. |
Error#PLEASE_RETRY | An error occurred, please try again later. |
Error#NO_DIALOG_ID | Invalid operation or call not found. |
State#RE_LOGIN | Reconnecting, please wait... |
State#LOGOUT | You are Logged out |
State#LOGGED_IN | You are Logged in |
State#READY | Your State: Ready |
State#NOT_READY | Your State: Not Ready |
State#RESERVED | Your are Reserved, an inbound call is coming. |
State#TALKING | You are talking. |
State#WORK | Wrap up -> Not Ready |
State#WORK_READY | Wrap up -> Ready |
State#UNKNOWN | An error occurred, please refresh your browser. |
State#HOLD | Call is on hold. |
InboundCall#INITIATING | Call is initiated.. |
InboundCall#INITIATED | |
InboundCall#ALERTING | Call is ringing.. |
InboundCall#ACTIVE | Call is active.. |
InboundCall#FAILED | Call has failed.. |
InboundCall#DROP | Call has been released.. |
InboundCall#ACCEPTED | Call is accepted.. |
ConsultCall#ACTIVE | Consult call is active.. |
ConsultCall#INITIATING | |
ConsultCall#INITIATED | |
ConsultCall#ALERTING | Consult call is ringing.. |
ConsultCall#FAILED | Consult call has failed.. |
ConsultCall#DROP | Consult call has dropped. |