Home > Help Desk > Knowledge Base > Call Center Voice Platform > Performance Based Call Routing > Routing Mechanics

Routing Mechanics

Table of contents
No headers

Routing Mechanics Overview

In this chapter, we explore the mechanics of an incoming call. Routing a call is essentially a five step process:


  1. The caller dials a provisioned inbound number.
  2. The call is either forwarded immediately to another number (if specified) or handled by an Initial IVR (if one is configured for this Campaign).
  3. Contact Center selects an Agent Pool.
  4. An Agent in the selected Pool receives the call, or
  5. If no Agents are available, the call is placed in the queue.


Each of these steps is described in further detail below. With the exception of the actual creation of the IVRs (Initial and queue), all these steps can be configured without programming via the Contact Center web based interface. Chapter 6demonstrates this configuration.


Step 1. The Caller dials an inbound number

Every inbound Campaign in the On-Demand Contact Center Platform has one or more telephone numbers associated with it. These numbers are routed by our telephony carriers to Contact Center, which in turn directs the call to the proper Campaign.

  • Your incoming numbers may have already been "provisioned" and attached to your Campaigns. If you need more information about your inbound telephone numbers, consult your Client Services Manager.


Step 2. Forwarding and Initial IVR handling

Depending on how your Campaign is configured, the incoming call can head in one of several directions.


2.1 Call Forwarding


If you have set your Campaign to forward directly to another number, the call is accepted from the carrier and then immediately forwarded to that number, bypassing any further handling by this Campaign.


2.2 Initial IVR


If you have set up an Initial (or "Pre") IVR for this campaign, the call is accepted from the carrier and then directed to the IVR. What happens next depends on how the IVR is programmed. Usually, Initial IVRs first play some audio. They can also request some input from the user in the form of touch tone ("DTMF") or voice responses. Based on the users' input, the IVR may transfer the call to another Campaign or to a telephone number, or it may transfer the call to the queue. If this Campaign has a queue IVR specified then that IVR begins. If the Campaign does not have a queue IVR, and there is no available Agent to accept the call, the call will fail and the caller will be disconnected.


Step 3. Agent Pool Selection

After any Initial IVR handling, Contact Center will immediately begin to search for an Agent. Contact Center does this by first selecting a Pool, then selecting the best available Agent from that Pool. This process is described in detail below.

