You are on page 1of 37

Cisco Unified CCX CTI

Protocol

BRKDEV-1151

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 1

Cisco Unified Contact


Center Express (CCX)
Computer Telephony
Integration (CTI) Protocol

BRKDEV-1151

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 2

© 2006, Cisco Systems, Inc. All rights reserved. 1


Presentation_ID.scr
Agenda

ƒ Overview
ƒ CCX Configuration
ƒ Message Format
ƒ Message Functions
Session
Configuration
Agent State
Call Event
Call Control
Miscellaneous Messages
ƒ Sample Call Flows
ƒQ&A
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 3

Overview

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 4

© 2006, Cisco Systems, Inc. All rights reserved. 2


Presentation_ID.scr
Overview
ƒ CCX is a full-featured, integrated, easy-to-use, easy-to-deploy
and highly-available customer interaction management for up
to 300 agents
ƒ CCX offers a rich set of features: skills-based routing, CTI
integration, database integration, outbound, email, web chat, WFO
ƒ CCX CTI protocol is used between clients such as CAD and the
CCX server
ƒ CCX CTI protocol has been used since CCX 3.x but is made
available with CCX 4.1, CCX 5.0, 6.0 and later releases
ƒ Same protocol is used by Cisco Agent Desktop, Cisco Interaction
Manager and the CCX Gateway PG
ƒ The protocol has a rich set of CTI features including call and agent
state notifications, real time statistics, call control, auto-
configuration
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 5

Overview Diagram

Cisco Agent
Desktop
CCX CTI PROTOCOL

CCX
Gateway
CCX CTI PROTOCOL PG

Cisco Interaction
CCX CTI PROTOCOL Manager

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 6

© 2006, Cisco Systems, Inc. All rights reserved. 3


Presentation_ID.scr
Overview
The Protocol Can Be Used For
ƒ Custom Agent Desktop
Allows for customized business rules, e.g. automatically make
an agent ready if the agent does not have a call and is in
Not Ready for a certain duration
ƒ Custom Supervisor Desktop
Allows supervisors to monitor agents, view real-time data and
control agent states. Supports customized business logic such
as making all Not Ready agents ready when the calls in queue
exceed a certain threshold
ƒ Integration with Other Applications
Allow agents to interface with only one application by integrating
with CRM/ERP applications, e.g. integrate agent state
management and call control with backend CRM application
to give agents a complete set of functionalities in a single
application
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 7

Overview
The Protocol Can Be Used For
ƒ Reporting
Supports customized business logic based on events and
notifications, e.g. send out an email when an agent device is
down, allow agents to see not only their own agent state and
real-time statistics but other agent states as well
ƒ Configuration Synchronization and Notification
Allows applications to get configuration data from CCX and be
notified of any configuration changes, e.g. Cisco Interaction
Manager (CIM) uses CCX CTI protocol to get agent, CSQ
and team data
ƒ Call Data
Allows flexibility in presenting the right call data to agents,
e.g. if a call is for Sales, look up sales order in CRM. If a call
is for IT support, look up the case in case-tracking tool
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 8

© 2006, Cisco Systems, Inc. All rights reserved. 4


Presentation_ID.scr
CCX CTI Protocol Versions

ƒ The table below shows the versions of the CCX CTI


protocol supported in various CCX releases

CCX Version CTI Version


4.1 10
5.0 10,11,12
6.0 10,11,12

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 9

Delivery

ƒ The delivery of this feature includes a CCX CTI


Protocol Developer Guide and sample code
ƒ Available to subscribers of the Developer
Services program

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 10

© 2006, Cisco Systems, Inc. All rights reserved. 5


Presentation_ID.scr
CCX Configuration,
Message Format

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 11

CCX Configuration for CCX CTI Protocol

ƒ CCX CTI client applications use TCP/IP connection on


a socket to connect to CCX
ƒ The listening port number is specified in AppAdmin
system parameters as RmCm TCP Port

Port Used by CCX CTI Clients

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 12

© 2006, Cisco Systems, Inc. All rights reserved. 6


Presentation_ID.scr
CCX CTI Protocol Message Format

1 Header 4 Body

Message Message
2 3 4 Fixed Part 8 Floating Part
Length Type

