CUCM Digit Manipulation

Digit manipulation: Attendant DN

The Attendant DN article explains just that.

Digit manipulation: Significant Digits

  • Useful for inbound calls into the CUCM cluster.
  • configured in the CUCM gateway page or the CUCM Trunk page.
  • in most implementations, we configure it to 4 or 5. Here is the Significant Digits configuration on a H.323 gateway.

digit-manipulation-2016-05-29 18_17_19

The number of digits to consider “significant” depends on:

  • the DID block we purchased from Telco,
  • the number of digits the Telco is sending
  • the internal numbering plan of the company.

Digit manipulation: Strip # Sign from Called Party number

digit-manipulation-2016-05-29 18_22_47

digit-manipulation-2016-05-29 18_23_04

In the home lab, I found no difference in dialing behaviour, by enabling or disabling this service parameter.

Digit manipulation: Discard Digit Instructions

See the Cisco CallManager Discard Digits Instructions DDI article.

We usually have use of DDI in route patterns.

Digit manipulation: Prefix Digits

I’m going to set the calling party number transformation in the route list detail level with Prefix Digits:

digit-manipulation-2016-06-04 09_09_10

We test:

digit-manipulation-2016-06-04 11_03_58

the PSTN receives the call from HQ in a 10-digit format

Digit manipulation: External Phone Number Mask

We can get a result similar to that with Prefix Digits, by using External Phone Number Mask. This is configured at the calling party line and invoked at the route pattern.

For example, the Branch1 phones must all be presented to PSTN with the DID number 4048812100. I can do this requirement by setting the External Phone Number Mask, at line 2001, to 4048812100:

cucm-digit-manipulation-2016-06-05 07_26_54

cucm-digit-manipulation-2016-06-05 07_27_20

Remember to set the Use Calling Party External Phone Number Mask checkbox at the route patterns. Otherwise, the External Phone Number Mask line setting will be ignored.

cucm-digit-manipulation-2016-06-05 07_56_29

Here is the result of calling PSTN from Branch1:

cucm-digit-manipulation-2016-06-05 07_58_27

Use External Phone Number Mask is set to On at the route pattern and to Default at the Route list detail

In this case we get the same output as in the previous paragraph.

Use External Phone Number Mask is set to On at the route pattern and to On at the Route list detail

We also get the same output as in the previous paragraph.

Use External Phone Number Mask is set to On at the route pattern and to Off at the Route list detail

The External Phone Number Mask is not taken into account, because digit manipulation at the rout list detail trumps the digit manipulation at the route pattern. Branch1 phone calls the PSTN line with a Calling party number of 2001.

cucm-digit-manipulation-2016-06-05 12_46_28

Use External Phone Number Mask is not set at the route pattern and to On at the Route list detail

The calling party number is extended to its full format, despite the fact that the route pattern does not use the External Phone Number Mask.

Digit manipulation: Calling Party Transform Masks

In my home lab, I emulate a branch office that bought a single DID number from Telco; there is no one-to-one mapping between internal DNs and external numbers. All DNs must be mapped to the single DID number 4048812100.

digit-manipulation-2016-06-04 19_02_53

In my home lab, I use Calling Party Transform Mask at Branch1’s Route List detail level. I use it to transform any internal DN to the corporate DID number.

digit-manipulation-2016-06-04 19_01_35

What if we configure the Calling Party Transform Mask at the route pattern level and not at the route list detail level?

cucm-digit-manipulation-2016-06-05 15_04_13

setting the Calling Party Transform Mask on the Route Pattern of Branch1

cucm-digit-manipulation-2016-06-05 15_04_27

Left the Calling Party Transform Mask blank on the Route List detail

Here is the result of a call to PSTN:

cucm-digit-manipulation-2016-06-05 15_22_19

The Calling Party Transform Mask was simply ignored. It seems like the blank Calling Party Transform Mask field in the Route list detail is more powerful that its peer at the route pattern; it’s because digit manipulation at the Route list detail level trumps anything set at the route pattern.

Let’s do the other way around. We clear the setting at the route pattern and make the Calling Party Transform Mask at the Route list detail.

cucm-digit-manipulation-2016-06-05 15_24_18

cucm-digit-manipulation-2016-06-05 15_24_47

The call now is correctly presented.

cucm-digit-manipulation-2016-06-05 15_25_12

Digit manipulation: Caller ID DN

Here is something more powerful that route patterns or route list details, when it comes to manipulating the caller ID. It’s called Caller ID DN.

Caller ID DN is set at the device level and it trumps any caller ID information that was set higher in the chain.

In the following example, I set Caller ID DN to something unmeaningful just to experience what it will look like.

cucm-digit-manipulation-2016-06-05 15_28_38

And I call again:

cucm-digit-manipulation-2016-06-05 15_29_08

The Calling Party number was set to the value of Caller ID DN.

Digit manipulation: Called Party Transform Masks

In my home lab, I use the Called Party Transform Mask to change the route pattern for national calls, from a 11-digit pattern to a 10-digit pattern. This transformation occurs after the Discard Digits instruction.

Here is the Called Party Transform Mask on the route pattern on the HQ gateway.