During this time, the call is placed in the queue, even if just for a few seconds. (For this reason, queue IVRs generally begin by playing ringing tones, so the caller's transition to a live Agent is made smooth.) If Contact Center finds an available Agent, it initiates an outbound connection to that Agent. When the Agent answers the phone, the queue IVR is ended, and the caller's inbound leg is connected to the Agent. If the Agent fails to answer the phone, Contact Centerpauses the Agent (making the Agent unavailable for further calls), keeps the caller in the front of the queue, and continues the search for an Agent to handle the call. If Contact Center cannot find an Agent immediately, and there is a queue IVR specified for the Campaign, the call is placed into the queue until an Agent becomes available. If there is no queue IVR specified for this Campaign, and there is no available Agent to accept the call, the call will not be accepted from the carrier and the caller will hear a "fast busy" signal.

As we learned in
 Chapter 1, each Campaign can have one or more Agent Pools associated with it. The first step in finding a live Agent is for Contact Center to select the Pool from which that Agent will be drawn. Here's how this is done:


3.1 Select a Pool


The first Pool that Contact Center finds with at least one idle Agent in it will get the call. 

If a Campaign has more than one Pool, then the Pools are selected according to their Weight, as specified in the Campaign configuration. Weighting is applied in a method informally known as the "Weighted Random Shuffle." It is a bit like dealing a card game, where each Pool is a player:


  • All the weights for all the Pools in this Campaign are added up. This gives the highest "card" value possible. For example, if we have 3 Pools, "A" with a weight of 5, "B" with a weight of 3 and "C" with a weight of 2, our highest card value possible is 5 + 3 + 2 = 10. (In reality, all the numbers here are floating point, so values like 5.5 or 2.318 are possible, but this example uses integers for simplicity.)
  • Each Pool is assigned a value range that represents its proportion of the total weights. This is each Pool's "winning number range." In our example, Pool A's winning numbers are 0 through 5, Pool B's winning numbers are 5 through 8, and Pool C gets 8 through 10. 
  • A number is randomly generated between 0 and the total of the weights (our "highest card"). This is the card we will deal for this "hand." For example, the random number might be 6, so we just dealt a 6 card. 
  • If that number falls within a Pool's range of winning numbers, that Pool gets first chance at the call.  In our example, Pool B would get first choice, as its winning numbers were 6, 7 and 8. 
  • If the first Pool selected has no idle Agents, we toss it out of the game, and deal another hand of "Weighted Random Shuffle." This time, we have only two players (Pools), A and C. We add up their weights and get a maximum value of 5 + 2 = 7. 
  • We shuffle the cards and deal a random one with a value of between 0 and 7; this time we get a 2. Pool A is the winner. If Pool A has any idle Agents, one of them gets the call; if not, we declare C the default winner (since we have no more Pools/Players in the game). We look to Pool C now to see if there are any idle Agents in this Pool. 
  • If we get through an entire game of "Weighted Random Shuffle" without finding an idle Agent, the call is left in the queue.


Step 4. Agent Selection

If more than one Agent is idle in the Pool selected in the step above, the idle Agents are sorted according to the Pool's Sort Agents by rules or Weighting Attribute. The top ranked Agent gets the call, based on these criteria:

  • In order to be in a Pool in the first place, an Agent must possess the qualifying Attributes. You specify these when you create the Pool.
  • The Pool Sort Agents by rules aggregate your Agents into sub-groups, based on their membership Attributes. Agents with equal values are in the same band and the bands are organized in ascending or descending order per your specifications.
  • If multiple Agents occupy the same band, Contact Center has two ways to select from the idle Agents:
    • Round Robin - Contact Center gives the call to the Agent who has been waiting the longest for a call. This method is used if no Weighting Attribute has been set for this Pool. 
    • Weighted Random Shuffle - if a Weighting Attribute has been set, Contact Center plays the Weighted Random Shuffle game describedabove with Agents as the players. The game is played only once; we have a winner every time. The winning Agent gets the call.


Step 5. The Queue

The call queue has the following properties:


  • If no idle Agents are available in any of this Campaign's Pools, the call is routed to the queue.
  • If Contact Center cannot find an Agent, and the Campaign does not have a queue IVR configured, then the call will be rejected and a busy signal played to the carrier.
  • Once a call is in the queue, Contact Center no longer searches for the best Agent and simply gives the call to the first available Agent in any of this Campaign's Pools.

5.1 Adjusting the Queue Time Multiplier


On the surface, the Contact Center queue is a first in, first out device; that is the oldest call will be retrieved from the queue first. However, you can tell Contact Center to adjust the perceived "time in queue" by changing the Campaign's Queue Time Multiplier field value. Call Center will multiply the length of time a call has been in the queue by this value to determine which calls to take first. Setting the Queue Time Multiplier field to 2, for example, will force Contact Center to treat these calls as if they have been in queue twice as long as they really have, as shown in example 2-1.


Actual Queue Time

Queue Time Multiplier

Perceived Queue Time

90 seconds


180 seconds

Example 2-1: Queue Time Multiplier Example 1


Setting the Queue Time Multiplier to 10 will cause Contact Center to think that a call that has been in queue for one minute has really been there for 10. Conversely, if you are taking calls that you don't mind sitting in queue, setting the Queue Time Multiplier to a positive number less than 1 will cause Contact Center to think the call has been in queue for less time than it really has. For example, setting the Queue Time Multiplier to .5 will cause Contact Center to treat calls in this Pool as if they were in Queue for only half the actual time,as shown in example 2-2.


Actual Queue Time

Queue Time Multiplier

Perceived Queue Time

90 seconds


45 seconds

Example 2-2: Queue Time Multiplier Example 2

Last modified


This page has no custom tags.


This page has no classifications.