6 Fixed Fields 1..n 9 Floating Fields 1..n

Fixed FieldDataID FieldDataLength Data


7 10 11 12
Field Data Subfield Subfield Subfield

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 13

CCX CTI Protocol Message Format


1 Header

Message Message
2 3
Length Type

ƒ A CCX CTI message is a byte array of fields containing


a message header and a message body
ƒ The message header is a required field and contains
a 4-byte MessageTypeID field and a 4-byte body length field
(excludes the size of the message header)
ƒ The MessageTypeID is a numeric ID that identifies the type
of the message. For example, OPEN_REQ has a numeric ID
of 3, HEARTBEAT_REQ is 5
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 14

© 2006, Cisco Systems, Inc. All rights reserved. 7


Presentation_ID.scr
CCX CTI Protocol Message Format
4 Body

5 Fixed Part 8 Floating Part

ƒ The message body is made up of a fixed and a floating part


ƒ The floating part is made up of a field data ID subfield,
a field length subfield and data subfield

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 15

CCX CTI Protocol Message Format


ƒ The fixed part is made up of fixed fields. Each field has a fixed length
and are put together in a fixed order. The type and number of fixed
fields depend on the message type. Fixed fields are defined by data
types such as CHAR, UCHAR, SHORT, USHORT, INT,
UINT, BOOL, TIME
Fixed Field Name Data Type Byte Size
ƒ Example: OPEN_REQ InvokeID UINT 4
Version Number UINT 4
IdleTimeout UINT 4
Reserved UINT 4
ServicesRequested UINT 4
CallMsgMask UINT 4
AgentStateMask UINT 4
ConfigMsgMask UINT 4
Reserved UINT 4
Reserved UINT 4
Reserved UINT 4

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 16

© 2006, Cisco Systems, Inc. All rights reserved. 8


Presentation_ID.scr
CCX CTI Protocol Message Format

9 Floating Fields 1..n

FieldDataID FieldDataLength Data


10 11 12
Subfield Subfield Subfield

ƒ The message floating part follows the fixed part. It is variable in


length and sometimes optional (depending on the message type)
ƒ The floating part is made up of floating fields, each with a field data
ID subfield, a field data length subfield and data subfield
ƒ The field data ID subfield is a one-byte field identifying the field
type. Examples: 4 is agent extension, 8 is ANI

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 17

CCX CTI Protocol Message Format

9 Floating Fields 1..n

FieldDataID FieldDataLength Data


10 11 12
Subfield Subfield Subfield

ƒ Following the field data ID subfield is a one-byte FieldDataLength


subfield which indicates the number of bytes of data in the
data subfield
ƒ The data subfield immediately follows the FieldDataLength subfield
ƒ Floating data types include CHAR, UCHAR, SHORT, USHORT,
INT, UINT, BOOL, TIME, STRING, UNSPEC

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 18

© 2006, Cisco Systems, Inc. All rights reserved. 9


Presentation_ID.scr
CCX CTI Protocol Message Format

ƒ The maximum data size listed in each message


definition for each floating field is the maximum number
of data bytes allowed
ƒ Floating fields may appear in any order in the floating
part of the message
ƒ Example: OPEN_REQ
Floating Field Name Required/Optional Data Type Max Size
ClientID Required String 64
ClientPassword Required Unspec 64
ClientSignature Optional String 64
AgentExtension Required for agent mode String 16
AgentInstrument Required for agent mode String 64
AgentID Required for agent mode String 32

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 19

Protocol Features

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 20

© 2006, Cisco Systems, Inc. All rights reserved. 10


Presentation_ID.scr
Message Types

CCX CTI Messages

Session Agent State Statistics Call Monitor/ Configuration


Management Management Messages Control Updates

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 21

CCX CTI Protocol Features

ƒ CCX CTI protocol provides support for session


management, agent state management, configuration
updates, call monitoring and control and statistics
ƒ CCX CTI clients can receive both solicited and
unsolicited messages
ƒ Every request message from a client will generate
a response message from Unified CCX Server
(Solicited messages)
ƒ The CCX server can also send some messages like
failure notifications to client, without the client
requesting for them (Unsolicited messages)

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 22

© 2006, Cisco Systems, Inc. All rights reserved. 11


