Skip to main content
Skip table of contents

Developer Guide

Abbreviations


Short Name

Full Name

CC

CUCM Connector

GC-Client

Generic Connector Client Application

AMQ

ActiveMQ

Introduction

Purpose of this document

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

Before You Start

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

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

Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, 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 a language other than Java, you can find examples in the respective technology on the ActiveMQ site.

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

CUCM Connector Communication Architecture

<Make diagram here showing CC-Client, CC, AMQ, CUCM>

  • Describe a little bit about broker-based communication using AMQ 
  • On which protocol and ports CC communicate with AMQ
  • The client is expected to subscribe to 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.

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

Message Pattern

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

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!

There are two patterns being used for the event listening!

Default Pattern

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

An event is actually a JSON packet sent to the topic!

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 the error. See All Errors

Client Communication Use Cases

There may be 2 types of CC-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 the proper establishment of a connection with CC before invoking any agent operations. 

To establish a connection with CC via AMQ, 

  1. CC-Client should create an AMQ topic (Client Destination) where this client will listen.
  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.

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

All Commands

Following is the list of all possible commands supported by CC. Each of the commands is explained with parameters supplied, events expected against the command, and possible errors 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 be discarded by AMQ. It needs to do so that the old command should not be processed. 

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

Command: Hello

JMS-Type

Hello#<Client_Destination>

JMS-Body


<Client_Destination>

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

Expected Event (s)

Default Formate

There can be two possible events:

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

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

Login

The Login command is used to actually log in to CUCM. This command actually registers the IP phone with CUCM. Login command parameters are agent extension, dummy_value, and dummy_value. In case of a successful login, CC 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_extension>

JMS-Body

<client_destination>

<agent_extension>

Agent extension of the IP Phone

Expected Event (s)

Three events will be sent:

  1. DialogState(IDLE)

Possible Error (s)

The following errors are possible:

  1. USER_NOT_FOUND
  2. MISSING_EXTENSION
  3. GENERAL_ERROR
  4. LICENSES_EXCEEDED

Logout

The Login command is used to actually log in to CUCM. This command actually registers the IP phone with CUCM. Login command parameters are agent extension, dummy_value, and dummy_value. In case of a successful login, CC 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

Logout#<agent_extension>

JMS-Body


<agent_extension>

Agent extension of the IP Phone

Expected Event (s)

Three events will be sent:

  1. DialogState(LOGOUT)

Possible Error (s)

The following errors are possible:

  1. USER_NOT_FOUND
  2. MISSING_EXTENSION
  3. GENERAL_ERROR
  4. LICENSES_EXCEEDED

Make a Call

This command allows a user to make a call. Source IP phone diales the destination extension and make a call. 

Command: MakeCall

JMS-Type

MakeCall#<agent_login_Id>

JMS-Body

<Extension_Number>

<agent_login_Id>

Extension number of the source IP Phone

<Extension_Number>

Extension of the other IP Phone.

Expected Event (s)

The following events will arrive:

  1. DialogState (Active)
  2. InboundCall (INITIATING)
  3. InboundCall (DIALING)
  4. InboundCall (CONNECTED)
  5. InboundCall (DISCONNECTED)

Possible Error (s)

  1. PLEASE_RETRY
  2. MISSING_NUMBER
  3. INVALID_PARTY
  4. PRIVILLEGE_VIOLATION
  5. CF_INVALID_OBJECT_STATE
  6. CF_GENERIC_UNSPECIFIE

Answer a Call

This command allows a user to answer an incoming call. Via NEW INBOUND Call event, we receive the details about the other extension. 

Command: AnswerCall

JMS-Type

AnswerCall# <agent_login_Id>

JMS-Body

<ConnectionId>

<agent_login_Id>

Extension Number of the logged agent.

<Coonectid_ID>

 Id of the call connection, to whom we have to receive the call

Expected Event (s)

The following events will arrive in a sequence:

  1. InboundCall (Connected)
  2. DialogState (Active)

Possible Error (s)


  1. CF_GENERIC_UNSPECIFIED
  2. MISSING_NUMBER
  3. USER_NOT_FOUND
  4. INVALID_PARTY
  5. PRIVILLEGE_VIOLATION
  6. CF_INVALID_OBJECT_STATE

Release a Call

This command allows a user to drop a call.

Command: ReleaseCall

JMS-Type

ReleaseCall# <agent_login_Id>

JMS-Body

<ConnectionId>

<agent_login_Id>

Extension Number of the logged agent.

<Dialog_ID>

Id of the call connection, to whom we have to release the call

Expected Event (s)

The following events will arrive in a sequence:

  1. InboundCall (DISCONNECTED)
  2. DialogState

