Download - 2016 CC Uplift UCCX Component Overview
Abhiram Kramadhati, CCIE # 40065Technical Solutions Manager, CBABU
Cisco Unified Contact Center Express – Component Overview
2016 Customer Collaboration Technical Partner Uplift
2© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Agenda
UCCX Solution Components
UCCX – a closer look
UCCX Engine
UCCX Database
UCCX Failover
3rd party Integration
3© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• 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
UCCX Solution Components
4© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
IVR and call queuing
Social Mining, CRM integration
Agent desktop
CUICASR
(Automatic Speech
Recognition)
Scripting and administration
IVR Building Blocks
5© 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
6© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• AXL Service Provider
• JTAPI ( CTI Manager )
• RmCm ( Application User )
• End User ( IPCC Extension)
• CTI Ports
CUCM Integration Checkpoints
We will discuss this concept in detail in the coming sessions
7© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX integrates with CUCM on 2 major fronts:
• AXL
• CTI
AXL:
Secure communication between UCCX and CUCM for authentication
SQL queries to create CTI ports and Route Points on CUCM
CTI:
Call control – which CTI port should get the call?
Agent phone control – make the agent phone ring
8© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX agent login
CUCM/AXL provider
9© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX – a closer look
10© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Cluster View
Daemon
CUIC
UCCX Databas
e
Finesse
UCCX Engine
Anatomy of a UCCX system
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.
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.
11© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX Engine
12© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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.
13© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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
14© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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.
15© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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
What happens when this service is down?1) Finesse login problem 2) CUIC Live data doesn’t load
16© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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 right2. Finesse email and chat will not function; agents will not receive any chats or
emails
17© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
CCX Database ServiceThis 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
18© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX Database
19© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX Database is an informix database that stores different kinds of data:
1. Configuration data2. Historical Information3. 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
20© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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
We will concentrate only on the UCCX database….
21© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Force synchronize data between sides for that
datastore
22© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• 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.
Maintaining database consistency across both nodes
Attempt configuration change on
Node 1
Write to Node1
configuration DB
Write to Node2
Configuration DB
Commit change
If node 2 is unavailable/both nodes
don’t get the config update, user gets an error
and the change is not accepted.
2-phase commit
for config changes
Call completes
Call data written into
historical tables on Node1
After a few seconds, data is pushed to
Node2
Replication of historical data
If the database is down for any reason, the call data is written into flat files that can be used to restore into the database later.
23© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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 doesn’t list any CSQs/Applications• Newly created skills don’t appear or the entire Skills page is empty• When TAC asks you to…..
Database commands at your finger tips!
24© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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
1. Remove Database replication2. Setup Database replication3. Initiate a data repair process
25© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
utils uccx database forcedatasyncThis 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
26© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
UCCX Failover
27© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• 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.
28© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
• 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
What does a failover mean?
29© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Software crash/node downScenario 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
30© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Software crash/node downScenario 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 it’s 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
31© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Node 2 takes mastership
Finesse on Node2 starts
accepting requests
All call and agent related
info written into the DB • UCCX Engine on
Node2 becomes master.
• All other services follow suite
• There is no concept of partial mastership
• Agents will automatically failover to the second node
• No need of re-login
• Agent state and other information maintained
• No loss in historical data
• Replication will stay up, no need to setup after the Node1 comes up
32© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
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
Island mode
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.
33© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
3rd party integration
34© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
Wallboard integration• Create 3rd party
wallboard that can access data from the UCCX database
• Dedicated wallboard tables
• Very detailed database schema guide
35© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
CRM integration
• With Finesse being web based and being 100% customizable, a wide variety of CRM integration options are available
36© 2014 Cisco and/or its affiliates. All rights reserved. Cisco Confidential
CRM Integration Using Finesse