Presentation_ID.scr
Session Messages

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 23

Session Messages
ƒ A client initiates a session by trying to connect to the CCX
server using the TCP port number configured
ƒ Once a connection is established, the client tries to create
a session by sending an OPEN_REQ
ƒ If successful, the CCX server sends an OPEN_CONF
response. If unsuccessful, the status code in
FAILURE_CONF message indicates failure reason.
Examples: E_CTI_SERVER_NOT_MASTER,
E_CTI_REQUIRED_DATA_MISSING
ƒ In the OPEN_REQ, the client specifies the version number,
the idle timeout, the services requested mask, call message
mask, agent state mask, configuration message mask
ƒ Masks are used to avoid wasting network bandwidth by
suppressing unnecessary messages
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 24

© 2006, Cisco Systems, Inc. All rights reserved. 12


Presentation_ID.scr
Session Messages

ƒ The services requested mask specifies which CTI


services the client can request (agent state and call
control, call data update, configuration, or all)
ƒ The services requested mask also indicates if the
connection is in agent or bridge mode
Bridge mode (all-events mode) A bridge mode client receive
all agent state and call events for all logged in agents. It also
receives confirmation for requests it makes, but not that of
other clients
Agent mode (client mode) An agent mode client only receives
messages related to that agent

ƒ Once a session is established, you cannot change the


connection mode of the session
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 25

Session Messages
Examples of Service Mask

Mask Name
Description Bytes
(for Service Mask)
CTI_SERVICE_CLIENT_EVENTS Client receives call and agent state 0x00000001
events for a specific phone. Indicates
client is in Agent mode
CTI_SERVICE_CALL_DATA_UPDA Client can modify call 0x00000002
TE context data
CTI_SERVICE_CLIENT_CONTROL Client can control calls and agent 0x00000004
states for a specific phone
CTI_SERVICE_ALL_EVENTS Client receives all call and agent 0x00000010
state changes for any phone.
Indicates client is in Bridge mode
CTI_SERVICE_SUPERVISOR Client can perform supervisory 0x00000080
functions
CTI_SERVICE_CONFIG_EVENTS Client receives configuration events 0x00040000

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 26

© 2006, Cisco Systems, Inc. All rights reserved. 13


Presentation_ID.scr
Session Messages

ƒ CallMsgMask is a bitwise combination of unsolicited


call event masks that the client wants to receive. If the
client wants CALL_DELIVERED_EVENT (0x1) and
CALL_ESTABLISHED_EVENT (0x4), the callMsgMask
should be 0x5
ƒ AgentStateMask is a bitwise combination of unsolicited
agent state masks that the client wants to receive
ƒ ConfigMsgMask is a bitwise combination of
configuration events that the client wants to receive.
Configuration events are defined for agents, CSQs,
applications and devices

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 27

Session Messages

ƒ A session is maintained by sending heartbeat


messages, which is used to handle and detect
transmission and server/client failures
ƒ The client sends a heartbeat message at regular
intervals called the heartbeat interval. If it does not get
confirmation for 3 consecutive heartbeat messages,
it should declare a failure and reset the connection
ƒ The server will reset the connection if it does not get a
heartbeat message within the idle-timeout period, which
is specified as a parameter in OPEN_REQ
ƒ To close a connection, the client sends a CLOSE_REQ.
The server in turn sends a CLOSE_CONF
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 28

© 2006, Cisco Systems, Inc. All rights reserved. 14


Presentation_ID.scr
Configuration
Messages

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 29

Configuration Messages

ƒ CCX CTI clients can acquire configuration data from


the CCX server and use configuration messages to
synchronize that data between CCX and themselves
ƒ This includes an initial bulk upload of configuration
data and subsequent dynamic updates whenever
there is a configuration change made
ƒ CCX configuration messages support data for
agents, CSQs, teams, devices (triggers, CTI ports,
agent devices, CTI port groups) and applications

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 30

© 2006, Cisco Systems, Inc. All rights reserved. 15


Presentation_ID.scr
Configuration Messages
Messages

