Cisco IP Contact Center Enterprise Edition Releases 5.0 and 6.0 Solution Reference Network Design (SRND)
Architecture Overview
Downloads: This chapterpdf (PDF - 461.0KB) The complete bookPDF (PDF - 3.26MB) | Feedback

Architecture Overview

Table Of Contents

Architecture Overview

Cisco CallManager

Cisco Internet Service Node (ISN)

Cisco IP Interactive Voice Response (IP IVR)   

Cisco Intelligent Contact Management (ICM) Software

Basic IPCC Call and Message Flow

ICM Software Modules

IPCC Components, Terminology, and Concepts

IPCC Agent Desktop

Administrative Workstation

JTAPI Communications

ICM Routing Clients

Device Targets

Labels

Agent Desk Settings

Agents

Skill Groups

Directory (Dialed) Numbers and Routing Scripts

Agent Login and State Control

IPCC Routing

Translation Routing and Queuing

Reroute On No Answer (RONA)

Combining IP Telephony and IPCC in the Same Cisco CallManager Cluster

Queuing in an IPCC Environment

Transfers in an IPCC Environment

Dialed Number Plan

Dial Plan Type

Post Route

Route Request

Single-Step (Blind) Transfer

Consultative Transfer

Reconnect

Alternate

Non-ICM Transfers

Agent-to-Agent Transfers

Transferring from an IVR to a Specific Agent

Transfer Reporting

Combination or Multiple Transfers

Transfers of Conferenced Calls

PSTN Transfers (Takeback N Transfer, or Transfer Connect)

Call Admission Control

Gatekeeper Controlled

Locations Controlled


Architecture Overview


The Cisco IP Contact Center (IPCC) solution consists of four primary Cisco software components:

IP Communications infrastructure: Cisco CallManager

Queuing and self-service: Cisco IP Interactive Voice Response (IP IVR) or Cisco Internet Service Node (ISN)

Contact center routing and agent management: Cisco Intelligent Contact Management (ICM) Software

Agent desktop software: Cisco Agent Desktop or Cisco Toolkit Desktop (CTI Object Server)

In addition to these core components, the following Cisco hardware products are required for a complete IPCC deployment:

Cisco IP Phones

Cisco voice gateways

Cisco LAN/WAN infrastructure

Once deployed, IPCC provides an integrated Automatic Call Distribution (ACD), IVR, and Computer Telephony Integration (CTI) solution.

The following sections discuss each of the software products in more detail and describe the data communications between each of these components. For more information on a particular product, refer to the specific product documentation available online at

http://www.cisco.com

Cisco CallManager

Cisco CallManager, when combined with the appropriate LAN/WAN infrastructure, voice gateways, and IP phones, provides the foundation for a Voice over IP (VoIP) solution. Cisco CallManager is a software application that runs on Intel Pentium-based servers running Microsoft Windows Server operating system software and Microsoft SQL Server relational database management software. The Cisco CallManager software running on a server is referred to as a Cisco CallManager server. Multiple Cisco CallManager servers can be grouped into a cluster to provide for scalability and fault tolerance. For details on Cisco CallManager call processing capabilities and clustering options, refer to the Cisco IP Telephony Solution Reference Network Design (SRND) guide, available at

http://www.cisco.com/go/srnd

A single Cisco CallManager server is capable of supporting hundreds of agents. In a fault-tolerant design, a Cisco CallManager cluster of servers is capable of supporting thousands of agents. However, the number of agents and the number of busy hour call attempts (BHCA) supported within a cluster varies and must be sized according to guidelines defined in the Cisco IP Telephony Solution Reference Network Design (SRND) guide.

Typically when designing an IPCC solution, you first define the deployment scenario, including arrival point(s) for voice traffic and the location(s) of the contact center agents. After defining the deployment scenario, you can determine the sizing of the individual components within the IPCC design for such things as how many Cisco CallManager servers are needed within a Cisco CallManager cluster, how many voice gateways are needed for each site and for the entire enterprise, how many servers and what types of servers are required for the ICM software, how many IP IVR/ISN servers are needed, and so forth.

Cisco Internet Service Node (ISN)

The Cisco Internet Service Node (ISN) provides prompting, collecting, queuing, and call control services using standard web-based technologies. The ISN architecture is distributed, fault tolerant, and highly scalable. With the Cisco ISN system, voice is terminated on Cisco IOS® gateways that interact with the ISN application server (Microsoft Windows Server) using VXML (speech) and H.323 (call control). The ISN software is tightly integrated with the Cisco ICM software for application control. The ICM scripting environment controls the execution of "building block" functions such as play media, play data, menu, and collect information. The ICM script can also invoke external VXML applications via ISN. External VXML applications can return results and control to the ICM script when complete. Advanced load balancing can be provided by Cisco Content Server Switches (CSS).

The Cisco ISN can support multiple grammars for prerecorded announcements. The ISN can optionally provide automatic speech recognition and text-to-speech capability. The Cisco ISN can also access customer databases and applications via the Cisco ICM software.

The Cisco ISN also provides a queuing platform for the IPCC solution. Telephone calls can remain queued on Cisco ISN until they are routed to a contact center agent (or external system). The Cisco ISN can transfer calls using any of the following methods:

IP Switching

The ISN directs the ingress Cisco IOS voice gateway to redirect the call's packet voice path to a new IP-based destination, but the ISN retains signaling control over the call so that it can bring the call back for additional treatment or transfer it to additional destinations. With this transfer method, a PSTN port is used on the ingress gateway for the life of the call. An additional PSTN port is also required on an egress gateway if the call is transferred to a PSTN-based destination.

Outpulse Transfer

The ISN sends DTMF digits to the PSTN via the ingress gateway to make the PSTN carrier disconnect the call from the gateway and route it elsewhere via the PSTN. This method eliminates consumption of ports on the gateway for the rest of the call, but it might not be available with all carriers.

IN Transfer

Cisco ICM software temporarily routes PSTN-originated calls to ISN via a Cisco IOS Voice Gateway. When ISN treatment is finished, the Cisco ICM removes the call from ISN and routes it elsewhere over the PSTN. This method eliminates consumption of ports on the gateway for the rest of the call, but it might not be available with all carriers.

Call reporting uses the IPCC reporting infrastructure, which provides both standard reports and a development environment for custom reporting via Cisco Consulting Engineering Services or a certified reseller.

Cisco IP Interactive Voice Response (IP IVR)   

The IP IVR provides prompting, collecting, and queuing capability for the IPCC solution. The IP IVR is under the control of the ICM software via the Service Control Interface (SCI). When an agent becomes available, the ICM software instructs the IP IVR to transfer the call to the selected agent phone. The IP IVR then requests Cisco CallManager to transfer the call to the selected agent phone.

Cisco IP IVR is a software application that runs on Intel Pentium-based servers running Microsoft Windows Server operating system software and Microsoft SQL Server relational database management software. Each IP IVR server is capable of supporting over 100 logical IP IVR ports, and multiple IP IVR servers can be deployed in a single Cisco CallManager cluster.

