Solution Overview
The QMS UCCE Connector Service (the Connector) is a Windows service that extracts telephony information from the events a Cisco contact center’s CTI server sends and, where appropriate, attaches that information as flags to QMS call recordings. Despite its name, it supports both Cisco Unified Contact Center Enterprise (UCCE) and Cisco Unified Contact Center Express (UCCX).
The topology of a typical installation is shown below. A UCCX installation is the same, with the UCCX server in place of the UCCE CTI Server.
Connecting to the CTI server
The Connector communicates with the CTI server over TCP. It may be configured with the address and port of up to two CTI servers: the two sides of a duplexed UCCE CTI Server, or two nodes of a UCCX high availability cluster. It communicates with only one at a time, starting with the one it last connected to. It moves to the other when a connection cannot be made, or when a session cannot be opened, as when a UCCX standby node refuses the session with E_CTI_SERVER_NOT_MASTER, and when an open session is lost, which it detects with heartbeats (see Checking the session: heartbeats). With one address, it keeps retrying that one.
The address is set with the CTIServer.IP-Address app setting: one or two comma-delimited addresses, each an IP address or a host name and optionally followed by a colon and a port. A host name is resolved to its IPv4 address at each connection attempt. Where the port is omitted, it defaults to the product’s CTI port: 42027 for UCCE, 12028 for UCCX (see Supported Products).
<add key="CTIServer.IP-Address" value="10.60.8.41:43027,10.60.8.42"/>
The Connector’s parsing of CTI events follows Cisco’s "CTI Server Message Reference Guide (Protocol Version 19) for Cisco Unified Contact Center Enterprise" (Release 11.0(1), April 16, 2015). The later UCCE guides, up to Protocol Version 25 (Release 15.0(1)), were consulted only for what changes above version 19. By version 22, floating fields carry a two-byte header, which the Connector does not implement, so it requests at most version 19 from UCCE. For UCCX it follows the "Cisco Unified Contact Center Express CTI Protocol Developer Guide" (Release 12.5(1)), and was verified against a UCCX lab.
Connecting to QMS
The Connector also communicates with one or more QMS Recording Services (Data Collectors) through the Recording Control interface:
-
It queries users and system flags from every Recording Service at startup, and again on the interval set by
UpdateQMSDataIntervalMinutes. -
It requests the RecordingId of a user’s active recording and attaches flags to that recording.
-
Where QMS operates in contact center mode, it synchronizes QMS agent states by issuing AgentLogin and AgentLogout requests, and so associates each agent with the device the agent logged in at.
-
It polls the Recording Service for trigger rules configured in QMS, and publishes to QMS the parameters it can offer as flag sources (see Trigger Rules Configured in QMS).