Request Response
CONFIG_REQUEST_KEY_EVENT CONFIG_KEY_EVENT
CONFIG_REQUEST_EVENT CONFIG_BEGIN_EVENT
CONFIG_CSQ_EVENT
CONFIG_APPLICATION_EVENT
CONFIG_AGENT_EVENT
CONFIG_DEVICE_EVENT
CONFIG_END_EVENT

TEAM_CONFIG_REQ TEAM_CONFIG_EVENT
TEAM_CONFIG_CONF

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 31

Configuration Messages
ƒ The client must include the
CTI_SERVICE_CONFIG_EVENT
S bit in the ServiceRequested field
of an OPEN_REQ message if the
client wants configuration data.
ƒ Client sends
CONFIG_REQUEST_KEY_EVEN
T message to request a current
set of configuration keys
ƒ Server responds by sending
CONFIG_KEY_EVENT, which
contains the CCX configuration
keys at the time of the request
ƒ If the client as the same set of
keys as the server, it means that
the client configuration is in sync
with that on the server
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 32

© 2006, Cisco Systems, Inc. All rights reserved. 16


Presentation_ID.scr
Configuration Messages
ƒ If the client needs an initial snapshot
of the configuration, the client sends
CONFIG_REQUEST_EVENT, with
the configuration mask set to a
value that represents which
configuration data is requested
ƒ If the initial snapshot of the
configuration is requested, the
server sends the initial snapshot of
the configuration data to the client in
a CONFIG_BEGIN_EVENT and
CONFIG_END_EVENT block of
messages. In between these two
messages, the server sends the
appropriate message for the type of
data requested
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 33

Configuration Messages
ƒ Configuration updates performed
in the CCX Administration web
page are sent to clients in a
CONFIG_BEGIN_EVENT and
CONFIG_END_EVENT block
of messages as well

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 34

© 2006, Cisco Systems, Inc. All rights reserved. 17


Presentation_ID.scr
Configuration Messages
Configuration Data Available in the Configuration Messages

Example Configuration Data in


Message
Message
CSQ ID, CSQ Name, Auto-Work
CONFIG_CSQ_EVENT
Setting
Application ID, Application Name,
CONFIG_APPLICATION_EVENT
Description
Login ID, Type, First Name, Last
CONFIG_AGENT_EVENT
Name, Extension

CONFIG_DEVICE_EVENT Device Type, extension

Team Name, Agent ID,


CONFIG_TEAM_EVENT
Membership Type

* All messages above have a record type to indicate if it is an addition, deletion or update
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 35

Configuration Messages
Team Messages
ƒ The client must include the
CTI_SERVICE_SUPERVISOR bit (0x00000080) in the
ServiceRequested field of the OPEN_REQ message
if the client wants team configuration data
ƒ The client sends a TEAM_CONFIG_REQ to the
CCX server
ƒ The server responds with zero or more
TEAM_CONFIG_EVENT messages, followed
by a TEAM_CONFIG_CONF message
ƒ After this request/confirmation exchange, the CCX
server sends TEAM_CONFIG_EVENT messages
to the client whenever there is a team
configuration change
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 36

© 2006, Cisco Systems, Inc. All rights reserved. 18


Presentation_ID.scr
Agent State Messages

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 37

Agent State Messages

ƒ CCX maintains all agent states and may change an


agent state based on various conditions such as an
agent hanging up the phone and responding to agent
state requests from CAD
ƒ CCX CTI clients can monitor or change agent states

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 38

© 2006, Cisco Systems, Inc. All rights reserved. 19


Presentation_ID.scr
Agent State Messages
CCX CAD
SET_AGT_STATE_REQ
Logoff
SET_AGT_STATE_CONF
AGT_STATE_EV
Not Ready
SET_AGT_STATE_REQ
Agent Clicks Ready on CAD Ready SET_AGT_STATE_CONF
AGT_STATE_EV
Agent selected for ACD Call Reserved AGT_STATE_EV

Agent answers Call Talking AGT_STATE_EV

Agent Hangs Up Work


AGT_STATE_EV

Work timer Expires or Ready


Agent Click Ready AGT_STATE_EV

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 39

Agent State Messages

ƒ Clients use the SET_AGENT_STATE_REQ to request


a state change
ƒ The SET_AGENT_STATE_REQ also contains a field
for a reason code
ƒ If the request is successful, the server send
a SET_AGENT_STATE_CONF response.
If not, a FAILURE_CONF is sent

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 40