The IP IVR has no physical telephony trunks or interfaces like a traditional IVR. The telephony trunks are terminated at the voice gateway. Cisco CallManager provides the call processing and switching to set up a G.711 Real-Time Transport Protocol (RTP) stream from the voice gateway to the IP IVR. The IP IVR communicates with Cisco CallManager via the Java Telephony Application Programming Interface (JTAPI), and the IP IVR communicates with the ICM via the Service Control Interface (SCI).

The chapter on Sizing Call Center Resources, page 4-1 discusses how to determine the number of IVR ports required. For deployments requiring complete fault tolerance, a minimum of two IP IVRs is required. The chapter on Design Considerations for High Availability, page 3-1, provides details on IPCC fault tolerance.

A lower-cost licensing option of the IP IVR is called the IP Queue Manager. The IP Queue Manager provides a subset of the IP IVR capability. The database, Java, and HTTP subsystems are not included the IP Queue Manager software license. The IP Queue Manager provides an integrated mechanism for prompting and collecting input from callers and for playing queuing announcements. The sizing for IP Queue Manager and IP IVR are the same.


Note Because the IP IVR and IP Queue Manager are so similar, the remainder of this document refers to the IP IVR only.


Cisco Intelligent Contact Management (ICM) Software

The Cisco ICM software provides contact center features in conjunction with Cisco CallManager. Features provided by the ICM software include agent state management, agent selection, call routing and queue control, IVR control, screen pops, and contact center reporting. ICM software runs on Intel Pentium servers running Microsoft Windows 2000 operating system software and Microsoft SQL Server database management software. The supported Pentium servers can be single, dual, or quad Pentium CPU servers with varying amounts of RAM. This variety of supported servers allows the ICM software to scale and to be sized to meet the needs of the deployment requirements. The chapter on Sizing IPCC Components and Servers, page 5-1, provides details on server sizing.

Basic IPCC Call and Message Flow

Figure 1-1 shows the flow of a basic IPCC call. In this scenario, all of the agents are assumed to be "not ready" when the call arrives, so the call is routed by the ICM to the IP IVR. While the call is connected to the IP IVR, call queuing treatment (announcements, music, and so on) is provided. When an agent becomes available, the ICM directs the IP IVR to transfer the call to that agent's phone. At the same time the call is being transferred, the ICM sends the caller data such as Automatic Number Identification (ANI) and Directory Number (DN) to the agent desktop software.

Figure 1-1 Basic IPCC Call Flow

The call flow in Figure 1-1 is as follows:

1. Call delivered from PSTN to voice gateway.

2. MGCP or H.323 Route Request sent to Cisco CallManager.

3. JTAPI Route Request sent to ICM.

4. ICM runs routing script. No available agent found, so IP IVR label returned from routing script.

5. ICM instructs Cisco CallManager to transfer call to IP IVR, and Cisco CallManager does as instructed.

6. IP IVR notifies ICM that call has arrived.

7. ICM instructs IP IVR to play queue announcements.

8. Agent becomes ready (completed previous call or just went ready).

9. ICM sends call data to selected agent screen and instructs the IP IVR to transfer the call to the agent phone.

10. IP IVR transfers the VoIP voice path to selected agent phone.

11. Call is answered by agent.

ICM Software Modules

The Cisco ICM software is a collection of modules that can run on multiple servers. The amount of software that can run on one server is primarily based upon busy hour call attempts (BHCA) and the size of the server being used (single, dual, or quad CPU). Other factors that impact the hardware sizing are the number of agents, the number of skills per agent, the number of IP IVR ports, the number of VRU Script nodes in the ICM routing script, and which statistics agents need at their desktops.

The core ICM software modules are:

Router

Logger

Cisco CallManager Peripheral Interface Manager (PIM)

IP IVR PIM

CTI Server

CTI OS Server

Administrative Workstation (AW)

The Router is the module that makes all routing decisions on how to route a call or customer contact. The Logger is the database module that stores contact center configuration and reporting data. The Cisco CallManager PIM is the module that interfaces to a Cisco CallManager cluster via the JTAPI protocol. The IP IVR PIM is the module that interfaces to the IP IVR/ISN via the Service Control Interface (SCI) protocol. The CTI OS Server is the module that interfaces to the IPCC Agent Desktop application.

Each ICM software module can be deployed in a redundant fashion. When a module is deployed in a redundant fashion, we refer to the two sides as side A and side B. For example, Router A and Router B are redundant instances of the Router module (process) running on two different servers. This redundant mode is referred to as a "duplex" configuration, whereas a non-redundant process is said to be running in "simplex" mode. When processes are running in a duplex configuration, they are not load balanced. The A and B sides are both executing the same set of messages and, therefore, producing the same result. In this configuration, logically, there appears to be only one Router.

Most of the ICM software modules support multiple logical instances for scalability. The only software modules that do not support multiple instances are the Router and Logger. The Router and Logger combined are often referred to as the Central Controller. The Central Controller is the hub of the hub-and-spoke architecture for IPCC. By having only one central controller, the IPCC system has only one "enterprise view" of all the agents and contacts in queue. This enterprise view enables IPCC to provide a single logical ACD controlling contacts and agents that can be distributed among many sites.

When the Router and Logger modules run on the same server, the server is referred to as a Rogger.

For each Cisco CallManager cluster in your IPCC environment, you need a Cisco CallManager PIM. For each Cisco CallManager PIM, you need one CTI Server and one CTI OS Server to communicate with the desktops associated with the phones for that Cisco CallManager cluster. For each IP IVR, you need one IP IVR PIM. The server that runs the Cisco CallManager PIM, the CTI Server, the CTI OS Server, and the IP IVR PIMs, is referred to as a Peripheral Gateway (PG). Often, the Cisco CallManager PIM, the CTI Server, the CTI OS Server, and multiple IP IVR PIMs will run on the same server. Internal to the PG is a process called the PG Agent, which communicates from the PG to the Central Controller. Another internal PG process is the Open Peripheral Controller (OPC), which enables the other processes to communicate with each other and is also involved in synchronizing PGs in redundant PG deployments. Figure 1-2 shows the communications among the various PG software processes.

Figure 1-2 Communications Among Peripheral Gateway Software Processes

In larger, multi-site (multi-cluster) environments, multiple PGs are usually deployed. Each Cisco CallManager cluster requires a co-located PG. When multiple Cisco CallManager clusters are deployed, the ICM software makes them all appear to be part of one logical enterprise-wide contact center with one enterprise-wide queue.

IPCC Components, Terminology, and Concepts

This section describes the major components and concepts employed in an IPCC solution.

IPCC Agent Desktop

The IPCC agent desktop application is the agent interface that enables the agent to perform agent state control (login, logout, ready, not ready, wrap up, and so forth) and call control (answer, release, hold, retrieve, transfer, conference, make call, and so forth). All call control must be done via the agent desktop application.

