CUCM Call Flow

CUCM Call Routing Elements

Like many Cisco configurations you have statements and groups that are contained within one another and won’t do anything by themselves until joined together. The following components are required for CUCM to able to handle inbound and outbound calls:

  • route partitions
    • a group of things with similar reachability. Such as PT_INTERNAL for internal calls, and PT_PSTN_OUTBOUND for regular office users and PT_CONTACT_CENTER for call center users
  • route lists
    • Contain route groups. The first entry in the list is the preferred call routing path
  • route groups
    • a list of gateways or trunks that support circuits to the PSTN or CUCM cluster
  • route patterns
    • a pattern matching a string of dialed digits. Necessary for PSTN access and integrating CUCM with the outside world. Patterns are joined with a route list or gateway
  • call search spaces
    • applied to a physical or Jabber phone. It contains the route partitions. Applies partitions in a top-down manner. If a target dialed is not associated with a partition that is an object of the CSS that the caller is associated with, the call fails
  • gateways/trunks
    • CUCM configuration to speak with the ISR. Called on by the route group

These elements in and of themselves do nothing until they’re linked together to handle call flow for inbound and outbound calls. 

 

Our Environment

I’ve colour coded to show the relation between all of the pieces:

We have one Route List configured with the route group applied to it:

  1. RL_PSTN
    1. RG_PSTN

We have one route group with available devices that are able to route calls to the PSTN:

  1. RG_PSTN
    1. 10.1.10.1
    2. C560-ABB-UC-2
    3. IMP_SIP_TRUNK

We have one gateway device, the ISR 4331. The UC560 door buzzer connects here:

  1. IP Address 10.1.10.1
  2. Device pool: PHONE_DP
  3. Calling Search Space: CSS_INTERNAL

We have 5 route partitions which are applied to route patterns. Partitions are a name, description, time zone, and nothing more:

  1. PT_CC_AGENT
  2. PT_CONTACT_CENTER
  3. PT_FAX_OUTBOUND
  4. PT_INTERNAL
  5. PT_PSTN_OUTBOUND

We have 4 Calling Search Spaces which route partitions are contained. The CSS is a simple configuration with a set name and partition and nothing more:

  1. CSS_CC_AGENT
    1. PT_INTERNAL
    2. PT_CC_AGENT
  2. CSS_CONTACT_CENTER
    1. PT_INTERNAL
    2. PT_FAX_OUTBOUND
    3. PT_CONTACT_CENTER

  3. CSS_INTERNAL
    1. PT_INTERNAL
  4. CSS_PSTN_OUTBOUND
    1. PT_INTERNAL
    2. PT_PSTN_OUTBOUND

We have 6 route patterns configured:

  1. 1.! for Outbound Contact Center PSTN
    • Partition: PT_INTERNAL
    Caller ID Mask for outside recipients: 5557780101 (Support Center toll free)
    • Discard Digits: none
    • Gateway/RouteList: RL_PSTN
  2. 600[1-4] for FAX CALLING
     Partition: PT_INTERNAL
    • Caller ID Mask for outside recipients: no mask
    • Discard digits: none
    • Gateway/RouteList: RL_PSTN
  3. 88888 for WFO Recording RP
    • Partition: PT_INTERNAL
    Caller ID Mask for outside recipients: no mask
    • Discard Digits: none
    • Gateway/RouteList: WFO_TRUNK
  4. 9.! for Outbound IP Phone Users PSTN
    • Partition: PT_PSTN_OUTBOUND
    • Caller ID Mask for outside recipients: 5557780909 (Main DID)
    • Discard Digits: PreDot (mask discards anything predot)
    • Gateway/RouteList: RL_PSTN
  5. 9.! for Outbound Contact Center PSTN for Agents
    • Partition: PT_CC_AGENT
    Caller ID Mask for outside recipients: 5557780101 (Support Toll Free)
    • Discard Digits: PreDot (mask discards anything predot)
     Gateway/RouteList: RL_PSTN
  6. [2-9].! for Outbound Contact Center PSTN
    • Partition: PT_CONTACT_CENTER
    • Caller ID Mask for outside recipients: 5557780101 (Support Toll Free)
     Discard Digits: none. Prefix outgoing calls with 1
    • Gateway/RouteList: RL_PSTN 
Putting it altogether:
Extension 2229 (and regular office users):
  • Partition: PT_INTERNAL
  • CSS: CSS_PSTN_OUTBOUND

Phone handset:

  • CSS: CSS_PSTN_OUTBOUND