© 2006, Cisco Systems, Inc. All rights reserved. 20


Presentation_ID.scr
Agent State Messages
CCX CAD
SET_AGT_STATE_REQ
Logoff
SET_AGT_STATE_CONF
AGT_STATE_EV
Not Ready
SET_AGT_STATE_REQ
Agent Clicks Ready on CAD Ready SET_AGT_STATE_CONF
AGT_STATE_EV
Agent Selected for ACD Call Reserved AGT_STATE_EV

Agent Answers Call Talking AGT_STATE_EV

Agent Hangs Up Work


AGT_STATE_EV

Work Timer Expires or Ready


Agent Click Ready AGT_STATE_EV

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 41

Agent State Messages

ƒ AGENT_STATE_EVENT is sent whenever an agent


changes state
ƒ The agent state is reflected by the last
AGENT_STATE_EVENT received.
ƒ AGENT_STATE_EVENT also contains a reason
code field
ƒ Reason codes can be system generated or custom.
Examples of system-generated reason codes:
RNA (32763), Phone_Down (32759)

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 42

© 2006, Cisco Systems, Inc. All rights reserved. 21


Presentation_ID.scr
Call Event Messages

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 43

Call Events
ƒ CCX generates call events related to calls on monitored
lines which include triggers (route points), CTI ports and
agent ACD lines
ƒ These call events are unsolicited messages,
which are sent to CCX CTI clients
ƒ A client can be notified of a call with a
BEGIN_CALL_EVENT as soon as the client is associated
with the new call
ƒ Additional events are sent to the client as the call is handled,
depending on the treatment the call receives
ƒ When the association ends, the client receives
a CALL_END_EVENT

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 44

© 2006, Cisco Systems, Inc. All rights reserved. 22


Presentation_ID.scr
Call Events
ƒ Examples of call events:
ƒ CALL_DELIVERED – indicates the call is ringing
ƒ CALL_ESTABLISHED – indicates that the call is answered
ƒ CALL_HELD_EVENT – indicates that the call is put on hold
ƒ CALL_RETRIEVED_EVENT – indicates that the held call
is resumed
ƒ CALL_CLEARED_EVENT – indicates that the call has
terminated, usually when the last device disconnects
from the call
ƒ CALL_CONNECTION_CLEARED_EVENT – indicates
that a party has dropped from a call

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 45

Call Events
ƒ CALL_TRANSFERRED_EVENT – indicates that a call has
been transferred to another destination
ƒ CALL_CONFERENCED_EVENT – indicates that multiple
calls have been joined into a conference call
ƒ CALL_QUEUED_EVENT – indicates that a call is placed
in queue
ƒ RTP_STARTED_EVENT – indicates that RTP media stream
has started
ƒ RTP_STOPPED_EVENT – indicates that RTP media stream
has stopped
ƒ CALL_DATA_UPDATE_EVENT – indicates that the call
context data has changed
ƒ SET_CALL_DATA_REQUEST – used to set call
context data
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 46

© 2006, Cisco Systems, Inc. All rights reserved. 23


Presentation_ID.scr
Call Events
ƒ Most of the events will have a callID field to identify
the call
ƒ The CALL_TRANSFERRED and CALL_CONFERENCED
events have a primaryCallID and a secondaryCallID. This is
because transfer and conference involve 2 calls, a primary
and a secondary call. After the transfer and conference
completion, the primary call survives and the
secondary call drops

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 47

Call Control Messages

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 48

© 2006, Cisco Systems, Inc. All rights reserved. 24


Presentation_ID.scr
Call Control Messages

ƒ A CCX CTI client can send messages to request CCX


to perform call control on behalf of a specified agent
phone number. These are solicited messages,
and the outcome of the request is indicated
in response message
ƒ If a call control request is unsuccessful, a
CONTROL_FAILURE_CONF response is sent

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 49

Call Control Messages