The agent desktop has a media-terminated "softphone" option that allows you to eliminate the need for a hardware IP Phone. (See Figure 1-3. Do not confuse the agent desktop softphone option with other softphone applications such as the Cisco IP SoftPhone.) When using the agent desktop softphone option, a headset is connected to the PC, which will encode/decode the VoIP packets and send/receive those packets to/from the LAN.

Figure 1-3 Cisco Agent Desktop

There are three kinds of agent and supervisor desktop options available:

Cisco Agent Desktop, an out-of-the-box agent desktop (shown in Figure 1-3).

Cisco Toolkit Desktop, which is a software development toolkit built on the CTI Object Server (CTI OS). The Cisco Toolkit Desktop is implemented for custom desktops or desktops integrated with other applications (for example, a customer database application).

Embedded CRM desktops such as the Cisco Siebel Desktop. The Cisco Siebel Desktop is an IPCC agent desktop that is fully embedded within the Siebel desktop application. The Cisco Siebel Desktop is offered by Cisco, and a number of other embedded CRM desktops are available from Cisco partners.

In addition to an agent desktop, a supervisor desktop is available with each of these options.

The chapter on Agent Desktop and Supervisor Desktop, page 7-1, covers details on desktop selection and design considerations.

Administrative Workstation

The Administrative Workstation (AW) provides a collection of administrative tools for managing the ICM software configuration. The two primary configuration tools on the AW are the Configuration Manager and the Script Editor. The Configuration Manager tool is used to configure the ICM database to add agents, add skill groups, assign agents to skill groups, add dialed numbers, add call types, assign dialed numbers to call types, assign call types to ICM routing scripts, and so forth. The Script Editor tool is used to build ICM routing scripts. ICM routing scripts specify how to route and queue a contact (that is, the script identifies which agent should handle a particular contact).

For details on the use of these tools, refer to the IP Contact Center Administration Guide, available at

http://www.cisco.com/univercd/cc/td/doc/product/icm/ipccente/index.htm

The AW is the only software module that must run on a separate server from all of the other IPCC software modules. An ICM installation supports an unlimited number of AWs and can be deployed co-located with or remote from the ICM Central Controller. Each AW is independent of other AWs, and redundancy is provided by deploying multiple AWs.

Some AWs communicate directly with the ICM Central Controller, and they are called distributor AWs. An ICM deployment must have at least one distributor AW. Additional AWs (distributors or clients) are also allowed for redundancy (primary and secondary distributors) or for additional access by the AW clients in a site. At any additional site, at least one distributor and any number of client AWs can be deployed; however, client AWs should always be local to their AW distributor.

Client AWs communicate with a distributor AW to view and modify the ICM Central Controller database and to receive real-time reporting data. Distributor AWs relieve the Central Controller (the real-time call processing engine) from the task of constantly distributing real-time contact center data to the client AWs.

AWs can be installed with two software options:

Historical Data Server (HDS)

WebView Server

The Historical Data Server (HDS) option provides a replicated copy of the historical reporting data. The HDS must be installed with a distributor AW. The WebView Server option provides browser-based reporting. This option enables reporting to be done from any computer with a browser. The WebView Server must be installed on a distributor AW with HDS. The net effect of adding the WebView Server is to turn the distributor AW into a web server.

The reason for requiring the AW to run on a separate server for production systems is to ensure that complex reporting queries do not interrupt the real-time call processing of the Router and Logger processes. For lab or prototype systems, the AW (with the WebView Server option) can be installed on the same server as the Router and Logger. If the AW is installed on the same server as the Logger, then HDS is no longer required because a complete copy of the Logger database is already present on the server.

For more details on the design and configuration of the AWs, refer to the ICM product documentation available online at Cisco.com.

JTAPI Communications

In order for JTAPI communications to occur between Cisco CallManager and external applications such as the IPCC and IP IVR, a JTAPI user ID and password must be configured within Cisco CallManager. Upon startup of the Cisco CallManager PIM or upon startup of the IP IVR, the JTAPI user ID and password are used to log in to Cisco CallManager. This login process by the application (Cisco CallManager PIM or IP IVR) establishes the JTAPI communications between the Cisco CallManager cluster and the application. A single JTAPI user ID is used for all communications between the entire Cisco CallManager cluster and the ICM. A separate JTAPI user ID is also required for each IP IVR server. In an IPCC deployment with one Cisco CallManager cluster and two IP IVRs, three JTAPI user IDs are required: one JTAPI user ID for the ICM application and two JTAPI user IDs for the two IP IVRs.

The Cisco CallManager software includes a module called the CTI Manager, which is the layer of software that communicates via JTAPI to applications such as the ICM and IP IVR. Every node within a cluster can execute an instance of the CTI Manager process, but the Cisco CallManager PIM on the PG communicates with only one CTI Manager (and thus one node) in the Cisco CallManager cluster. The CTI Manager process communicates CTI messages to/from other nodes within the cluster. For example, suppose a deployment has a voice gateway homed to node 1 in a cluster, and node 2 executes the CTI Manager process that communicates to the ICM. When a new call arrives at this voice gateway and needs to be routed by the ICM, node 1 sends an intra-cluster message to node 2, which will send a route request to the ICM to determine how the call should be routed.

Each IP IVR also communicates with only one CTI Manager (or node) within the cluster. The Cisco CallManager PIM and the two IP IVRs from the previous example could each communicate with different CTI Managers (nodes) or they could all communicate with the same CTI Manager (node). However, each communication uses a different user ID. The user ID is how the CTI Manager keeps track of the different applications.

When the Cisco CallManager PIM is redundant, only one side is active and in communication with the Cisco CallManager cluster. Side A of the Cisco CallManager PIM communicates with the CTI Manager on one Cisco CallManager node, and side B of the Cisco CallManager PIM communicates with the CTI Manager on another Cisco CallManager node. The IP IVR does not have a redundant side, but the IP IVR does have the ability to fail over to another CTI Manager (node) within the cluster if its primary CTI Manager is out of service. For more information on failover, refer to the chapter on Design Considerations for High Availability, page 3-1.

The JTAPI communications between the Cisco CallManager and IPCC include three distinct types of messaging:

Routing control

Routing control messages provide a way for Cisco CallManager to request routing instructions from IPCC.

Device and call monitoring

Device monitoring messages provide a way for Cisco CallManager to notify IPCC about state changes of a device (IP phone) or a call.

Device and call control

Device control messages provide a way for Cisco CallManager to receive instructions from IPCC on how to control a device (IP phone) or a call.

A typical IPCC call includes all three types of JTAPI communication within a few seconds. When a new call arrives, Cisco CallManager requests routing instructions from the ICM. For example, when Cisco CallManager receives the routing response from the ICM, Cisco CallManager attempts delivery of the call to the agent phone by instructing the phone to begin ringing. At that point, Cisco CallManager notifies the ICM that the device (IP phone) has started ringing, and that notification enables the agent's answer button on the desktop application. When the agent clicks the answer button, the ICM instructs Cisco CallManager to make the device (IP phone) go off-hook and answer the call.

