This chapter provides information about Computer telephony integration (CTI) which enables you to leverage computer-processing functions while making, receiving, and managing telephone calls. CTI applications allow you to perform such tasks as retrieving customer information from a database on the basis of information that caller ID provides. CTI applications can also enable you to use information that an interactive voice response (IVR) system captures, so the call can be routed to the appropriate customer service representative or so the information is provided to the individual who is receiving the call.
Computer telephony integration (CTI) enables you to leverage computer-processing functions while making, receiving, and managing telephone calls. CTI applications allow you to perform such tasks as retrieving customer information from a database on the basis of information that caller ID provides. CTI applications can also enable you to use information that an interactive voice response (IVR) system captures, so the call can be routed to the appropriate customer service representative or so the information is provided to the individual who is receiving the call.
To configure Cisco Unified Communications Manager for CTI applications follow these steps.
To make the CTI application secure, configure authentication and encryption for CTI.
Configure the appropriate CTIManager and Cisco CallManager service parameters.
Add and configure an IP phone, CTI route points, or ports for each CTI application.
Configure the directory number for the CTI device.
Associate all devices that the application will use with the appropriate Cisco Unified Communications Manager group (via the device pool).
Configure the end users and application users that will use CTI applications. Add the device that is used for CTI applications (for example, IP phone, CTI port) to the Controlled Devices list that is on the End User and Application Users Configuration window.
Add the end users and application users to the Standard CTI Enabled user group.
Ensure all CTI users are in the Standard CTI Enabled user group, but they may also be in other CTI user groups.
Activate the CTIManager service on the appropriate servers, if not already activated.
Install and configure your applications.
Restart application engine (if required).
Computer Telephony Integration applications
The following list contains descriptions of some Cisco CTI applications that are available:
Cisco IP Communicator-Cisco IP Communicator, a desktop application, turns your computer into a full-feature telephone with the added advantages of call tracking, desktop collaboration, and one-click dialing from online directories. You can also use Cisco IP Communicator in tandem with a Cisco Unified IP Phone to place, receive, and control calls from your desktop PC. All features function in both modes of operation.
Cisco Unified Communications Manager Auto-Attendant-The Cisco Unified Communications Manager Auto-Attendant application works with Cisco Unified Communications Manager to receive calls on specific telephone extensions and to allow the caller to choose an appropriate extension.
Cisco Web Dialer-Cisco Web Dialer, which is installed on a Cisco Unified Communications Manager server and is used in conjunction with Cisco Unified Communications Manager, allows Cisco Unified IP Phone users to make calls from web and desktop applications.
Cisco Unified Communications Manager Assistant-The Cisco Unified Communications Manager Assistant feature enables managers and their assistants to work together more effectively. The feature comprises a call-routing service, enhancements to phone capabilities for the manager and the assistant, and assistant console interfaces that are primarily used by the assistant.
To determine which Cisco Unified Communications Manager CTI applications support SIP IP phones, see the application-specific documentation. For more information about Cisco SIP support, see Session Initiation Protocol.
A program called CTIManager includes the CTI components that interface with the applications that are separated out of Cisco Unified Communications Manager. The CTIManager service communicates with Cisco Unified Communications Manager by using the Cisco Unified Communications Manager communication framework, System Distribution Layer (SDL). Installation of the CTIManager program occurs on the Cisco Unified Communications Manager server during the Cisco Unified Communications Manager installation. Only one CTIManager can exist on an individual server. An application (JTAPI/TAPI) can have simultaneous connections to multiple CTIManagers; however, an application can use only one connection at a time to open a device with media termination. See the following figure.
Figure 1. Cisco Unified Communications Manager Components That Are Used to Provide CTI Services to Applications
CTIManager provides two advanced, clusterwide service parameters that are used in conjunction with the CTI Super Provider capability:
Maximum Devices Per Provider-This parameter specifies the maximum number of devices that a single CTI application can open. The default specifies 2000 devices.
Maximum Devices Per Node-This parameter specifies the maximum number of devices that all CTI applications can open on any CTIManager node in the Cisco Unified Communications Manager system. The default specifies 800 devices.
If the configured limits are exceeded, CTI generates alarms, but the applications continue to operate with the extra devices. For more information on CTI Super Provider, see the User management and CTI controlled devices.
Media Termination Points
CTI applications can terminate media on CTI ports and CTI route points in the following ways:
Static IP address and port number-Specify the media IP address and port number when the device gets opened. In this case, the media always terminates at the same IP address and port for all calls that are on that device. Only one application can terminate the media in this way.
Dynamic IP address or port number-Specify the media IP address or port number on a per-call basis. For each call that requires a media termination, notification gets sent to the application that requests the media termination information. The application then must send the IP address or port number back, so the media can go through. You can specify only the IP address or port number on a per-call basis. The capabilities of the device still get specified statically when the device is opened. With dynamic media termination, multiple applications can open a device (CTI port or route point) for media termination as long as the capabilities that each application specifies stay the same.
The following CTI-controlled device types exist:
Cisco Unified IP Phones (SCCP and SIP)
CTI applications support only some phones that run SIP; for example, it does not support the Cisco Unified IP Phone 7940 and 7960.
CTI route points
If a directory number (DN) is a member of a line group or hunt list, any device (CTI port, CTI route point, phone that is running SCCP, or phone that is running SIP) that uses that DN should not be associated with a CTI user.
CTI devices do not support the multicast Music On Hold feature. If a CTI device is configured with a multicast MOH device in the media resource group list of the CTI device, call control issues may result. CTI devices do not support multicast media streaming.
Cisco Unified IP Phones
CTI-controlled Cisco Unified IP Phones comprise phones that are running SCCP that a CTI application can control. CTI supports SIP on the Cisco Unified IP Phones (7911, 7941, 7961, 7970, and 7971) from the CTI interfaces JTAPI and TAPI, with some limitations. CTI applications control and monitor phones that are running SIP in the same manner as CTI-controlled/monitored phones that are running SCCP.
For phones that are running SCCP, outbound dialing supports enbloc (the phone collects all digits before passing them to Cisco Unified Communications Manager for routing) or digit-by-digit collection. If dialing is done digit-by-digit, a CTI dialing call state notification gets sent to the phone when it goes off hook and the first digit is pressed for an outgoing call. For enbloc outbound dialing, the dialing call state notification gets delayed until the phone collects all the digits and sends them to Cisco Unified Communications Manager for routing.
When an outbound call is pending on an SCCP device and is not yet connected, Cisco Unified Communications Manager does not process call setup requests for that device until the first call is connected. If you are using a CTI application for outbound dialing, Cisco recommends that you configure an interval between outbound calls to ensure that pending calls are connected before new call requests are initiated.
For phones that are running SIP, enbloc dialing always gets used even if the user first goes off hook before dialing digits; the phone will wait until all the digits are collected before sending the digits to Cisco Unified Communications Manager. This means that the dialing call state notification will only get generated after enough digits are pressed on the phone to match one of the configured dialing patterns. In all cases, the dialing state notifications will always get generated prior to the call being routed to the destination (as is the case with phones that are running SCCP).
Phones that are running SIP control when and how long to play reorder tone. When a phone that is running SIP receives a request to play reorder tone, it releases the resources from Cisco Unified Communications Manager and plays reorder tone. Therefore, the call appears to be idle to a CTI application regardless of when reorder tone is played on the phone. In these scenarios, applications can receive and initiate calls from the phone regardless whether reorder tone plays on the phone. Because resources have been released on Cisco Unified Communications Manager, the call does not count against the busy trigger and maximum number of call counters (that are configured on the Directory Number Configuration window).
Cisco Unified IP Phones with SIP that are configured to use UDP as the transport mode (instead of TCP) do not support the device data pass-through functionality; for example, the Quality Reporting Tool (QRT) requires the data pass-through functionality, so it cannot be used with IP phones that are configured with UDP.
CTI ports as virtual devices can have one or more virtual lines, and software-based Cisco Unified Communications Manager applications such as Cisco IP Softphone, Cisco Unified Communications Manager Auto-Attendant, and Cisco Unified IP Interactive Voice Response (IVR) use them. You configure CTI ports by using the same Cisco Unified Communications Manager Administration windows as you use to configure phones. For first-party call control, you must add a CTI port for each active voice line.
CTI Route Point
A CTI route point virtual device can receive multiple, simultaneous calls for application-controlled redirection. You can configure one or more lines on a CTI route point that users can call to access the application. Applications can answer calls at a route point and can also redirect calls to a CTI port or IP phone. When a CTI application requests to redirect a call by using the Redirect API, Cisco Unified Communications Manager uses the configuration for the line/device calling search space for the redirected party.
Route points can receive multiple, simultaneous calls; therefore, applications that want to terminate media for calls at route points must specify the media and port for the call on a per-call basis. CTI route points support the following features:
Answer a call
Make and receive multiple active calls
Redirect a call
Hold a call
Unhold a call
Drop a call
When a call arrives at a route point, the application must handle (accept, answer, redirect) it within a specified time. To configure the time that is allowed to answer a call, use the Cisco CallManager CTI New Call Accept Timer service parameter. Use the Directory Number Configuration window in Cisco Unified Communications Manager Administration to configure the number of simultaneous active calls on the route point.
If you are planning to use a TAPI application to control CTI port devices by using the Cisco CallManager Telephony Service Provider (TSP), you may only configure one line per CTI port device.
Applications that are identified as users can control CTI devices. When users have control of a device, they can control certain settings for that device, such as answer the call and call forwarding.
CTI devices (CTI ports, CTI route points) must associate with device pools that contain the list of eligible Cisco Unified Communications Managers for those devices.
The maximum number of CTI-controlled devices per node varies by server class as follows:
MCS-7825 and MCS-7835 servers support up to 800 CTI-controlled devices per node.
MCS-7845 servers support up to 2500 CTI-controlled devices per node.
When a CTI device fails (during a Cisco Unified Communications Manager failure, for example), Cisco Unified Communications Manager maintains media streams that are already connected between devices (for devices that support this feature). Cisco Unified Communications Manager drops calls that are in the process of being set up or modified (transfer, conference, redirect, and so on).
User management and CTI controlled devices
To allow a CTI application to control or monitor devices, ensure the devices are assigned to the end user or application user that is associated with the CTI application. This gets done by using the End User or Application User Configuration windows in Cisco Unified Communications Manager Administration. From the Device Association pane of the User Configuration window, an administrator associates the desired devices to the Controlled Devices list.
To allow CTI applications access to certain CTI capabilities, ensure the end user or application user that is associated with the application are added to one or more of the following CTI-related user groups:
Standard CTI Allow Call Monitoring-This user group allows an application to monitor calls.
Standard CTI Allow Call Park Monitoring-This user group allows an application to receive notification when calls are parked/unparked to all Call Park directory numbers.
Standard CTI Allow Call Recording-This user group allows an application to record calls.
Standard CTI Allow Calling Number Modification-This user group allows an application to modify the calling party number in supported CTI applications.
Standard CTI Allow Control of All Devices-This user group allows an application to control or monitor any CTI-controllable device in the system.
Standard CTI Allow Reception of SRTP Key Material-This user group allows an application to receive information that is necessary to decrypt encrypted media streams. This group typically gets used for recording and monitoring purposes.
Standard CTI Enabled-This user group, which is required for all CTI applications, allows an application to connect to Cisco Unified Communications Manager to access CTI functionality.
Standard CTI Secure Connection-Inclusion into this group will require that the application have a secure (TLS) CTI connection to Cisco Unified Communications Manager if the Cisco Unified Communications Manager cluster security is enabled.
The CTI application must support the specified user group to which it gets assigned.
Cisco recommends that users who are associated with the Standard CTI Allow Control of All Devices user group also be associated with the Standard CTI Secure Connection user group.
Applications that monitor and control all CTI-controllable devices
By adding an application user to the user group, Standard CTI Allow Control of All Devices, a CTI application can control any CTI-controllable devices that are configured in the Cisco Unified Communications Manager system. These applications sometimes get referred to as super provider applications. CTI super provider application dynamically associates/disassociates devices to/from an application control list, so this list/set of devices could be a variable list/set.
The system administrator configures the CTI super provider capability by adding the application user or end user to the Standard CTI Allow Control of All Devices user group. The administrator uses the User Groups Configuration window in Cisco Unified Communications Manager Administration to add users to user groups.
All CTI applications with super provider capability exercise control over any CTI-controllable devices in the system. If an application needs to know only the status of a device, it opens the device and gets the status. Because CTI super provider controls any device, you cannot exclude any device from CTI super provider control. CTI system limits determine the maximum number of devices that a CTI application can control. See the CTIManager for a description of CTI maximum limits. If the limits are exceeded, CTI generates alarms.
If a CTI application monitors a call park number, you must add the application to the Standard CTI Allow Call Park Monitoring user group.
If a CTI application monitors calls, you must add the application to the Standard CTI Allow Call Monitoring user group. If the CTI application records calls, you must add the application to the Standard CTI Allow Call Recording user group.
To calculate the number of CTI monitored lines in a system, use the following formula:
number of pilot point DNs + (number of clients open * number of directory numbers per phone) + (number of parked directory numbers * number of open clients) = CTI Monitored Lines
IPv6 and CTI
Computer Telephony Integration (CTI) provides IP address information through the JTAPI and TAPI interfaces, which can support IPv4 and IPv6 addresses. To support IPv6, applications need to use a JTAPI /TAPI client interface version that supports IPv6.
To find the directory numbers that a specific CTI route point is using, choose Dependency Records from the Related Links drop-down list box that is provided on the Cisco Unified Communications Manager Administration CTI Route Point Configuration and CTI Port Configuration windows. The Dependency Records Summary window displays information about directory numbers that are using the route point. To find out more information about the directory number, click the directory number, and the Dependency Records Details window displays. If the dependency records are not enabled for the system, the dependency records summary window displays a message.
Cisco does not support redundancy for Cisco Business Edition 5000 systems. CTI provides recovery of failure conditions that result from a failed Cisco Unified Communications Manager node within a cluster and failure of a CTIManager. This section describes the failover and fallback capabilities of the following components:
When a Cisco Unified Communications Manager node in a cluster fails, the CTIManager recovers the affected CTI ports and route points by reopening these devices on another Cisco Unified Communications Manager node. If an application has a phone device open, the CTIManager also reopens the phone when the phone fails over to a different Cisco Unified Communications Manager. If the Cisco Unified IP Phone does not fail over to a different Cisco Unified Communications Manager, the CTIManager cannot open the phone or a line on the phone. The CTIManager uses the Cisco Unified Communications Manager group that is assigned to the device pool to determine which Cisco Unified Communications Manager to use to recover the CTI devices and phones that the applications opened.
When the CTIManager initially detects the Cisco Unified Communications Manager failure, it notifies the application (JTAPI/TAPI) that the devices on that Cisco Unified Communications Manager went out of service. If no other Cisco Unified Communications Manager in the group is available, the devices remain out of service. When those devices successfully rehome to another Cisco Unified Communications Manager, the CTIManager notifies the application that the devices are back in service.
When a failed Cisco Unified Communications Manager node comes back in service, the CTIManager rehomes the affected CTI ports/route points to their original Cisco Unified Communications Manager. The rehoming process starts when calls are no longer being processed or active on the affected device. Because devices cannot be rehomed while calls are being processed or active, the rehoming process may not occur for a long time, especially for route points that can handle many simultaneous calls.
If none of the Cisco Unified Communications Managers in the Cisco Unified Communications Manager group is available, the CTIManager waits until a Cisco Unified Communications Manager comes into service and tries to open the CTI device again. If for some reason the Cisco Unified Communications Manager cannot open the device or associated lines when it comes back into service, the CTIManager closes the device and lines.
When a CTIManager fails, the applications that are connected to the CTIManager can recover the affected resources by reopening these devices on another CTIManager. An application determines which CTIManager to use on the basis of CTIManagers that you defined as primary and backup when you set up the application (if supported by the application). When the application connects to the new CTIManager, it can reopen the devices and lines that previously opened. An application can reopen a Cisco Unified IP Phone before the phone rehomes to the new Cisco Unified Communications Manager; however, it cannot control the phone until the rehoming completes.
The applications do not rehome to the primary CTIManager when it comes back in service. Applications fail back to the primary CTIManager if you restart the application or if the backup CTIManager fails.
In the Application Heartbeat Maximum Interval and Application Heartbeat Minimum Interval advanced service parameters, you define the interval at which CTIManager expects to receive a message from the application within two consecutive intervals. When an application (TAPI/JTAPI or an application that directly connects to the CTIManager) fails, the CTIManager closes the application and redirects unterminated calls at CTI ports and route points to the configured call forward on failure (CFOF) number. The CTIManager also routes subsequent calls into those CTI ports and route points to the configured Call Forward No Answer (CFNA) number until the application recovers and reregisters those devices.