Action Request Response
Answer ANSWER_CALL_REQ ANSWER_CALL_CONF
Drop CLEAR_CALL_CONNECTIO CLEAR_CALL_CONNECTION_C
N_REQ ONF
CLEAR_CALL_REQ CLEAR_CALL_CONF
Make Call MAKE_CALL_REQ MAKE_CALL_CONF
Hold HOLD_CALL_REQ HOLD_CALL_CONF
Unhold RETRIEVE_CALL_REQ RETRIEVE_CALL_CONF
Transfer CONSULT_CALL_REQ CONSULT_CALL_CONF
TRANSFER_CALL_REQ TRANSFER_CALL_CONF
Conference CONSULT_CALL_REQ CONSULT_CALL_CONF
CONFERENCE_CALL_REQ CONFERENCE_CALL_CONF
Send DTMF SEND_DTMF_SIGNAL_REQ SEND_DTMF_SIGNAL_CONF

* Most Requests Will Contain a CallID used to Identify the Call. The Transfer and Conference
Request Contains 2 callIDs. The MakeCall Request Will Return a callD in the MakeCallConf.
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 50

© 2006, Cisco Systems, Inc. All rights reserved. 25


Presentation_ID.scr
Miscellaneous
Messages

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 51

Miscellaneous Messages
ƒ A CCX CTI client can obtain real-time information related to CSQs
and agents. These messages are solicited messages where the
CTI client requests the desired information and the CCX server
sends the required information as the response
ƒ A CTI client can send a QUERY_QUEUE_STATISTICS_REQ to
obtain real-time info of a CSQ. The
QUERY_QUEUE_STATISTICS_CONF includes number of logged
in, in-session, available, unavailable, work, reserved agents, and
number of calls in queue for each priority of the CSQ, total calls,
number of handled, abandoned, dequeued calls, oldest call in
queue, average talk and wait durations, longest talk and wait
durations of the CSQ

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 52

© 2006, Cisco Systems, Inc. All rights reserved. 26


Presentation_ID.scr
Miscellaneous Messages
ƒ A CTI client can send a
QUERY_AGENT_QUEUE_STATISTICS_REQ to get queue-
related real-time info of an agent. The
QUERY_AGENT_QUEUE_STATISTICS_CONF includes the
number of calls in queue and oldest call in queue for the agent,
aggregated across all the CSQs the agent belongs to
ƒ A CCX CTI client can get snapshot of a call or a device.
ƒ The SNAPSHOT_CALL_REQ message can be used to request
info about a call. The SNAPSHOT_CALL_CONF contains info
such as call variables, number of active devices associated with
the call, ANI, DNIS etc.
ƒ The SNAPSHOT_DEVICE_REQ message can be used to request
info about a device. The SNAPSHOT_DEVICE_CONF contains
info such as the current calls on the device and the state
of each call
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 53

Call Scenarios

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 54

© 2006, Cisco Systems, Inc. All rights reserved. 27


Presentation_ID.scr
Sample Call Flow

6. Call Established
Agent
7. Call Drops

5. Agent 8. Agent 9. Agent 1. Caller


Answers Selects Goes Makes
Call Wrap-up Ready Call
Code
2. Call
4. Call Is Presented to the Agent Presented
to and
Answered
at CTI Port
3. Call Queues
CCX on a CSQ

Cisco Agent Desktop CCX CTI Protocol

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 55

CTI Messages in Call Scenarios

ƒ Scenario A: A call is routed to an agent who answers


the call. Agent has extension 1007. Caller has extension
1054. CTI Port DN is 3550. Route Point is 5000

Action CTI Message Parameters Sent To


Call arrives BEGIN_CALL_EV ConnectionCallID: Bridge-mode
at 18748370 clients
application,
connDeviceID: 3550
and is
answered Ani: 1054
at CTI Port
Dnis: 5000
CALL_DELIVERED_EV alertingDeviceID:3550 Bridge-mode
clients
alertingDeviceType:73
CALL_ESTABLISHED_EV answeringDeviceID:3550 Bridge-mode
clients
answeringDeviceType:73

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 56

© 2006, Cisco Systems, Inc. All rights reserved. 28


Presentation_ID.scr
CTI Messages in Call Scenarios

Action CTI Message Parameters Sent to


Script sets an CALL_DATA_UPDATE_EV CallVar1: 95008 Bridge-mode
enterprise data clients
Request for CALL_QUEUED_EV CSQID: 4 Bridge-mode
agent clients
Agent is AGENT_STATE_EV State: Reserved Bridge-mode
available clients
agentID: jdoe
Agent-mode
agentExtn: 1007
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 57