In order for the routing control communication to occur, Cisco CallManager requires the configuration of a CTI Route Point. A CTI Route Point is associated with a specific JTAPI user ID, and this association enables Cisco CallManager to know which application provides routing control for that CTI Route Point. Directory (Dialed) Numbers (DNs) are then associated with the CTI Route Point. A DN is associated to a CTI Route Point that is associated with the ICM JTAPI user ID, and this enables Cisco CallManager to generate a route request to the ICM when a new call to that DN arrives.

In order for the IP phones (devices) to be monitored and controlled, they also must be associated in Cisco CallManager with a JTAPI user ID. In an IPCC environment, the IP phones are associated with the ICM JTAPI user ID. When an agent logs in from the desktop, the Cisco CallManager PIM requests Cisco CallManager to allow the PIM to begin monitoring and controlling that device (IP phone). Until the login has occurred, Cisco CallManager does not allow the ICM to monitor or control that IP phone. If the device has not been associated with the ICM JTAPI user ID, then the agent login request will fail.

Because the IP IVR also communicates with Cisco CallManager using the same JTAPI protocol, these same three types of communication also occur with the IP IVR. Unlike the ICM, the IP IVR provides both the application itself and the devices to be monitored and controlled.

The devices that the ICM monitors and controls are the physical IP phones. The IP IVR does not have real physical ports like a traditional IVR. Its ports are logical ports (independent software tasks or threads running on the IP IVR application server) called CTI Ports. For each CTI Port on the IP IVR, there needs to be a CTI Port device defined in Cisco CallManager.

Unlike a traditional PBX or telephony switch, Cisco CallManager does not select the IP IVR port to which it will send the call. Instead, when a call needs to be made to a DN that is associated with a CTI Route Point that is associated with an IP IVR JTAPI user, Cisco CallManager asks the IP IVR (via JTAPI routing control) which CTI Port (device) should handle the call. Assuming the IP IVR has an available CTI Port, the IP IVR will respond to the Cisco CallManager routing control request with the Cisco CallManager device identifier of the CTI Port that is going to handle that call.

When an available CTI Port is allocated to the call, an IP IVR workflow is started within the IP IVR. When the IP IVR workflow executes the accept step, a JTAPI message is sent to Cisco CallManager to answer the call on behalf of that CTI Port (device). When the IP IVR workflow wants the call transferred or released, it again instructs the Cisco CallManager what it would like done with that call. These scenarios are examples of device and call control performed by the IP IVR.

When a caller releases the call while interacting with the IP IVR, the voice gateway detects the caller release and notifies Cisco CallManager via H.323 or Media Gateway Control Protocol (MGCP), which then notifies the IP IVR via JTAPI. When DTMF tones are detected by the voice gateway, it notifies Cisco CallManager via H.245 or MGCP, which then notifies the IP IVR via JTAPI. These scenarios are examples of device and call monitoring performed by the IP IVR.

In order for the CTI Port device control and monitoring to occur, the CTI Port devices on Cisco CallManager must be associated with the appropriate IP IVR JTAPI user ID. If you have two 150-port IP IVRs, you would have 300 CTI ports. Half of the CTI ports (150) would be associated with JTAPI user IP IVR #1, and the other 150 CTI ports would be associated with JTAPI user IP IVR #2.

While Cisco CallManager can be configured to route calls to IP IVRs on its own, routing of calls to the IP IVRs in an IPCC environment should be done by the ICM (even if you have only one IP IVR and all calls require an initial IVR treatment). Doing so will ensure proper IPCC reporting. For deployments with multiple IP IVRs, this routing practice also allows the ICM to load-balance calls across the multiple IP IVRs.

ICM Routing Clients

An ICM routing client is anything that can generate a route request to the ICM Central Controller. The Cisco CallManager PIM (representing the entire Cisco CallManager cluster) and each IP IVR/ISN PIM are routing clients. Routing clients generate route requests to the ICM Central Controller. The ICM Central Controller then executes a routing script and returns a routing label to the routing client. A redundant PIM is viewed as a single logical routing client, and only one side of a PIM is active at any point in time. In an IPCC deployment with one Cisco CallManager cluster (with any number of nodes) and two IP IVRs, three routing clients are required: the Cisco CallManager PIM and the two IP IVR/ISN PIMs.

The public switched telephone network (PSTN) can also function as a routing client. The ICM supports a software module called a Network Interface Controller (NIC), which enables the ICM to control how the PSTN routes a call. Intelligently routing a call before the call is delivered to any customer premise equipment is referred to as pre-routing. Only certain PSTNs have NICs supported by the ICM. A detailed list of PSTN NICs and details on ICM pre-routing can be found in the standard ICM product documentation available at

http://www.cisco.com/univercd/cc/td/doc/product/icm/

Other applications such as the Cisco Media Blender, the Cisco Collaboration Server, and the Cisco E-Mail Manager can also function as routing clients to allow the ICM to become a multi-channel contact routing engine. Details of currently available multi-channel routing are available on Cisco.com.

Device Targets

Each IP phone must be configured in the ICM Central Controller database as a device target. Only one extension on the IP phone may be configured as an ICM device target. Additional extensions may be configured on the IP phone, but those extensions will not be known to the ICM software and, thus, no monitoring or control of those additional extensions is possible. The ICM provides call treatment for Reroute On No Answer (RONA), therefore it is not necessary to configure call forwarding on ring-no-answer in the Cisco CallManager configuration for the IP phones. Unless call center policy permits warm (agent-to-agent) transfers, the IPCC extension also should not be published or dialed by anyone directly, and only the ICM software should route calls to this IPCC phone extension.

At agent login, the agent ID and IP phone extension are associated, and this association is released when the agent logs out. This feature allows the agent to log in at another phone and allows another agent to log in at that same phone. At agent login, the Cisco CallManager PIM requests Cisco CallManager to allow it to begin monitoring that IP phone and to provide device and call control for that IP phone. As mentioned previously, each IP phone must be mapped to the ICM JTAPI user ID in order for the agent login to be successful.

Labels

Labels are the response to a route request from a routing client. The label is a pointer to the destination where the call is to be routed (basically, the number to be dialed by the routing client). Many labels in an IPCC environment correspond to the IPCC phone extensions so that Cisco CallManager and IP IVR can route or transfer calls to the phone of an agent who has just been selected for a call.

Often, the way a call is routed to a destination depends upon where the call originated and where it is being terminated. This is why IPCC uses labels. For example, suppose we have an environment with two regionally separated Cisco CallManager clusters, Site 1 and Site 2. An IP phone user at Site 1 will typically just dial a four-digit extension to reach another IP phone user at Site 1. In order to reach an IP phone user at Site 2 from Site 1, users might have to dial a seven-digit number. To reach an IP phone user at either site from a PSTN phone, users might have to dial a 10- digit number. From this example, we can see how a different label would be needed, depending upon where the call is originating and terminating.