Possible Error (s)


  1. USER_NOT_FOUND
  2. INVALID_PARTY
  3. PRIVILLEGE_VIOLATION
  4. CF_INVALID_OBJECT_STATE
  5. CF_GENERIC_UNSPECIFIED

Hold a Call

This command allows a user to drop a call.

Command: ReleaseCall

JMS-Type

HoldCall# <agent_login_Id>

JMS-Body

<ConnectionId>

<agent_login_Id>

Extension Number of the logged agent.

<Coonection_ID>

Id of the call connection, to whom we have to Holdthe call

Expected Event (s)

The following events will arrive in a sequence:

  1. InboundCall (HOLD)

Possible Error (s)


  1. USER_NOT_FOUND
  2. INVALID_PARTY
  3. PRIVILLEGE_VIOLATION
  4. CF_INVALID_OBJECT_STATE
  5. CF_GENERIC_UNSPECIFIED

Retrieve a Call

This command allows a user to drop a call.

Command: ReleaseCall

JMS-Type

RetrieveCall# <agent_login_Id>

JMS-Body

<ConnectionId>

<agent_login_Id>

Extension Number of the logged agent.

<Coonection_ID>

Id of the call connection, to whom we have to retrieve the call

Expected Event (s)

The following events will arrive in a sequence:

  1. InboundCall (Connected)

Possible Error (s)


  1. USER_NOT_FOUND
  2. INVALID_PARTY
  3. PRIVILLEGE_VIOLATION
  4. CF_INVALID_OBJECT_STATE
  5. 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>,<ConnectionId>

<agent_login_Id>

Extension Number of the logged agent.

<Connection_ID>

Id of the call connection, to whom we have to transfer

<Other_Party_Extension_Number>

Extension of the other agent.

Expected Event (s)