CTI Messages in Call Scenarios


Action CTI Message Parameters Sent to
Agent phone CALL_DELIVERED_EV alertingDeviceID: Bridge-mode
rings 1007 clients
alertingDeviceType Agent-mode
:76 (Agent Device) 1007
CSQID: 4
Agent answers AGENT_STATE_EV State: In-Session Bridge-mode
clients
Agent-mode
1007
CALL_ESTABLISHED_EV answeringDeviceID Bridge-mode
:1007 clients
answeringDeviceTy Agent-mode
pe:76 1007
(agent device)

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 58

© 2006, Cisco Systems, Inc. All rights reserved. 29


Presentation_ID.scr
CTI Messages in Call Scenarios
Action CTI Message Parameters Sent to
Agent answers CALL_DEQUEUED connectionCallID: Bridge-mode
1874370 clients
CALL_CONNECTIO releasingDeviceID: 3550 Bridge-mode
N_CLEARED_EV clients
connectionCallID:
1874370 Agent-mode
1007
RTP_STARTED_EV Direction:0 Bridge-mode
clients
Agent-mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 59

CTI Messages in Call Scenarios


Action CTI Message Parameters Sent to
RTP_STARTED_EV Direction:1 Bridge-mode
clients
Agent-mode
1007
Agent hangs up AGENT_STATE_EV State:Work Bridge-mode
clients
Agent-mode
1007
CALL_CONNECTIO releasingDeviceID: 1007 Bridge-mode
N_CLEARED_EV clients
Agent-mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 60

© 2006, Cisco Systems, Inc. All rights reserved. 30


Presentation_ID.scr
CTI Messages in Call Scenarios
Action CTI Message Parameters Sent to
Agent hangs up CALL_CLEARED_EV connectionCallID: 1874370 Bridge-mode
clients
Agent-mode
1007
RTP_STOPPED_EV Direction:0 Bridge-mode
clients
Agent-mode
1007
RTP_STOPPED_EV Direction:1 Bridge-mode
clients
Agent-mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 61

CTI Messages in Call Scenarios


Action CTI Message Parameters Sent to
Agent selects CALL_DATA_UPDATE_EV wrapupData:Sale Bridge-mode
wrap-up code clients
Agent-mode
1007
Agent goes AGENT_STATE_EV State:Ready Bridge-mode
Ready clients
Agent-mode
1007
END_CALL_EV connectionCallI: Bridge-mode
1874370 clients
Agent-mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 62

© 2006, Cisco Systems, Inc. All rights reserved. 31


Presentation_ID.scr
CTI Messages in Call Scenarios

ƒ Scenario B: Based on previous scenario. Instead


of dropping the call, the agent transfers the call to
extension 1070. Agent has extension 1007. Caller
has extension 1054. CTI Port DN is 3550. Route Point
is 5000
Action CTI Message Parameters Sent to
Agent initiates RTP_STOPPED_EV Direction: 0 Bridge-mode
xfer clients
Agent Mode 1007
RTP_STOPPED_EV Direction: 1 Bridge-mode
clients
Agent Mode 1007
CALL_HELD_EV holdingDeviceID:1007 Bridge-mode
clients
connectionCallID:
18748373 Agent Mode 1007
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 63

CTI Messages in Call Scenarios


Action CTI Message Parameters Sent to
BEGIN_CALL_EV ConnectionCallID: Bridge-mode
18748375 clients
Agent mode
1007
CALL_SERVICE_INI ConnectionCallID: Bridge-mode
TIATED_EV 18748375 clients
callingDeviceID:1007 Agent mode
1007

Agent dials CALL_ORIGINATED ConnectionCallID: Bridge-mode


1070 _EV 18748375 clients
calledDeviceID:1070 Agent mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 64

© 2006, Cisco Systems, Inc. All rights reserved. 32


Presentation_ID.scr
CTI Messages in Call Scenarios
Action CTI Message Parameters Sent to
1070 answers CALL_ESTABLISHED_EV answeringDevice Bridge-mode
ID:Unknown clients
answeringDevice Agent mode
Type:65535 1007
(none)