Each combination of device target and routing client must have a label. For example, a device target in an IPCC deployment with a two-node Cisco CallManager cluster and two IP IVRs will require three labels. If you have 100 device targets (IP phones), you would need 300 labels. If there are two regionally separated Cisco CallManager clusters, each with two IP IVRs and 100 device targets per site, then we would need 1200 labels for the six routing clients and 200 device targets (assuming we wanted to be able to route a call from any routing client to any device target). If calls are to be routed to device targets only at the same site as the routing client, then we would need only 600 labels (three routing clients to 100 device targets, and then doubled for Site 2).

Labels are also used to route calls to IP IVR CTI Ports. Details on configuring labels are provided in the IPCC Installation Guide, available on Cisco.com. A bulk configuration tool is also available to simplify the configuration of the labels.

Agent Desk Settings

Agent Desk Settings provide a profile that specifies parameters such as whether auto-answer is enabled, how long to wait before rerouting a call for Ring No Answer, what DN to use in the rerouting, and whether reason codes are needed for logging out and going not-ready. Each agent must be associated with an agent desk setting profile in the ICM configuration. A single agent desk setting profile can be shared by many agents. Changes made to an agent's desk setting profile while the agent is logged in are not activated until the agent logs out and logs in again.

Agents

Agents are configured within the ICM and are associated with one specific Cisco CallManager PIM (that is, one Cisco CallManager cluster). Within the ICM configuration, you also configure the password for the agent to use at login.

Skill Groups

Skill groups are configured within the ICM so that agents with similar skills can be grouped together. Agents can be associated with one or more skill groups. Changes made to an agent's skill group association while the agent is logged in are not activated until the agent logs out and logs in again.

Skill groups are associated with a specific Cisco CallManager PIM. Skill groups from multiple PIMs can be grouped into Enterprise Skill Groups. Creating and using Enterprise Skill Groups can simplify routing and reporting in some scenarios.

Directory (Dialed) Numbers and Routing Scripts

In order for Cisco CallManager to generate a route request to the ICM, Cisco CallManager must associate the DN with a CTI Route Point that is associated with the ICM JTAPI User. The DN must also be configured in the ICM. Once the ICM receives the route request with the DN, that DN is mapped to an ICM Call type, which is then mapped to an ICM routing script.

Agent Login and State Control

Agents log in to IPCC from their IPCC agent desktop application. When logging in, the agent is presented with a dialog box that prompts for agent ID, password, and the IPCC phone extension to be used for this login session. It is at login time that the agent ID, phone extension (device target), agent desk setting profile, skills, and desktop IP address are all dynamically associated. The association is released upon agent logout.

IPCC Routing

The example routing script in Figure 1-4 illustrates how IPCC routes calls. In this routing script, the Cisco CallManager PIM (or cluster) is the routing client. Upon receipt of the route request, the ICM maps the DN to a call type and then maps the call type to this routing script. In this routing script, the ICM router first uses a Select node to look for the Longest Available Agent (LAA) in the BoatSales skill group on the CCM_PG_1 peripheral (or cluster). The ICM router determines that agent 111 is the LAA. Agent 111 is currently logged in from device target 1234 (Cisco CallManager phone extension 1234 in this scenario). The ICM router then determines the label to be returned, based upon the device target and routing client combination. The appropriate label is then returned to the routing client (Cisco CallManager cluster) so that the call can be routed properly to that IP Phone (device target).

Figure 1-4 Routing Script Example

Translation Routing and Queuing

If no agents are available, then the router exits the Select node and transfers the call to an IP IVR to begin queuing treatment. The transfer is completed using the Translation Route to VRU node. The Translation Route to VRU node returns a unique translation route label to the original routing client, the Cisco CallManager cluster. The translation route label will equal a DN configured in Cisco CallManager. In Cisco CallManager, that DN is mapped to a CTI Route Point that is associated with the JTAPI user for the IP IVR to which the call is being transferred.

Cisco CallManager and IP IVR will execute the JTAPI routing control messaging to select an available CTI Port.

When the call is successfully transferred to the IP IVR, the IP IVR translation routing application first sends a request instruction message to the ICM via the SCI between the IP IVR and the ICM. The ICM identifies the DN as being the same as the translation route label and is then able to re-associate this call with the call that was previously being routed. The ICM then re-enters the routing script that was previously being run for this call. The re-entry point is the successful exit path of the Translation Route to VRU node. (See Figure 1-5.) At this point, the routing client has changed from the Cisco CallManager cluster to IPIVR1.

While the call was being transferred, the routing script was temporarily paused. After the transfer to the IP IVR is successfully completed, the IP IVR becomes the routing client for this routing script. Next the routing script queues the call to the BoatSales skill group and then instructs the IP IVR to run a specific queue treatment via the Run VRU Script node. Eventually agent 111 becomes available, and as in the previous example, the label to be returned to the routing client is identified based upon the combination of device target and routing client. Note that the routing client is now the IP IVR. The label returned (1234) when agent 111 becomes available causes the IP IVR to transfer the call to agent 111 (at extension 1234).

Figure 1-5 Translation Routing and Queuing

For each combination of Cisco CallManager cluster and IP IVR, a translation route and a set of labels is required. For example, if a deployment has one Cisco CallManager cluster and four IP IVRs, then four translation routes and sets of labels are required.

For deployments with multiple IP IVRs, the ICM routing script should select the IP IVR with the greatest number of idle IP IVR ports and then translation-route the call to that specific IP IVR. If no IP IVR ports are available, then the script should execute a Busy node. If a high number of calls are executing Busy nodes, then it is important to resize your IP IVR port capacity.

Reroute On No Answer (RONA)

When a call is routed to an agent but the agent fails to answer the call within a configurable amount of time, the Cisco CallManager PIM for the agent who did not answer will change that agent's state to "not ready" (so that the agent does not get more calls) and launch a route request to find another agent. Any call data is preserved and popped onto the next agent's desktop. If no agent is available, the call can be sent back to the IP IVR for queuing treatment again. Again, all call data is preserved. The routing script for this RONA treatment should set the call priority to "high" so that the next available agent is selected for this caller. In the agent desk settings, you can set the RONA timer and the DN used to specify a unique call type and routing script for RONA treatment.

Combining IP Telephony and IPCC in the Same Cisco CallManager Cluster

It is possible for a Cisco CallManager cluster to support IP phones with both normal IP Telephony (office) extensions and IPCC (call center) extensions. When running dual-use Cisco CallManager clusters with both IP Telephony and IPCC extensions, it is important to realize that sometimes the most recent Cisco CallManager software release will not immediately be supported in IPCC deployments until testing is completed later. It is also important to note that many contact center environments have very stringent maintenance windows. Because of these software and environmental limitations, it might sometimes be advantageous to separate Cisco CallManager clusters for IP Telephony extensions from the Cisco CallManager clusters for IPCC extensions. It is important to consider the environment where IPCC is being deployed to determine whether a separate Cisco CallManager cluster is advantageous.

