Wednesday, 27 July 2016

Global Dial Plan Replication - Notes


Concepts
  • In CUCM v10, new attributes were introduced to DN which are Enterprise Alternate Number and +E164 Alternate Number.
    • Each DN can be represented with 3 numbers
    • For example, the DN can be 3459, Enterprise Alternate DN 3103459, +E164 Alternate DN +97145673459 or 045673459
    • By default Enterprise Alternate Number and +E164 Alternate Number aren't reachable locally within the cluster
      • This can be enabled by checking 'Add to Local Route Partition' under DN configuration
      • Assign the PT to phones CSS
    • You can assign Enterprise Alternate Number or +E164 Alternate Number as PSTN failover
      • PSTN failover will be used when the destination SIP trunk isn't reachable
      • This PSTN failover is applicable for called Enterprise Alternate Number, called +E164 Alternate Number or called Directory URI
      • CUCM will try to dial the PSTN failover number
      • Calling Phone AAR CSS will be used to reach the PSTN Failover
  • GDPR and ILS and two independent components
    • ILS network will be established between ILS enabled clusters to exchange route strings
    • GDPR will advertise GDPR data over ILS enabled network
    • GDPR data can be
      • Local Directory URIs
      • Local Enterprise Alternate Numbers
      • Local +E164 Alternate Numbers
      • Local Enterprise Alternate Patterns
      • Local +E164 Alternate Patterns
      • Imported Alternate Numbers, Alternate Patterns and URIs
      • Learned Numbers, Patterns and URIs
      • PSTN Failover
    • Actual Call Routing is based on SIP Patterns of Route Strings pointing to SIP Trunks
  • Instead of advertising large number of Alternate Numbers, you can create Alternate Pattern to be advertised
    • You can create Enterprise Alternate Pattern and +E164 Alternate Pattern
    • These patterns can't be used for local dialing
    • For Pattern PSTN failover, there are 3 options:
      • No PSTN Failover, i.e. if SIP trunk isn't reachable, call will fail
      • Use Pattern as PSTN Failover Number - This will use the same pattern as PSTN failover
      • Apply Strip Digits and Prepend Digits to Pattern and Use for PSTN Failover
  • You must assign learnt numbers/patterns to partitions
    • GDPR patterns can't be left in None partition
    • The default partitions created are
      • Global Learned E164 Numbers - This will be assigned to Learnt +E164 Alternate Numbers
      • Global Learned E164 Patterns - This will be assigned to Learnt +E164 Alternate Patterns
      • Global Learned Enterprise Numbers - This will be assigned to Learnt Enterprise Alternate Numbers
      • Global Learned Enterprise Patterns - This will be assigned to Learnt Enterprise Alternate Patterns
    • These partitions should be included in phones CSSes to be able to dial remote cluster numbers
    • In case of overlap between Alternate Number and Pattern, Longest match is applied
  • If you are using CUBE within ILS network, you need to enable Send ILS Learned Destination Route String
    • When enabled, CUCM can tag the route string in the SIP header x-cisco-dest-route-string
    • CUBE can use the voice-class route route-tag feature to route using route-tag

Configuration

  1. Activate Inter-cluster Lookup Service
  2. Navigate to Enterprise Parameters
    1. Configure unique cluster name for each ILS cluster
    2. Configure Cluster Fully Qualified Domain Name
    3. Configure Organization Top Level Domain
  3. Navigate to Advanced Features > ILS Configuration
    1.  Select Cluster Role
    2. Configure Route String
    3. Configure Synchronization Timer
    4. Enable Advertise Global Dial Plan Replication Data to Remote Clusters
    5. Configure ILS Authentication (TLS or Password)
  4. Navigate to Phone DN
    1. Under Enterprise Alternate Number
      1. Configure Number Mask - The Alternate Number will be generated based on DN and Mask
      2. Enable Advertise Globally via ILS
      3. Enable Add to Local Partition and select the partition - This can make the Alternate number reachable locally within the cluster
    2. Under +E164 Alternate Number
      1. Configure Number Mask - The Alternate Number will be generated based on DN and Mask
      2. Enable Advertise Globally via ILS
      3. Enable Add to Local Partition and select the partition - This can make the Alternate number reachable locally within the cluster
    3. Configure Directory URI (this is covered in separate section)
    4. Under PSTN Failover for Enterprise Alternate Number, +E.164 Alternate Number, and URI Dialing assign +E164 or Enterprise Alternate Number as PSTN failover
  5. Navigate to Call Routing > Global Dial Plan Replication > Advertised Pattern > Add New
    1. Configure Pattern
    2. Select Pattern Type (Enterprise Alternate or +E164 Alternate)
    3. Configure PSTN Failover Policy
  6. Navigate to Call Routing > Global Dial Plan Replication > Partitions for Learned Numbers and Patterns
    1. Select the Partition for each GDPR Data Type
    2. You can mark GDPR Data as Urgent Priority
  7. Navigate to Call Routing > Global Dial Plan Replication > Blocked Learned Patterns (this will define numbers/patterns not to be installed in database)
  8. You can view Learnt Numbers and Patterns from Call Routing > Global Dial Plan Replication tab
  9. If you ILS SIP Trunks are pointing to CUBE, configure SIP Profile with Send ILS Learned Destination Route String enabled

Tuesday, 26 July 2016

SIP Call Routing


When CUCM receives SIP INVITE message this is how it's being handled




*** LHS stands for Left Hand Side of SIP URI while RHS stands for Right Hand Side of SIP URI

Important Note: The Enterprise Parameter 'URI Lookup Policy' is set to case sensitive by default. This means that when CUCM receives INVITE message, it will make sure that the called alpha-URI matches with uppercase/lowercase. If this parameter changes, CUCM won't care about uppercase/lowercase.

Assume that the cluster has two Directory URIs, carlo@gmail.com which is local & Carlo@gmail.com which is remote. By default when the caller dials Carlo@gmail.com, CUCM will forward the call to remote cluster ignoring local directory URI due to case sensitive (assuming the SIP route pattern exists for route-string).

It's important to configure the following:

  1. Cluster FQDN (CFQDN) Enterprise Parameter - This can be the FQDN of single node in the cluster or multiple nodes in the cluster separated by spaces. It can be a wildcard as well such as *.cisco.com
  2. Top Level Organization Domain (TLOD) Enterprise Parameter - Single domain such as cisco.com
  3. Enable "Use Fully Qualified Domain Name in SIP Requests" in the SIP Profile of all SIP trunks. When it will be used?
    1. When LHS is numeric, the RHS of To header is always overwritten by the trunk destination (fixed in version 10 by making To header matching Req-URI) - You  need this setting
    2. If the call is routed based on numeric LHS, the RHS of Req-URI header will be overwritten by trunk destination - You need this setting. If the call is routed by matching RHS against SIP Route Pattern, RHS of Req-URI is preserved.