You are currently viewing Call Control in CUCM – Calling Search Spaces and Partitions

Call Control in CUCM – Calling Search Spaces and Partitions

Last Updated on April 20, 2021 by Jaron Davis

CCNP Collaboration Study Series
4 – Call Control
Sections Covered:
4.1 – Describe the Cisco Unified Communications Manager digit analysis process
4.3 – Configure globalized call routing in Cisco Unified CM


Going into this new study series, I wanted to write a post about something I consider very basic to Cisco Unified Communications Manager (CUCM), and that is the concept of Calling Search Spaces and Partitions. I’ve noticed many UC Engineers don’t have a solid understanding of this concept. Understanding this is fundamental to the digit analysis process. I’ll attempt to break this down into a visual that is easily understandable.

Key Terminology

Calling Search Space: A calling search space is a logical grouping of partitions. The calling search space is assigned to a device or line, and gives permission to dial any pattern within that calling search spaces scope.

Partition: A partition is a logical grouping of dialable patterns including, but not limited to, directory numbers, translation patterns, route patterns. A partition can be assigned to a single calling search space, or reused in multiple calling search spaces.

Directory Number: A pattern that is assigned directly to a device to serve as the private number for that device within the phone system.

Translation Pattern: A function within CUCM that changes one pattern into another.

Route Pattern: A pattern that is used to route a call to a gateway or other similar device for further processing.

Dialed String: The “to” pattern either dialed by a phone or sent from a gateway. The dial string is the destination of a call.

E.164: The international numbering plan, ensuring all phone numbers accessible from the PSTN have a unique and dialable pattern.

North American Numbering Plan: The numbering plan utilized in the North American Region.

Private Numbering Plan: A numbering plan utilized only within a Private Branch Exchange.

What you need to know

As is generally done in Cisco products, there is a hierarchical approached utilized for call control. A device is assigned a calling search space, which then references a list of partitions, and searches for the dialed string in the form of a directory number, translation pattern, or route pattern. This is visualized in the graphic below. The calling search space below consists of 3 separate partitions. Each partition is full of directory numbers, translation patterns, and route patterns.

Working Example

Lets start with a simple calling search space that we want to be able to calling internal phones. We have phones with numbers 1000 through 1005. We do not want them to have external call privileges, they should only be able to call each other.

That is all we need. One calling search space that contains one partition full of our directory numbers that are assigned to phones.

One step further

Let’s take it one step further. Now we want to make Directory Number 1000 into a “switchboard” operator. They want to be able to dial 0 to reach that individual without having to remember to dial 1000 each time. How could we accomplish this goal? Through a translation pattern! Let’s add in a translation pattern to our Internal Partition.

Now that we have implemented our translation pattern, whenever someone with the Internal_CSS dials 0, the call manager will look within the Internal Calling Search Space for a pattern “1000”.

Let the operator dial to the PSTN

Now the business says we want the operator to be able to make external calls to the PSTN. Only this individual should be able to call out, though. We have set up a gateway with a trunk to the PSTN, all you have to do is set up the call routing logic within our existing configurations.

We can accomplish this with a route pattern, but we don’t want to give everyone access, so we must make a new calling search space for this route pattern. We will name it simply “External_CSS”.

Because we want to assign this External_CSS to DN 1000, we will want to include the Internal_PT partition in this new CSS, but we will also create a new partition and name it “External_PT”. The External_CSS will include both partitions, so that DN’s assigned this CSS will be able to dial all available strings.

Now in our External_PT partition, we will create a Route Pattern to match external calls and we will point that route pattern to our PSTN Gateway. External calls to the PSTN will always be in an e.164 format, and in the United States will be in the North American Numbering Plan (NANP) format. We will use “[2-9]” to represent any digit 2 through 9. We will also use “X” to represent any digit. Our route pattern will be [2-9]XX[2-9]XXXXXX. This pattern will match any phone number such as 555-867-5309.

As you see below, Directory Number 1000 has been changed to have the External_CSS calling search space. DN 1000 itself, though, is still located within the Internal_PT partition. Within the External_CSS calling search space, we have the Internal_PT partition, so that it can still call the other directory numbers, but then also includes the External_PT partition, which DN 1000 the unique ability to call external PSTN calls as well via our PSTN gateway.

Of course, this article doesn’t include a full dial plan. When making considerations for a dial plan, you must take all applicable laws into consideration, such as for for emergency services such as 911 and 988 within the United States.

To review, we discussed Call Control within the Cisco Unified Communications Manager utilized Calling Search Spaces and Partitions. We briefly discussed the differences between directory numbers, translation patterns, and route patterns, and discussed some good practices to utilize is separating the different dial strings into partitions for call control.

I hope this article has been informative, please feel free to ask questions or continue the discussion in the comments below.