Combining IP Telephony and IPCC Extensions on the Same IP Phone

It is possible to have multiple extensions on an IP phone. In an IPCC environment, at least one of those extensions must be dedicated to IPCC and be configured with only a single line appearance, no voice mail, and no call forwarding. Cisco recommends that you use the bottom-most extension on the IP phone as the IPCC extension so that, when the user lifts the handset, the IPCC extension is not selected by default. Other extensions on the IP phone may have multiple lines or appearances and voice mail. However, it is important to note that there is no control over, or visibility of, those IP Telephony extensions from the IPCC Agent Desktop. Cisco recommends that any IP Telephony extensions be forwarded to voice mail prior to logging into the IPCC, so that agents are not interrupted by IP Telephony calls while they are working on IPCC calls. Also, prior to making any outbound calls on the IP Telephony extension, Cisco recommends that the agents change to a "not ready" state so that IPCC calls are not routed to them while they are on the phone.

Queuing in an IPCC Environment

Call queuing can occur in three distinct scenarios in a contact center:

New call waiting for handling by initial agent

Transferred call waiting for handling by a second (or subsequent) agent

Rerouted call due to ring-no-answer, waiting for handling by an initial or subsequent agent

When planning your IPCC deployment, it is important to consider how queuing and requeuing are going to be handled.

Call queuing in an IPCC deployment requires use of an IVR platform that supports the SCI interface to the ICM. The Cisco IP IVR is one such platform. Cisco also offers another IVR platform, called Internet Service Node (ISN), that can be used as a queuing point for IPCC deployments. The chapter on Deployment Models provides considerations for deployments with ISN. Traditional IVRs can also be used in IPCC deployments, and the chapter on Deployment Models, page 2-1, also provides considerations for deployments with traditional IVRs.

In an IPCC environment, an IVR is used to provide voice announcements and queuing treatment while waiting for an agent. The control over the type of queuing treatment for a call is provided by the ICM via the SCI interface. The Run VRU Script node in an ICM routing script is the component that causes the ICM to instruct the IVR to play a particular queuing treatment.

While the IVR is playing the queuing treatment (announcements) to the caller, the ICM waits for an available agent of a particular skill (as defined within the routing script for that call). When an agent with the appropriate skill becomes available, the ICM reserves that agent and then instructs the IVR to transfer the voice path to that agent's phone.

Transfers in an IPCC Environment

Transfers are a commonly used feature in contact centers, therefore it is very important to consider all of the possible transfer scenarios desired for your IPCC installation. This section explains basic transfer concepts, and the transfer scenarios themselves are discussed in the chapter on Deployment Models, page 2-1.

Transfers involve three parties: the original caller, the transferring agent, and the target agent. The original caller is the caller that made the original call that was routed to the transferring agent. The transferring agent is the agent requesting the transfer to the target agent. The target agent is the agent receiving the transfer from the transferring agent. This terminology is used throughout this document when referring to the different parties.


Note Cisco recommends that all call control (answer, release, transfer, conference, and so on) be done from the agent desktop application.


When a transferring agent wants to transfer a call to another skill group or agent, the transferring agent clicks on the transfer button on the IPCC Agent Desktop. A dialog box allows the transferring agent to enter the dialed number of a skill group or agent. An alphanumeric dialed number string (such as "sales" or "service") is also valid. The transferring agent also selects whether this transfer is to be a single-step (blind) transfer or a consultative transfer. (Single-step transfer is the default.) The transferring agent then clicks OK to complete (single-step) or initiate (consultative) the transfer. The transfer request message flows from the transferring agent desktop to the CTI Server and then to the Cisco CallManager PIM.

Any call data that was delivered to the transferring agent or added by the transferring agent is sent along with the transfer request to the Cisco CallManager PIM.

Dialed Number Plan

The Cisco CallManager PIM then attempts to match the dialed number with an entry in the Dialed Number Plan. The ICM Dialed Number Plan (DNP) is currently administered via the Bulk Configuration tool on the ICM Administrative Workstation (AW). Entries in the DNP are entered per peripheral (PIM), and all DNP entries for a particular PIM are downloaded to the PIM upon PIM startup. Updates and additions to the DNP are also sent to the PIM dynamically, and they take effect immediately and are used for the next call being transferred. In order for the ICM to route the transfer and have all call data move with the transfer and be saved for cradle-to-grave reporting, a match for the dialed number must be found in the DNP for the PIM where the agent is currently logged in.

Within the DNP, fuzzy (wildcard) matching of dialed number strings is allowed. The DNP is not the same as the Dialed Number table used by the ICM router and managed via the AW Configuration Manager tool. The ICM router maps dialed numbers to call types, and call types are mapped to ICM routing scripts. This is how a specific dialed number is mapped to a routing script in the ICM router. For administration details on editing dialed numbers, call types, and routing scripts, refer to the IP Contact Center Administration Guide, available at

http://www.cisco.com/univercd/cc/td/doc/product/icm/ipccente/index.htm

For help with designing a dial plan for your IPCC deployment, consult your Cisco Systems Engineer (SE).

Dial Plan Type

Entries in the Dialed Number Plan must be configured with a dial plan type. There are six predefined (via a list box) DNP types that correspond to the types specified in the agent desk settings profile. In order for a call or transfer to proceed any further, the DNP type for that call must be allowed in the agent desk setting profile used by the transferring agent. Because the Cisco CallManager calling search spaces override any desk settings, it is best to allow all dial plan types in the agent desk settings.


Note Changes to the agent desk settings profile do not take effect until the agent logs out and logs in again.


Post Route

Entries in the Dialed Number Plan must also be configured to indicate whether a post-route is required. For dialed numbers to be used in transfer scenarios, Cisco recommends that the post-route option be set to Yes for transfers. When this field is set to Yes, the dialed number to be used for the route request must be supplied in the Dialed Number column of the Dialed Number Plan Editor.

Route Request

Assuming a match is found in the DNP for the transfer, the DNP type is allowed for the transferring agent, and the post-route option is set to Yes, the PIM logic will then generate a route request to the ICM central controller using the dialed number specified in this same DNP entry.

Upon receipt of the route request, the ICM router matches the dialed number to a call type and executes the appropriate routing script to find an appropriate target agent for the call. Within the routing script, any of the call data collected so far could be used in the intelligent routing of the call. The ICM router will determine which device target (phone extension and desktop) the agent is logged into and will then return the label that points to that device target to the Cisco CallManager PIM.

At this point there are numerous scenarios that can occur, depending upon the type of transfer being performed, as described in the following sections:

Single-Step (Blind) Transfer

Consultative Transfer

Single-Step (Blind) Transfer