RTP_STARTED_EV Direction:0 Bridge-mode


clients
Agent mode
1007
RTP_STARTED_EV Direction: 1 Bridge-mode
clients
Agent mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 65

CTI Messages in Call Scenarios


Action CTI Message Parameters Sent to
Agent CALL_TRANSFERRED_EV xferringDeviceID:1007 Bridge-mode
completes xfer clients
xferredDeviceID:Unkn
own Agent mode
1007
primaryCallID:
18748373
secondaryCallID:
18748375
RTP_STOPPED_EV(x2) connectionCallID: Bridge-mode
18748375 clients
Agent mode
1007
AGENT_STATE_EV State:Work Bridge-mode
clients
Agent mode
1007
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 66

© 2006, Cisco Systems, Inc. All rights reserved. 33


Presentation_ID.scr
CTI Messages in Call Scenarios
Action CTI Message Parameters Sent to
CALL_CONNECTION_ connectionCallID: Bridge-mode
CLEARED_EV 18748375 clients
releasingDeviceID: Agent mode
1007 1007
CALL_CLEARED_EV connectionCallID: Bridge-mode
18748375 clients
Agent mode
1007

END_CALL_EV connectionCallID: Bridge-mode


1874835 clients
Agent mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 67

CTI Messages in Call Scenarios


Action CTI Message Parameters Sent to
CALL_CONNECTION_ connectionCallID: Bridge-mode
CLEARED_EV 18748373 clients
releasingDeviceID: Agent mode
1007 1007
CALL_CLEARED_EV connectionCallID: Bridge-mode
18748373 clients
Agent mode
1007

END_CALL_EV connectionCallID: Bridge-mode


1874833 clients
Agent mode
1007

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 68

© 2006, Cisco Systems, Inc. All rights reserved. 34


Presentation_ID.scr
Troubleshooting

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 69

Troubleshooting

ƒ Look at the MIVR logs on the active CCX server


ƒ Make sure DEBUG is turned on ICD_CTI trace
sub-facility
ƒ To enable more detailed traces, turn on XDEBUG[1-5]
ƒ SS_RM, SS_CM and SS_RMCM sub-facilities also help
with troubleshooting
ƒ Looks for exceptions in the ICD_CTI traces
ƒ Traces show field values. Example
13319: Mar 31 15:18:23.448 GMT-800 %MIVR-ICD_CTI-7-
UNK:EventHandler: posting {AGENT_STATE_EVENT:
Socket:Socket: null monitoredDeviceDN:1007,
agentDN:1007, agentID:cyeo, monitorID = 0,
stateDuration = 0, agentstate = IN_SESSION,
eventreasoncode = 0, agentID = cyeo, agentExtension
= 1007, agentID_Long = cyeo } to outboundQ
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 70

© 2006, Cisco Systems, Inc. All rights reserved. 35


Presentation_ID.scr
Troubleshooting

ƒ Traces also show the socket the message was sent to

Example:
350271: May 07 11:27:16.076 GMT-800 %MIVR-ICD_CTI-7-
UNK:OutboundMessageprocessor : Q size after posting msg : {
length=-1 type=AGENT_STATE_EVENT, monitorID=0,
peripheralID=1, sessionID=0, peripheralType=21,
skillGroupState=4, stateDuration=0, skillGroupNumber=-1,
skillGroupID=-1, skillGroupPriority=0, agentstate=TALKING,
eventReasonCode=0, MRDid=1, numTasks=0, agentMode=0,
maxTaskLimit=0, ICMAgentID=0, agentAvailabilityStatus=1,
numFltSkillGroups=0, CTIClientSignature=null, agentID=cyeo,
agentExtension=1007, agentInstrument=null,
agentID_Long=cyeo, duration=-1, nextAgentState=2} to socket:
Socket[addr=172.19.136.80,port=1419,localport=42027] is : 1

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 71

Q&A

BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 72

© 2006, Cisco Systems, Inc. All rights reserved. 36


Presentation_ID.scr
BRKDEV-1151
14624_05_2008_X1 © 2008 Cisco Systems, Inc. All rights reserved. Cisco Public 73

© 2006, Cisco Systems, Inc. All rights reserved. 37


Presentation_ID.scr

You might also like