2016 Customer Collaboration
Technical Partner Uplift
Cisco Unified Contact
Center Express
Component Overview
Abhiram Kramadhati, CCIE # 40065
Technical Solutions Manager, CBABU
UCCX Solution Components
UCCX a closer look
Agenda
UCCX Engine
UCCX Database
UCCX Failover
3rd party Integration
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX Solution Components
Unified Gateways ( PSTN Gateways)
Unified Call Manager ( CUCM)
Cisco Finesse agent desktop
Cisco Unified Intelligence Center (CUIC)
Unified CCX Editor
Unified CCX Server
UCCX Engine
UCCX Configuration Datastore
Historical Reports Database Server
Cisco Social Miner chat and email
Media Sense compliance recording
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
IVR Building Blocks
Social
Mining, CRM
integration
Agent
desktop
IVR and call
queuing
CUIC
Scripting and
administration
ASR
(Automatic
Speech
Recognition)
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
For the UCCX, CUCM is the
ONLY ACD/PBX option. CME
support has been stopped
since 9.0
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
CUCM Integration Checkpoints
AXL Service Provider
JTAPI ( CTI Manager )
RmCm ( Application User )
End User ( IPCC Extension)
CTI Ports
We will discuss this
concept in detail in
the coming sessions
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX integrates with CUCM on 2 major fronts:
AXL
CTI
AXL:
CTI:
Secure communication between
UCCX and CUCM for authentication
Call control which CTI port should
get the call?
SQL queries to create CTI ports and
Route Points on CUCM
Agent phone control make the
agent phone ring
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX agent login
CUCM/AXL provider
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX a closer look
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Anatomy of a
UCCX system
UCCX
Engine
UCCX Cluster View Daemon (CVD) is
equivalent to the Node Manager
process in Windows. It takes care of
intra cluster communication. If CVD is
down, all services on that UCCX Node
will be affected. It is a Java Virtual
Machine.
CUIC
Cluster
View
Daemon
Finesse
UCCX
Databas
e
UCCX Engine heart of UCCX
core functionality. It has multiple
subsystems that take care of
different functionality such as agent
login, agent phone control, chat
etc.
UCCX Database is an informix
database and is a separate
instance from the platform
database. It stores UCCX related
configuration information and
historical data.
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
10
UCCX Engine
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
11
UCCX Engine
Heart of the UCCX system and controls all the core functionalities.
It is a Java virtual machine (JVM)
Processes call requests, agent state change requests and so on.
The UCCX Engine going down is the indication to trigger a failover and the other
UCCX Engine will take over mastership.
In a HA system, there will be a
UCCX engine who is the master
and the second one is the slave.
Both UCCX engines will get the information about an
incoming call but only the master node responds
back and continues the communication
All agents login to the master UCCX node
The UCCX Engine shutting down will trigger a
change in mastership and all other services follow
suit.
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
12
Manager manager:
It has the list of all manager services such
as Prompt manager, script manager and
application manager.
These processes generally are responsible
for the administrative tasks that are done in
the system.
Subsystem manager:
All subsystems are part of this. These
subsystems are responsible for
individual core functions of the UCCX.
RmCm Subsystem
CM Telephony Subsystem
Resource Manager Contact
Manager is responsible for
agent state management and
also the call interaction with
the resources
Dependent on the CTI
communication with CUCM
Manages all CTI ports and
route points
Even if one of the devices
goes out of service on the
CUCM, this goes out of
service or to partial service
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
13
Even when one of the UCCX
subsystems are in partial, the UCCX
engine goes into partial. However,
not all partial states represent a
service impact.
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
14
Other important services.
CCX Notification Service
It is the service responsible for delivering real time updates
to clients such as Finesse and CUIC clients. Internally, it is
an Openfire server that is installed on the UCCX.
Openfire is a real time collaboration (RTC) server
licensed under the Open Source Apache License. It uses
the only widely adopted open protocol for instant
messaging, XMPP
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
15
CCX WebServices
This service handles all web requests that arise within the UCCX.
Examples: CUIC login request, email and chat notifications from Social
Miner.
What happens if this service is down?
1. CUIC login failure for users even though credentials are right
2. Finesse email and chat will not function; agents will not receive any
chats or emails
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
16
CCX Database Service
This service is responsible for controlling access to the Informix
database by other services/user accounts.
Important: This is not the actual Informix Database status, this is just a
service
What happens if this service is down?
1)
No impact to agent login or ability to handle calls
2)
Impact in accessing database for new configuration changes
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
17
UCCX Database
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
18
UCCX Database is an informix database that stores different kinds of
data:
1.
Configuration data
2.
Historical Information
3.
Recordings
In the UCCX box itself, there are multiple instances of Informix database:
.
Platform DB: platform related information (from the CUCM
Operating system)
.
UCCX DB
.
Finesse DB
.
CUIC DB
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
19
We will concentrate only on the UCCX database.
The UCCX database is present on both UCCX nodes and they maintain
data consistency using Enterprise Replication (ER).
There are different datastores within the UCCX database:
Historical datastore: contains the historical data
Configuration datastore: contains all configurations that are updated
and accessed real time
Repository datastore: a repository for scripts, prompts etc.
Each datastore has a set of tables to which data is written into. All table
information is available in the Database Schema guide
UCCX Database replication can be checked, reset from the UCCX
Serviceability page
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
20
Force synchronize data
between sides for that
datastore
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
21
Maintaining database consistency across both nodes
Informix Enterprise replication is used to maintain database consistency, similar to
CUCM.
But UCCX also introduces a 2-phase commit process for its configuration database.
Attempt
Attempt
configuration
configuration
change
change on
on
Node
Node 1
1
Write
Write to
to Node1
Node1
configuration
configuration
DB
DB
If node 2 is
unavailable/both nodes
dont get the config
update, user gets an error
and the change is not
accepted.
Call completes
Call data written
into historical
tables on Node1
Write
Write to
to Node2
Node2
Configuration
Configuration
DB
DB
2-phase
commit
for config
changes
Replication of
historical data
Commit
Commit
change
change
After a few
seconds, data is
pushed to
Node2
If the database is down for any reason, the call data is written
2014can
Cisco be
and/orused
its affiliates.
rights reserved.
22
into flat files that
to Allrestore
intoCisco
theConfidential
database later.
Database commands at your finger tips!
utils uccx database dbserver integrity
Checks the integrity of the database server disk structures and displays
results. It also checks the DB config integrity and does a fix if integrity is
broken.
When to use?
CSQ/Application page doesnt list any CSQs/Applications
Newly created skills dont appear or the entire Skills page is empty
When TAC asks you to..
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
23
utils uccx database dbreplication <tag>
setup: will setup the UCCX DB Replication between the
nodes
repair: This command repairs mismatched data between
cluster nodes; it does not repair replication setup
reset: does 3 steps
Remove Database replication
2. Setup Database replication
3. Initiate a data repair process
1.
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
24
utils uccx database forcedatasync
This command gets the data from the other node in the cluster; effectively
overwriting the data on this node.
When to use?
A single node in the cluster is corrupted and all efforts to restore
database has failed
It puts a strain on the links between the nodes based on database side,
so be mindful of the same
Best advised to be run with TAC
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
25
UCCX Failover
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
26
Two types of communication between the nodes:
Heartbeats (over TCP, UDP pre 9.0)
RMI Connections for node updates (over TCP)
HAoLAN: heartbeat sent every 0.5 seconds and failover is initiated if 5 consecutive
heartbeats are missed
HAoWAN: heartbeat sent every 1 second and failover is initiated if 10 consecutive
heartbeats are missed
The UCCX engine changes mastership in the failover and all other services follow
suit.
During a failover, if the mastership is lost, all calls in the queue will be dropped and
agents will be automatically logged into the other side.
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
27
What does a failover mean?
All services will follow the service state of UCCX Engine on the node.
The CVD controls the failover logic and also initiates a failover
Calls in the queue DROPPED
Agents soft failover; automatic re-login, agent states retained
Failover is initiated in two scenarios:
1.
Node crash (hardware issues, software crash etc.)
2.
Connectivity down between the two UCCX nodes
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
28
Software crash/node down
Scenario 1: Non-master node goes down
1. Master (assume Node1) does not receive 5/10 consecutive heartbeats:
%MCVD-CVD-5-HEARTBEAT_MISSING_HEARTBEAT:CVD does not receive heartbeat from node for a long
period: nodeId=2,dt=10245
2. CVD process suspects that the other node has crashed:
%MCVD-CVD-4-HEARTBEAT_SUSPECT_NODE_CRASH:CVD suspects node crash: state=Heartbeat
State,nodeInfo=Node id=2 ip=10.160.133.21 convId=579 cmd=34 viewLen=1,dt=1024
3. CVD checks and finds out that engine mastership is on Node1, therefore no further action
is warranted
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
29
Software crash/node down
Scenario 2: Master node goes down
1. Master (assume Node1) goes down. Node 2 does not receive 5/10 consecutive heartbeats:
%MCVD-CVD-5-HEARTBEAT_MISSING_HEARTBEAT:CVD does not receive heartbeat from node for a
long period: nodeId=1,dt=10245
2. CVD process suspects that the other node has crashed:
%MCVD-CVD-4-HEARTBEAT_SUSPECT_NODE_CRASH:CVD suspects node crash: state=Heartbeat
State,nodeInfo=Node id=1 ip=10.160.133.20 convId=579 cmd=34 viewLen=1,dt=1024
3. CVD will decide that it needs to take control because it has lost its master. Internally, it
updates the state of Node1:
%MCVD-CLUSTER_MGR-7-UNK:JavaService66: Cisco Unified CCX Engine on node 1 change master from
true to false
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
30
Node 2 takes
mastership
UCCX Engine on
Node2 becomes
master.
All other services
follow suite
There is no concept of
partial mastership
Finesse on
Node2 starts
accepting
requests
Agents will
automatically failover
to the second node
No need of re-login
Agent state and other
information
maintained
All call and
agent related
info written into
the DB
No loss in historical
data
Replication will stay
up, no need to setup
after the Node1 comes
up
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
31
Island mode
What happens when the WAN link between the two UCCX nodes goes
down?
1.
Both nodes will lose heartbeats and after 10 lost heartbeats, the CVD in
each node will assume that the second node is down.
2.
If the node has mastership, it will continue to operate without changes.
3.
The node without the mastership will become master too
You will have two nodes operating independently handling
calls and agent logins
Once the WAN link comes up, the nodes will converge and an algorithm decides who becomes the
master. Any historical data written into either node is updated on either side.
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
32
3 party integration
rd
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
33
Wallboard integration
Create 3rd party
wallboard that can
access data from the
UCCX database
Dedicated wallboard
tables
Very detailed
database schema
guide
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
34
CRM integration
With Finesse
being web based
and being 100%
customizable, a
wide variety of
CRM integration
options are
available
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
35
CRM Integration Using Finesse
2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
36