A blind transfer is used when the transferring agent does not need to speak with the target agent. After specifying a blind transfer in the transfer dialog box on the agent desktop, the transferring agent enters a DN and clicks the Initiate Transfer button. The desktop then sends the transfer request to the Cisco CallManager PIM. Assuming a match is found in the DNP, the DNP type is valid, and post-route is selected, the Cisco CallManager PIM generates the route request to get a routing label and then instructs the Cisco CallManager to perform a single-step transfer (without any further action from the transferring agent). The transferring agent will see the call disappear from their desktop and they will transition to the next agent state (wrap-up, ready, or not ready), depending on the agent desk settings for the transferring agent. While the call is being placed to the target agent, the original caller is temporarily placed on hold. When the target agent's phone begins ringing, the original caller hears the ringing (assuming auto-answer is not enabled). The target agent receives a screen pop with all call data, and the Answer button on their agent desktop is enabled when the phone begins ringing. Upon answering the call, the target agent is speaking with the original caller and the transfer is then complete. If the target agent does not answer, then RONA (reroute on no answer) call rerouting logic will take over.

If auto-answer is enabled, the original caller and the target agent do not hear any ringing; the call is just connected between the original caller and the target agent.

If the agent is transferring the call to a generic (skill-group) DN to find an available agent with a particular skill, but no such agent is currently available, then the ICM routing script should be configured to translation-route the call to an IP IVR for queuing treatment. The call would still be released from the transferring agent desktop almost immediately. Any call data collected by the transferring agent would automatically be passed to the IVR. The caller will not hear any ringback tones because the IP IVR CTI Port will answer immediately. When the target agent becomes ready, the ICM will instruct the IVR to transfer the call, and the ICM will pop the agent desktop with all call data.

If the agent has transferred the call to a number that is not within the ICM Dialed Number Plan, then the caller will be transferred anyway. The destination for the transferred call depends upon the number that was dialed and what is configured in the Cisco CallManager dial plan. Transfers not using the dialed number plan are not recommended because of agent roaming restrictions, call data not following the call, and reporting limitations.

Consultative Transfer

Some parts of the message flow for a consultative transfer are similar to the message flow for a blind transfer. When the Cisco CallManager PIM receives the label from the ICM router indicating where to transfer the call, the Cisco CallManager PIM tells Cisco CallManager to initiate a consultative transfer to the number specified in the label. Cisco CallManager places the original caller on hold and makes a consultative call to the number specified in the label. The caller generally hears tone on hold while the transfer is being completed.

When the target agent phone begins ringing, Cisco CallManager generates a Consult Call Confirmation message and a Device Ringing message.

The consult call confirmation message causes the Cisco CallManager PIM to notify the transferring agents desktop that the call is proceeding, and it enables the Transfer Complete button. The transferring agent can hear the target agent's phone ringing (assuming auto-answer is not enabled for the target agent). At any time after this, the agent can click the Transfer Complete button to complete the transfer (before or after the target answers their phone).

The Device Ringing message causes the Cisco CallManager PIM to pop the target agent's desktop with call data and to enable their Answer button (assuming auto-answer is not enabled). When the target agent clicks the Answer button (or auto-answer is invoked), a voice path between the transferring agent and target agent is established (assuming the transferring agent has not clicked the Transfer Complete button).

Generally the transferring agent will not click the Transfer Complete button before the target agent answers because the probable reason they used consultative transfer was that they wanted to talk with the target agent before completing the transfer. However, the transferring agent can click on the Transfer Complete button at any time after it is enabled.

If the agent is transferring the call to a generic DN to find an available agent with a particular skill, but no such agent is currently available, then the ICM routing script should be configured to route the call to an IVR for queuing. In this scenario, the transferring agent would hear the IP IVR queue announcements. The transferring agent could press the Transfer Complete button at any time to complete the transfer. The caller would then begin hearing the IP IVR queuing announcements. Upon availability of an appropriately skilled agent, the IP IVR transfers the call to this target agent and pops any call data onto their screen.

If the agent is transferring the call to a number that is not in the ICM Dialed Number Plan and a number that is not valid on the Cisco CallManager, the transferring agent will hear the failed consultation call and will be able to reconnect with the original caller, as explained in the section on Reconnect.

Reconnect

During the consultation leg of a consultative transfer, the transferring agent can reconnect with the caller and release the consult call leg. To do so, the agent simply clicks the Reconnect button. This action causes the agent desktop to instruct the Cisco CallManager PIM to instruct Cisco CallManager to release the consultation call leg and to reconnect the agent with the original caller.

This is basically the process an agent should use when they want to make a consultation call but do not plan to complete the transfer. After a call is successfully reconnected, the transferring agent's desktop functionality will be exactly the same as before they requested the transfer. Therefore, the transferring agent can later request another transfer, and there is no limit to the number of consultation calls an agent can make.

Consultative transfers and reconnects are all done from the agent desktop and use the single Cisco CallManager extension that is associated with the IPCC. The IPCC system does not support allowing the transferring agent to place the original caller on hold and then use a second extension on their hardware phone to make a consultation call. The hardware phone offers a button to allow this kind of transfer, but it is not supported in an IPCC environment. If an agent transfers a call in this way, any call data will be lost because the ICM did not route the call.

Alternate

Alternate is the ability for the agent to place the consultation call leg on hold and then retrieve the original call leg while in the midst of a consultative transfer. The agent can then alternate again to place the original caller back on hold and retrieve the consultation call leg. An agent can alternate a call as many times as they would like.

When the transferring agent has alternated back to the original caller, the only call controls (buttons) that are enabled are Release and Alternate. The Transfer (Complete) and Reconnect controls will be disabled. The Alternate control will alternate the transferring agent back to talking with the consulted party. When the agent has alternated back to the consultation leg, the Release, Alternate, Transfer, and Reconnect call controls will be enabled. The Alternate control will alternate the transferring agent back to talking with the original caller. The Transfer control will complete the transfer, and the Reconnect button will drop the consulted party and reconnect the agent with the original caller.

Non-ICM Transfers

Transfers to numbers not in the DNP or to numbers configured in the DNP with post-route set to No are allowed but do not result in an ICM-routed call. In these scenarios, the PIM simply sends a call transfer request directly to Cisco CallManager and uses the dialed number from the transfer dialog on the agent desktop. Call data is lost if the ICM does not route the call. Cisco recommends that any dialed number for a transfer should have a match in the DNP, that it be marked for post-route, and that it have a DNP type that is allowed for the transferring agent (based on their agent desk settings).

Agent-to-Agent Transfers

If the transfer is to a specific agent, then the agent requesting the transfer must enter the agent ID into the transfer dialog box. The DNP entry matching the dialed number (agent ID) must have DNP type equal to PBX. This causes the PIM to place the dialed number (agent ID) into the CED field before it sends the route request to the ICM router. In the script editor, use the agent-to-agent routing node and specify the CED field as the location of the agent ID so that the ICM router will route this call properly.

Agent IDs should not match any of the extensions on the Cisco CallManager cluster. If you begin all agent IDs with the same number and they all have the same length, you could set up a generic wildcard string that matches all agent IDs so that you need only one entry in the DNP for agent-to-agent routing.

