Achieving Cisco UCM Class of Service with Calling Search Space


Calling Search Spaces (CSS) is the second component defining a class of service, and I like to make an analogy by comparing them to your desk drawer. Remember back when you put all your phone books in your desk drawer or on a shelf. A CSS is nothing more than a collection of partitions, or phone books. So if you have the Dallas partition in your desk drawer, then you could call Dallas numbers, and if you have the Chicago partition in your CSS, you could call Chicago numbers as well. But if you don’t have the Dallas partition in your CSS, then you can’t call the Dallas numbers. It is that simple. A Calling Search Space is just a collect of partitions.

Let’s look at a few examples of how CSSs are used.

Lobby_CSS:  Used for lobby phones or any public phone, that is phones that don’t have an assigned dedicated user. For these phones you will want to limit which numbers they can call, and most likely block any numbers that would incur a charge (e.g., long-distance, premium service, and international numbers). Therefore, the CSS assigned to lobby phones would normally only include an E911 partition, local PSTN partition, and possibly the employee partition. This would allow the lobby phone to call the fire department, or local PSTN numbers, or the employees inside the company, but nothing that would incur a charge. Notice the <None> partition; it is also included, even though you won’t see it in the list of partitions. It is included in every CSS so any number that is left in the <none> partition is accessible by any and all CSSs.

Employee_CSS:  Assigned to all employees, it allows the employees to call any number in the E911, Employee, Local_PSTN, and LD-PSTN partitions. Don’t forget the <none> partition is there as well, even though it will not show in the list of partitions. You will notice this CSS gives the employees the ability to call long-distance numbers that the Lobby_CSS blocked.

I stated earlier that a route pattern can only belong to a single partition, but we could have multiple identical route patterns as long as they are in different partitions. Here is an example of what I mean. Let’s say we have an office in Dallas and one in Houston. We want the 911 pattern that is routed out of the Dallas PSTN gateway to be used by the Dallas employees, while the Houston employees should use a different 911 pattern that is routed out of the Houston PSTN gateway. This 911 pattern is created twice but is assigned to different partitions.

Dallas_E911_PT: Contains Emergency 911 patterns that are routed out of the Dallas PSTN Gateway.

Houston_E911_PT:  Contains emergency 911 patters that are routed out of the Houston PSTN Gateway.

From the above example, here is a real-life scenario. If we have a corporation that has offices in Dallas and Houston, how do we handle the 911 dialing so that Dallas employees will use their own local gateway for emergency calls and allow the Houston employees to use their own local gateway? See the following example of Calling Search Spaces for a solution.

Dallas_Employee_CSS:  All phones in Dallas would be assigned the Dallas_Employee_CSS which contains the Dallas E911 Partition so that when Dallas employees dial 911, their emergency calls use the local Dallas gateway.

Houston_Employee_CSS:  All phones in Houston would be assigned the Houston_Employee_CSS which contains the Houston E911 Partition so that when Houston employees dial 911, their emergency calls use the local Houston gateway.

There is no limit to the number of CSSs we can create, and a single partition can be a member of several different CSSs. For example, the LD_ PSTN PT is a member of several different CSSs. Also, there is no limit to the number of partitions you can have. In fact, the only limit imposed is the number of characters used to define a CSS, and that limit is 255 characters. Let’s look at the following example of a CSS string.


If you want to count all the characters in the above CSS string, you will count a total of 80 characters. This is well below the 255-character limit. Just remember to keep your partition names short, and you should not have any problems.

There are many devices, both physical and virtual, that can have CSSs assigned to them. Let’s look at a few.

  1. Voice-Mail Ports – Would you want your employees to call into the voicemail system and then dial out directly to a long-distance or international number? Most companies don’t because they can’t track who is making the call.
  2. Gateways/Trunks – Would you want someone to be able to call into your phone system via the Gateway (PRI) and then dial right back out to an international number? If not, be sure the CSS assigned to your Gateways does not have an international partition.
  3. Call Forwarding options – Would you want to allow employees to forward their inbound calls to their desk phone to a long-distance or international number? Probably not. To prevent this, you can assign a CSS here as well.
  4. Translation patterns – Translation patterns manipulate the phone number to a particular need. After the digit manipulation is complete, they have a new CSS to match patterns against.
  5. Phones & Line buttons — Phones and Line buttons both have CSSs assigned to them, and they have a special, unique relationship — the Lines CSS includes the Devices CSS.   
    1. The Device_CSS includes three partitions, Local_PSTN_PT, E911_PT, and the <none> PT
    2. The Line_CSS includes LongDistance_pt, International PT, and also includes the Devices_CSS 3 partitions as well, for a total of five partitions

Calling Search Spaces are basically a group of partitions that a device (phone) can access.

Class of Service is a way of controlling which phone numbers a phone, gateway, voicemail port, etc. can access. By creating multiple partitions and multiple CSSs, an administrator can control which devices can make long-distance or international phone calls or calls to any other phone number. We can also control when these calls can be placed by applying time schedules to the partitions. These are the basics, but they establish a foundation to build upon. Using the basic components of Partitions and CSSs, you can create just about any class of service model imaginable, to suit any need.

Reproduced from Global Knowledge White Paper: Unified Communication Manager — Class of Service

Related Courses
CIPT1 – Implementing Cisco Unified Communications IP Telephony Part 1 v8.0
CIPT2 – Implementing Cisco Unified Communications IP Telephony Part 2 v8.0
TVOICE – Troubleshooting UC Systems v8.0

In this article

Join the Conversation