The following events will arrive:

    1. DialogState (HOLD)
    2. DialogState (CONNECTED)
    3. InboundCall (ACTIVE)
    4. InboundCall (DIALING)
    5. InboundCall (ALERTING)
    6. InboundCall (Disconnected)   
    7. DialogState (ACTIVE)

    Possible Error (s)


    1. USER_NOT_FOUND
    2. INVALID_PARTY
    3. PRIVILLEGE_VIOLATION
    4. CF_INVALID_OBJECT_STATE
    5. CF_GENERIC_UNSPECIFIED

    Consult Call 

    This command allows a user to initiate a consult call with another 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>,<ConnectionId>

    <agent_login_Id>

    Login id of the agent.

    <Connection_ID>

    Id of the call connection, to whom we have to transfer

    <Other_Party_Extension_Number>

    Extension of the other agent.

    Expected Event (s)

    The following events will arrive:

    1. DialogState (HOLD)
    2. DialogState (CONNECTED)
    3. InboundCall (ACTIVE)
    4. InboundCall (DIALING)
    5. InboundCall (ALERTING)
    6. InboundCall (Disconnected)   
    7. DialogState (ACTIVE)

    Possible Error (s)

    1. CF_GENERIC_UNSPECIFIED
    2. MISSING_NUMBER
    3. USER_NOT_FOUND

    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

    <Connection_ID>

    <agent_login_Id>

    Login id of the agent.

    <Connection_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 (Disconnected)
    2. InboundCall (Connected)  
    3. DialogState

    Possible Error (s)

    1. CF_GENERIC_UNSPECIFIED
    2. MISSING_NUMBER
    3. USER_NOT_FOUND

    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

    <Dialog_ID>

    <agent_login_Id>

    Login id of the agent.

    <Dialog_ID>

    The ID of new inbound call  (Main Call Dialog Id)

    Expected Event (s)

    The following events will arrive:

    1. DIalogState
    2. InboundCall (Conference)  
    3. InboundCall (Disconnected)

    Possible Error (s)

    1. CF_GENERIC_UNSPECIFIED
    2. MISSING_NUMBER
    3. USER_NOT_FOUND

    GetState

    This command allows a user to drop a call.

    Command: ReleaseCall

    JMS-Type

    GetState# <agent_login_Id>

    JMS-Body


    <agent_login_Id>

    Extension Number of the logged agent.

    Expected Event (s)

    The following events will arrive in a sequence:

    1. State

    Possible Error (s)

    1. CF_GENERIC_UNSPECIFIED

    All Events

    System#IN_SERVICE

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

    Default Format

    Event: System#IN_SERVICE

    JMS-Type

    NULL

    JMS-Body

    System#IN_SERVICE

    Event Category

    System

    JSON Format

    AttributeValueDescriptionJSON Payload

    type

    System

    Name of the event type

    System

    JS
    {
    "type": "System",
    "status": "IN_SERVICE"
    }
    

    status

    • IN_SERVICE
    • OUT_OF_SERVICE
    Status of the CUCM

    System#OUT_OF_SERVICE

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

    Default Format

    Event: System#OUT_OF_SERVICE

    JMS-Type

    NULL

    JMS-Body

    System#OUT_OF_SERVICE

    Event Category

    System

    JSON Format

    AttributeValueDescriptionJSON Payload

    type

    System

    Name of the event type

    System

    JS
    {
    "type": "System",
    "status": "OUT_OF_SERVICE"
    }
    

    status

    • IN_SERVICE
    • OUT_OF_SERVICE
    Status of the CUCM

    Note: Above events can also be received in case of CUCM is down or up!

    Terminal#CiscoTermInServiceEv \ Terminal#CiscoTermOutServiceEv

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

    Default Format

    Event: System#IN_SERVICE

    JMS-Type

    NULL

    JMS-Body

    Terminal#CiscoTermInServiceEv

    Event Category

    System

    JSON Format

    AttributeValueDescriptionJSON Payload

    type

    System

    Name of the event type

    System

    JS
    {
    "type": "Terminal",
    "status": "CiscoTermInServiceEv"
    }
    

    status

    • CiscoTermInServiceEv
    • CiscoTermOutServiceEv
    Status of the CUCM

    DialogState

    DialogState describes the current state of the call. Normally CC sends this event during call state change.

    Default Format

    Event: State

    JMS-Type

    NULL

    JMS-Body

    <agent_login_Id>#DialogState#<agent_current_state>#<agent_StateChangeTimeString>

    <agent_login_Id>

    Agent IP Phone Extension

    <agent_current_state>

    Current State of Agent. Possible states are:

    • IDLE (In this state, the Call has zero Connections)
    • ACTIVE (A Call with some current ongoing activity is in this state.)
    • INVALID (Call after disconnection will send this state)
    <agent_StateChangeTimeString>time on state change

    Event Category

    agent_state

    JSON Format

    AttributeValueDescription

    type

    DialogState
    Name of the event type

    System

    JS
    {
    	"agentId":"42031",
    	"participants":[],
    	"connectionID":"52129051",
    	"startTime":1658337036689,
    	"state":"DISCONNECTED",
    	"type":"DialogState"
    }
     
    agentId

    "42031"

    Agent IP Phone Extension
    state
    • IDLE
    • ACTIVE
    • INVALID

    stateChangeTimeString

    time on state change
    participants[42032,32033]Addresses of participants (Comma separated)
    connectionID52129051Unique ID for each call connection

    Inbound Call State

    This event is fired when CC receives an update about an agent from CUCM for an inbound call.

    Event: InboundCall

    JMS-Type

    NULL

    JMS-Body

    InboundCall#<Inboundcall_current_state>#<start_time>

    <agent_login_Id>

    Agent IP Phone Extension

    <Inboundcall_current_state>

    Current state of the dialog. Possible values are:

    • IDLE
    • INITIATING
    • DIALING
    • ALERTING
    • CONNECTED
    • HOLD
    • FAILED
    • DISCONNECTED
    • UNKNOWN
    <start_time>start time of the call

    Event Category

    agent_dialog

    JSON Format

    AttributeValueDescription

    type

    InboundCall
    Name of the event type

    System

    JS
    {
    	"agentId":"42031",
    	"participants":[],
    	"connectionID":"52129051",
    	"startTime":1658336990025,
    	"state":"CONNECTED",
    	"type":"InboundCall",
    	"callType":"INBOUND_CALL"
    }
     
    agentId

    "42031"

    Agent IP Phone Extension
    State
    • IDLE
    • ACTIVE
    • HOLD
    • INVALID

    startTime

    time on state change
    participants42032address of the second participant
    Connection52129051Uniqe Connection ID


    State

    AgentState describes the current state of the agent. Normally CC sends this event when the agent call state changes!

    JSON Format

    AttributeValueDescription

    type

    AGENT_STATE
    Name of the event type

    System

    JS
    {
      "agentId": "42034",
      "otherParticipants": [
        {
          "extension": "42033",
          "connectionID": "58410407",
          "state": "DIALING"
        }
      ],
      "state": "ACTIVE",
      "type": "State"
    } 
    agentId

    "42031"

    Agent IP Phone Extension
    state
    • IDLE
    • ACTIVE
    • INVALID

    state (Inside part)
    • IDLE
    • ALERTING
    • TALKING
    • DIALING
    • HELD
    • INUSE
    • DROPPED
    • UNKNOWN
    time on state change
    otherParticipants
    Array of participants 
    connectionID52129051Unique ID for each call connection

    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.

    MISSING_EXTENSION

    Extension is missing in request.

    Default Format

    Error: MISSING_EXTENSION

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#MISSING_EXTENSION

    <Error_For>

    Possible values are:

    • <Agent_Extension>

    Error Origin

    CUCM Connector

    Error Summary

    The extension is missing in the request.

    Expected Client’s Behaviour

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

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "",
    "errorType": "MISSING_EXTENSION",
    "message": "extension is missing" 
    }
    
    errorTypeMISSING_EXTENSION

    message

    extension is missing

    extension is missing

    WRONG_EXTENSION

    The extension provided in the 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.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42601",
    "errorType": "WRONG_EXTENSION",
    "message": "extension is wrong or invalid" 
    }
    
    errorTypeWRONG_EXTENSION

    message

    the extension is wrong or invalid

    extension is missing

    USER_NOT_FOUND

    Agent Extension isn't found in CUCM

    Default Format

    Error: USER_NOT_FOUND

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#USER_NOT_FOUND

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM

    Error Summary

    Agent Extension isn't found in CUCM

    Expected Client’s Behaviour

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

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "USER_NOT_FOUND",
    "message": "Topic is not created" 
    }
    

    message

    USER_NOT_FOUND

    Error Message
    message

    GENERAL_ERROR

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

    Default Format

    Error: GENERAL_ERROR

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#GENERAL_ERROR

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM

    Error Summary

    When the root cause of the error is unclear.

    Expected Client’s Behaviour

    Display the error message and send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "GENERAL_ERROR",
    "message": "" 
    }
    
    errorTypeGENERAL_ERROR

    message



    CF_GENERIC_UNSPECIFIED

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

    Default Format

    Error: CF_GENERIC_UNSPECIFIED

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#CF_GENERIC_UNSPECIFIED

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM

    Error Summary

    The root cause of the error is unclear. No specific details are available

    Expected Client’s Behaviour

    Display the error message and send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "CF_GENERIC_UNSPECIFIED",
    "message": "" 
    }
    

    errorType

    • CF_GENERIC_UNSPECIFIED
    Error Message

    CF_INVALID_OBJECT_STATE

    The object is in the incorrect state for the request.

    Default Format

    Error: CF_INVALID_OBJECT_STATE

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#CF_INVALID_OBJECT_STATE

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM

    Error Summary

    The object is in the incorrect state for the request.

    Expected Client’s Behaviour

    Send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "CF_INVALID_OBJECT_STATE",
    "message": "Agent is not in valid state" 
    }
    

    errorType

    CF_INVALID_OBJECT_STATE

    Error Message

    PLEASE_RETRY

    Invalid request params, IOException, request timeout.

    Default Format

    Error: PLEASE_RETRY

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#PLEASE_RETRY

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM Connector

    Error Summary

    Invalid request params, IOException, request timeout.

    Expected Client’s Behaviour

    Send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "PLEASE_RETRY",
    "message": "Requested params are invalid" 
    }
    

    errorType

    • PLEASE_RETRY
    Error Message

    INVALID_PARTY

    An InvalidPartyException indicates that a party given as an argument to the method call was invalid. This may either be the originating party of a telephone call or the destination party of a telephone call.

    Default Format

    Error: PLEASE_RETRY

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#INVALID_PARTY

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM Connector

    Error Summary

    Invalid request params, IOException, request timeout.

    Expected Client’s Behaviour

    Send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "INVALID_PARTY",
    "message": "party given as an argument to the method call was invalid" 
    }
    

    message

    INVALID_PARTY

    Error Message

    PRIVILLEGE_VIOLATION

    A PrivilegeViolationException indicates that an action pertaining to a certain object failed because the application did not have the proper security permissions to execute that command.

    Default Format

    Error: PLEASE_RETRY

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#PREVILLEGE_VIOLATION

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    CUCM CONNECTOR

    Error Summary

    Invalid request params, IOException, request timeout.

    Expected Client’s Behaviour

    Send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": "PREVILLEGE_VIOLATION",
    "message": "a certain object failed because the application did not have the proper security permissions to execute that command" 
    }
    

    message

    PREVILLEGE_VIOLATION

    Error Message

    LICENSES_EXCEEDED

    A LICENSES_EXCEEDED indicates that a client has crossed the max number of agents licensesed.

    Default Format

    Error: PLEASE_RETRY

    JMS-Type

    NULL

    JMS-Body

    <Error_For>#Error#LICENSES_EXCEEDED 

    <Error_For>

    Possible values are:

    • Agent Extension 

    Error Origin

    Licenses expired or exceeded the limit.

    Error Summary

    Invalid request params, IOException, request timeout.

    Expected Client’s Behaviour

    Send the request again.

    JSON Format

    AttributeValueDescription

    type

    Error

    Name of the event type

    System

    JS
    {
    "type": "Error",
    "agentId": "42021",
    "errorType": " LICENSES_EXCEEDED ",
    "message": "No. of agent exceeded from the available license" 
    }
    

    message

    LICENSES_EXCEEDED 

    Error Message
    JavaScript errors detected

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

    If this problem persists, please contact our support.