If your environment has multiple PIMs, then you must use an agent ID number plan to determine which PIM contains this agent. Agent IDs by themselves are not unique. Agent IDs are associated with a specific PIM and can be reused on other PIMs. By not repeating agent IDs across the enterprise and by setting up a consistent agent ID assignment plan (such as all PIM 1 agent IDs begin with a 1, all PIM 2 agent IDs begin with a 2, and so on), you can parse the CED field in the script editor to determine which PIM contains the agent. The parsing may be done via a series of "if" nodes in the script editor or via a "route select" node. The agent-to-agent node requires the PIM to be specified.

In the event that the target agent is not in a ready state, the agent-to-agent script editor node allows alternative routing for the call.

Transferring from an IVR to a Specific Agent

Many contact centers often wish to prompt the caller for information such as an order number and then route the call to the agent who is working on that order. This can be done on IPCC by having the router do a database lookup, placing the agent ID in any of the peripheral variable fields, and then using the agent-to-agent script editor node to route the call to that particular agent. The agent-to-agent node must be configured to look for the agent ID value in the peripheral variable field where the IVR placed the agent ID. If multiple PIMs exist, then the same configuration as discussed in the previous section would be required.

This type of scenario could also be used to prompt a caller for a specific agent ID and then route the caller to that agent ID.

Transfer Reporting

After a call transfer is completed, a call detail record for the original call leg will exist and a new call detail record will be opened for the new call leg. The two call records are associated with one another via a common call ID assigned by the ICM. The time during the consultation call leg, before the transfer is completed, is considered as talk time for the transferring agent.

For more details, refer to the IPCC Reporting Guide, available online at Cisco.com.

Combination or Multiple Transfers

During a consultative transfer, the consulted target agent may transfer the consultation call to another target agent. Then, when the transferring agent presses the Transfer Complete button, the original caller will be connected to the second consulted target agent.

After a call has been successfully transferred, it can be transferred again. Each call leg generates a call detail record in the ICM, and the talk time during that call leg is associated with the agent who received that call. All call detail records are associated with one another via a common call ID assigned by the ICM. This allows complete cradle-to-grave reporting for the call.

Transfers of Conferenced Calls

After a conference has been set up by an agent, transfer is no longer a valid operation, even if the conferenced party has released.

PSTN Transfers (Takeback N Transfer, or Transfer Connect)

Many PSTN service providers offer a network-based transfer service. These services are generally invoked by the customer premises equipment (CPE) outpulsing a series of DTMF tones. The PSTN is provisioned to detect these tones and perform some specific logic based upon the tones detected. A typical outpulse sequence might be something like *827500. This DTMF string could mean, "transfer this call to site 2 and use 7500 as the DNIS value when delivering the call to site 2." IPCC has the ability to invoke these types of transfers.

Call Admission Control

Quality of Service (QoS) is a necessary part of a Voice over IP (VoIP) environment. QoS has various mechanisms to give voice traffic priority over data traffic, but QoS alone is not enough to guarantee good voice quality. What is needed is a way to make sure that the bandwidth allocated on the WAN link is not exceeded. Call admission control is a methodology for ensuring voice quality by limiting the number of active calls allowed on the network at one time.

When voice is enabled as an application on a data network, a certain amount of bandwidth should be allocated for voice traffic. This total voice bandwidth must be able to support the voice call itself plus any call control traffic. For information on how to calculate the required bandwidth for voice traffic, refer to the Cisco IP Telephony Solution Reference Network Design (SRND) guide, available at

http://www.cisco.com/go/srnd

For IPCC, the call center should be able to determine its busy hour call completions (BHCC) within the WAN and use the information to determine the bandwidth that is needed for its calls. This bandwidth should be added to the data traffic and any other voice traffic that is on the network. The sum of all these applications should not exceed 75% of the available WAN bandwidth. The capacity of the WAN depends on the network infrastructure. For details, refer to the Cisco AVVID Network Infrastructure Quality of Service design guide, available at

http://www.cisco.com/go/srnd

Call admission control makes sure that the active calls do not exceed the voice bandwidth allocation. When a voice call is made, the bandwidth needed for that call is subtracted from the available voice bandwidth pool. When a call disconnects, the bandwidth that was used for that call is returned to the voice bandwidth pool. If the voice bandwidth pool is exhausted, then the next call request will be rejected due to insufficient bandwidth. The entity that controls and manages this bandwidth pool is called a gatekeeper. It is the gatekeeper's job to make sure that voice calls stay within the bandwidth allotment.

In a Cisco CallManager environment, there are two types of call admission control:

Gatekeeper Controlled

Locations Controlled

Gatekeeper Controlled

Gatekeeper control means that there is an independent entity acting as a gatekeeper. The gatekeeper-controlled model is used for distributed call processing deployments. Before sending the call out the gateway or intercluster trunk, Cisco CallManager will ask the gatekeeper if there is enough bandwidth for the call to go through the WAN to another site. (See Figure 1-6.)

Figure 1-6 Area of Concern for Distributed Call Processing Models

If the gatekeeper rejects the call, then Cisco CallManager can perform digit manipulation on the dialed digits and send this call transparently out the PSTN.

For IPCC, it is important to define this alternate route and digit manipulation within the dialing plan if the gatekeeper does not allow the call to go on the WAN. The reason this is important is that calls are sent to agents and IVRs via routing clients (CTI Desktop, IVR, or CTI Route Point), which are not able to hang up and redial the call. Therefore, the caller would receive busy tone and not be routed to its peripheral target (agent or IVR).

The ramification of having calls go out to the PSTN is that two ports are consumed because calls would have to come into and go out of the main or branch sites via voice gateway ports, which stay up if the call then gets transferred to another agent or IVR port at another site within the network.

The gatekeeper should be configured to allow enough bandwidth for call center traffic to go through. The total amount of bandwidth needed would depend on whether incoming traffic from the PSTN is routed through the WAN or if the WAN is used for inter-site transfers and conferences between agents.

Locations Controlled

For centralized call processing deployments, the locations-controlled model is used. In this model, Cisco CallManager (not the gatekeeper) decides if there is enough bandwidth available on the WAN to send the call. If there is not enough bandwidth, the call will fail. Transparent failover to the PSTN is not available with locations-based call admission control. (See Figure 1-7.)

Figure 1-7 Area of Concern for Centralized Call Processing Models

For IPCC, if the call fails due to insufficient bandwidth, the caller receives busy tone because the call is routed by IVR or the CTI Desktop application, and there is no mechanism for the routing client to disconnect the call and then dial again.

Therefore, it is important to calculate the bandwidth allocation for each branch office properly. The number of simultaneous calls to each branch should be calculated. Inter-site transfer and conference situations as well as normal office traffic should also be taken into account. Ideally, agent phones should be allocated as one "location" within the location configuration of Cisco CallManager to make sure that traffic generated to and from office workers' phones does not interfere with the bandwidth allocated to call center traffic.