Expressway-C Call Routing

Expressway-C Call Routing Configuration

Now that the Unified CM can route SIP calls to Expressway, we can focus on the Expressway dial plan. Cisco Expressway has the capability of routing calls, among other things, based on the SIP variant detected. Specifically, it can distinguish between Microsoft SIP calls and Standards based SIP calls, such as those originating from Unified CM and Jabber. Initially, we will use this capability so that we only route standards-based SIP calls for our UC domain (pod2.cms.lab) to the Unified CM. Any SIP call matching the CMS domain (conf.pod2.cms.lab) will be routed to CMS.

For this lab, your Expressway-C should already be configured with a system name, valid NTP server, and an internal DNS server. The server certificate and certificate authority certificates are installed as well. Additionally, it has the Traversal Zones for Business to Business communication via the Expressway-E set up, as well as a zone to the Unified CM.

What needs to be configured:

  • Add a Zone for each Cisco Meeting Server in the cluster
  • Add a Search Rule for calls going to Unified CM
  • Add Search Rules for calls going to CMS

Expressway Zones for Cisco Meeting Server

In order to route calls to Cisco Meeting Server, Zones are required. While it is possible to create a single Zone pointing to each of the CMS servers in the cluster and obtain a basic level of redundancy, this currently does not handle load balancing as implemented in CMS, because if CMS rejects a call when the capacity of the server is exceeded, the SIP 488 message returned by CMS will not cause Expressway to route the call to the next Zone member. Because of this limitation, one Zone per CMS server in a cluster is required. Expressway Search rules will then be configured to hunt through each zone in a top-down fashion.

  1. Open the browser to the Expressway-C at https://expc1a.pod2.cms.lab
  2. Log in with username admin and password c1sco123
  3. Navigate to Configuration > Zones > Zones.
  4. Click New
  5. Enter CMS1a Zone in the Name field
  6. For the Type, select Neighbor
  7. Under the H.323 section, turn the Mode to Off
  8. In the Location section, for Peer 1 address enter the CMS1a FQDN, cms1a.pod2.cms.lab.
  9. In the Advanced section, select a Zone profile of Custom
  10. Verify the Meeting Server load balancing is On
  11. Click Create Zone

Next, the exact same thing needs to be configured for CMS1b and CMS1c. You can click HERE to have it done for you, otherwise, repeat the above steps, simply changing the name of the Zone (to CMS1b Zone and CMS1c Zone ) and, of course, the Peer 1 address to cms1b.pod2.cms.lab and cms1c.pod2.cms.lab respectively.

From the Zone list, you can refresh this information a few times. Eventually, all Zones should go to the Active state.

Search Rule for Unified CM Domain

Next we can focus on the dial plan. Expressway needs to route calls for the Unified CM domain to UCM and calls to the CMS domain to CMS.

In Expressway, SIP routes are configured using Search Rules. Begin with the Search rule for the Unified CM domain, pod2.cms.lab. Setting this rule is fairly straightforward, however, note that since the Unified CM can only support standards-based SIP calls, we will limit the rule to just that type (and ignore any call to the Unified CM domain that is a Microsoft-type SIP call.

  1. Navigate to Configuration > Dial plan > Search rules.
  2. Click New
  3. Configure the following:

    Parameter Value
    Rule Name UC Domain StdSIP to CUCM
    Priority 100

    Note: Remember that the lower the number the higher the priority in the Expressway product
    Protocol SIP
    SIP Variant Standards-based
    Mode Alias pattern match
    Pattern type Regex
    Pattern string .*@(cucm1a\.|cucm1b\.)?pod2\.cms\.lab.*

    Note: This matches any of the following domains: cucm1a.pod2.cms.lab, cucm1b.pod2.cms.lab, or pod2.cms.lab

    For help with regular expressions, Expressway has a tool under Maintenance > Tools > Check Pattern. Also, sites like https://regex101.com are helpful.
    Pattern behavior Leave
    On successful match Stop

    If the call does not complete to this zone, do not continue hunting.
    Target CUCM1 Zone

  4. Click Create search rule

Search Rule for CMS Domains

Next we can add the Search rules for each of the CMS Zones. We will do these sequentially, so that in case of contention, Expressway will try them all in order.

  1. Navigate to Configuration > Dial plan > Search rules.
  2. Click New
  3. Configure the following:

    Parameter Value
    Rule Name CMS Domain to CMS1a
    Priority 100

    Protocol SIP
    Mode Alias pattern match
    Pattern type Regex
    Pattern string .*@conf\.pod2\.cms\.lab.*
    Pattern behavior Leave
    On successful match Continue

    Because we want it to try CMS1b, if necessary
    Target CMS1a Zone

  4. Click Create search rule.

Now we can configure the CMS Domain to CMS1b rule. Except for the target and a higher Priority, it will be identical to the To CMS1a Zone

  1. Since this is nearly identical to the last rule, find the rule just created called CMS Domain to CMS1a and at the right of the row, click Clone.
    NOTE: Be sure to click Clone and not Edit!
  2. Change the Rule Name to CMS Domain to CMS1b
  3. Change the Priority to 101.
    The priority is very important. If Expressway matches two rules with the same priority, then the call would be forked to both destinations. In this lab you will see us use the same priority for many rules, but either the domain or SIP variant will always be different.
  4. Change the Target to CMS1b Zone.
  5. Click Create search rule

Finally we configure the CMS Domain to CMS1c Search rule.

  1. Since this is nearly identical to the last rule, find the rule just created called CMS Domain to CMS1b and at the right of the row, click Clone.
  2. Change the Rule Name to CMS Domain to CMS1c
  3. Change the Priority to 102
  4. For On successful match, select Stop.
  5. Change the Target to CMS1c Zone.
  6. Click Create search rule

Transform for Numeric Calls to CMS

One other call flow to consider is numeric dialing to a Space. The LDAP-imported Spaces were created with a number pattern of 7502XXXX. When Unified CM routes a numeric call, it will append the destination IP address or FQDN, depending on what is specified in the outbound SIP trunk. This means that a call destined to 75020001 will be sent to Expressway with a URI of 75020001@expc1a.pod2.cms.lab. We will add a Transform in Expressway to re-write the call so that it becomes 75020001@conf.pod2.cms.lab, for which the configured Search rules will route the call to CMS.

  1. Open the browser to the Expressway-C at https://expc1a.pod2.cms.lab and log in with username admin and password c1sco123
  2. Navigate to Configuration > Dial plan > Transforms.
  3. Click New
  4. For the Pattern type, select Regex
  5. In the Pattern string field, enter (7502....)@expc1a\.pod2\.cms\.lab.*
  6. For Pattern behavior, select Replace
  7. For Replace string, enter \1@conf\.pod2\.cms\.lab.*
  8. Click Create transform

Now calls to CMS can be tested.