Phone and extension 2229 are linked with the CSS_PSTN_OUTBOUND call search spaceand PT_INTERNAL route partition which is linked to the route pattern. These alone do nothing. The CSS contains different route partitions. The route partition is just a name and description. The route pattern is what brings everything together. The route list is also just a name and description. The route list has the route group contained within which lists the device capable ISR 4331 which interacts with the PSTN.

The route pattern is what makes everything work in the end. For 9.! for Outbound IP Phone Users PSTN, it is applied to all phones and extensions with PT_PSTN_OUTBOUND and RL_PSTNSo when 2229 calls anybody externally, it uses route pattern 9.! for Outbound IP Phone Users PSTN and 5557780909 is displayed because this is the mask associated with the route patternWhile there are separate partitions for the phone itself and the extension, the partition for the extension only matters if extension mobility is used, otherwise the partition assigned to the phone overrides the partition assigned to the extension. 

Example 2:

Extension 3311 in Support:

  • Partition: PT_INTERNAL
  • CSS: CSS_CC_AGENT

Phone handset:

  • CSS: CSS_CC_AGENT

Phone and extension 3311 is linked with CSS_CC_AGENT call search space and PT_INTERNAL route partition  which is linked to the route pattern.

So when 3311 calls externally, it uses route pattern 9.! for Outbound Contact Center PSTN AGENTS and 5557780101 is displayed because this is the mask associated with this route pattern.

Other Tests:

  • Extension CSS was set as CSS_CC_AGENT and phone displayed the Support main number when calling out: 5557780101
  • Extension CSS was set as CSS_PSTN_OUTBOUND and phone displayed the office main number: 5557780909
  • Phone CSS was set as CSS_INTERNAL while extension was set as CSS_CONTACT_CENTER and I could not call out
  • Phone CSS was set as CSS_PSTN_OUTBOUND while extension was CSS_CONTACT_CENTER and phone displayed the office main number: 5557780101

It appears Extension CSS does not matter here. The phone CSS overrides the extension CSS. Even if I change the extension partition the result stats the same – I still call based on the phone CSS. This would change when using extension mobility however. 

Calls from the main office number will display the company name. Calls from the call center will only display the number 1-555-778-0101 – to change this so it displays the company name requires the ISP doing so on their end.

Summary

Dialed digits match a route pattern which point to a route list which point to a route group which references the physical device call search space. If extension mobility is used, the call search space applied on the extension takes over.

 

 

So How Do Calls Enter or Leave the Domain?

Call processing for whether it is a regular office user or a support center employee is all handled by CUCM. If the call is deemed to not be an internal call, the voice packets are forwarded to the ISR voice gateway. The ISR4331 voice gateway handles all of the inbound and outbound calls.

Without getting in too great of detail: 

Any inbound calls:

  • dial-peer voice 1 pots
    • translation-profile incoming xlate_incoming
    • incoming called-number .
    • direct-inward-dial
  • Voice translation-profile xlate_incoming
    • translate called 1

VoIP for inbound calls where the extension is dialed [starting between 2 and 8:

  • dial-peer voice 15 voip
    • destination-pattern [2-8] …
    • session target ipv4: 10.1.10.20
    • incoming called-number .
    • voice-class codec 1
    • dtmf-relay rtp-nte h245-alphanumeric

Inbound calls come in over the telephone line and are converted by the ISR into voice packets which are interpreted by CUCM after they are pushed onto CUCM for processing. 

All calls (.) are matched against the inbound translation profile: xlate_incoming: Syntax: /match pattern/ /replace pattern/

  • rule 16 /^ 5557780909/ /8001/
  • rule 22 /^5557780101 / /8300/ 

The 5557780909 dialed DID is translated to extension 8001 and passed onto CUCM which interprets this as the main office extension. The main office IVR prompts then proceed because it is configured to do so.

DID 5557780101 is translated to extension 8300 and passed onto CUCM with interprets this as the Support toll-free DID – extension 8300 is configured on CUCM as the call center IVR and the call center related prompts begin to play.

There are other rules for all of the DIDs, but this is the gist of the behavior. 

Then lastly, all outbound calls are permitted and the rule denoting this is as such matching any string and replacing any string with no other string:

  • dial-peer voice 3 pots
    • translation-profile outgoing xlate_outgoing
    • preference 1
    • destination-pattern .T
    • port 0/1/0:23
  • Voice translation-profile xlate_outgoing
    • translate calling 2
  • rule 99 // // 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Leave a comment