digit-manipulation-2016-06-04 18_54_33

digit-manipulation-2016-06-04 18_54_49

I also used the same construct on the Branch1 gateway.

digit-manipulation-2016-06-04 18_55_40

digit-manipulation-2016-06-04 18_55_48

Global transformations: Calling Party Transformation Pattern

Instead of applying the Calling Party Transform Mask directly to the Route list detail level, we can make this transformation independent from any construct, by defining it as a global transformation.

We define the transformation pattern, assign it to a special kind of CSS that we name Transformation CSS. And the CSS is invoked whenever we need to transform the Calling or Called party number.

For example, we want to create a transformation pattern that transforms the calling party number of Branch1 phones to the DID number 4048812100:

  • We create the transformation pattern partition (Trans_PT) that will serve as a container for the transformation pattern. To create it, we do the same steps as to create a simple partition.

cucm-digit-manipulation-2016-06-05 10_26_32

  • We create the transformation CSS (Trans_CSS) that will serve as a container for the transformation partition we’ve just created. This CSS will be invoked by the device (gateway or trunk), for outbound call legs in our example.

cucm-digit-manipulation-2016-06-05 10_27_08

  • We create the global transformation pattern: Call Routing -> Transformation -> Transformation Pattern -> Calling Party Transformation Pattern

cucm-digit-manipulation-2016-06-05 10_25_56

  • Configure Branch1’s gateway: at the gateway configuration page, in the Call Routing Information – Outbound Calls, unset the checkbox Use Device Pool’s Calling Party Transformation CSS and set the Calling Party Transformation CSS to the Trans_CSS we created

cucm-digit-manipulation-2016-06-05 10_31_27

  • Reset the gateway and the Route list and make the outbound PSTN call from Branch1.

cucm-digit-manipulation-2016-06-05 10_35_26


cucm-digit-manipulation-2016-06-05 10_35_36

To make sure that it is really the global transformation that is doing the job, I added a x3002 to another phone in Branch1. Since the DN starts with 3, the global transformation pattern of 2XXX does not apply here. So in the outbound call leg, extension 3002 won’t be translated to anything.

cucm-digit-manipulation-2016-06-05 10_46_41

cucm-digit-manipulation-2016-06-05 10_46_52

The Calling Party number was not transformed.

Global Transformations: Called Party Transformation Pattern

Similarly to the Calling Party transformation pattern, we can define a global transformation pattern in order to apply a Called party transformation independently from other constructs.

Here we will leverage Calling Party transformation pattern for the national PSTN call pattern, at Branch1:

  • Eliminate all manipulations previously done at the route pattern level

cucm-digit-manipulation-2016-06-05 11_48_23

cucm-digit-manipulation-2016-06-05 11_48_37

  • create a transformation pattern partition Trans_PT

cucm-digit-manipulation-2016-06-05 11_49_22

  • create a transformation CSS for called party Trans_CSS
  • assign Trans_PT to Trans_CSS

cucm-digit-manipulation-2016-06-05 11_49_44

  • create a global transformation with the national PSTN call pattern. Set the Called Party Transform Mask to XXXXXXXXXX, so that only the right-most 10 digits remain.
    • At first, I thought the pattern should have been 1[2-9]XX[2-9]XXXXXX. But after running the Dialed Digit Analyzer and debug voip dialpeer at the Branch1 gateway, I found out that the Branch1 gateway was receiving the whole pattern 9.1[2-9]XX[2-9]XXXXXX from the Route list/Route group, and not 1[2-9]XX[2-9]XXXXXX as I thought.

cucm-digit-manipulation-2016-06-05 11_55_43

So the transformation pattern should be 9.1[2-9]XX[2-9]XXXXXX

cucm-digit-manipulation-2016-06-05 11_50_02

  • for the Branch1 gateway, in the Call Routing Information – Outbound Callsuncheck Use Device Pool Called Party Transformation CSS, and set the Called Party Transformation CSS to the Trans_CSS we created.

cucm-digit-manipulation-2016-06-05 11_50_29

  • reset the gateway. Make the call.

cucm-digit-manipulation-2016-06-05 11_50_49

cucm-digit-manipulation-2016-06-05 11_50_55

The importance of resetting route lists, route groups and gateways

I have been told by one of my Cisco collaboration instructors that it is extremely important to reset route lists, route groups and devices, each time I modify something related to them.

For example, let’s suppose we have an inbound PSTN call to our HQ gateway in Pennsylvania. The inbound call is from a 717xxxxxxx line, located in Pennsylvania too. The telco provider is sending only 7 digits to our gateway:

Without digit manipulation, the result would look like this:

digit-manipulation-2016-06-04 10_55_57

HQ gateway receives only 7 digits from a PSTN subscriber line

We apply some digit manipulation. We tell the HQ gateway to add a prefix of 9717 to inbound subscriber calls:

digit-manipulation-2016-06-04 10_57_04

We get the call again but nothing happens. That’s because we did not reset the gateway.

We reset the gateway, and look at the result again:

digit-manipulation-2016-06-04 10_58_56



Leave a Reply

Your email address will not be published. Required fields are marked *


Adsense black background: