Introducing PSTN Calling Dial Plans


What is Dial-Plan?

Dial Plan is a set of normalization rules that translates dialed phone number into singe standard E.164 format for Call Routing.

A Dial-Plan consist of one or more Normalization Rule which are based on users Dialing habits.

You use your Skype Client to dial PSTN number, and you used to dial a prefix, assume 9, then dial the called number. You may see on the phone screen that some digits gone, e.g. 9, and others added (may be the Country and Area codes). Why? I don't dial that! But finally, you hear your colleague voice and call established successfully.

The reason being Skype administrator in your company created special formula that accept your inputs and translate it to (E.164) what you see on the screen.

This is what we called it Normalization Rules and Dial Plans.

In Skype for Business Online there two types of dial plans:

  • Service Scoped: Is scoped for every country where Cloud PBX is available. Each user is automatically assigned with this dial-plan and it cannot be altered.
  • Tenant Scoped: It can further be broken into 2 types of Dial-Plan:
    • Tenant Scope – It is customizable and applied to all users in respective tenant
    • User Scope – It is customizable and applies to specific users

The following are the possible effective dial plans:

  1. Service Dial-Plan: If no tenant global dial plan is scoped & user global dial plan is assigned to provisioned user then user will inherit Service Dial Plan mapped to country with their Office 365 usage location
  2. Tenant Global: If tenant global dial plan is defined and no user global dial plan is assigned to provisioned user then user will inherit effective dial plan merged with tenant dial plan and service dial plan
  3. User Global: If user global dial plan is defined and assigned to provisioned user then user will inherit effective dial plan merged with user global dial plan and service dial plan mapped to country with their Office 365 usage location

Planning for tenant dial plans

Step 1 Decide whether a custom dial plan is needed to enhance the user dialing experience – typically the need for one would be to support non-E.164 dialing such as extensions or abbreviated national dialing.

Step 2 Determine whether tenant global or tenant user scoped dial plans are needed or both. User scoped dial plans are needed if users have different local dialing requirements.

Step 3 Identify valid number patterns for each required dial plan. Only the number patterns that are not defined in the service level country dial plans are required.

Step 4 Develop an organization-wide scheme for naming dial plans. Adopting a standard naming scheme assures consistency across an organization and makes maintenance and updates easier.

 

Tenant dial plan walk through

Normalization rules that are assigned to each Cloud PBX user within US automatically:

  • PS C:\WINDOWS\system32> (Get-CsDialPlan US).Normalization | FT Name,Description,Pattern,Translation

Without configuring custom Dial Plans, this is the result when dialing number:

We will now create Custom tenant dial plan for practical understanding

  • $nr1 = New-CsVoiceNormalizationRule -Parent Global -Name Test1 -Pattern "^(\d{4})$" -Description "Number with 181" -Translation '+1816406$1' -InMemory
  • $nr2 = New-CsVoiceNormalizationRule -Parent Global -Name Test2 -Pattern '^([2-9]\d{7})$' -Description "Local number normalization for Australia" -Translation '+613$1' -InMemory
  • New-CsTenantDialPlan  -Identity DialPlan-Test1 -NormalizationRules @{Add=$nr1,$nr2}

Assign this to user John Depp

After signing out and back in from the Skype for Business client, the additional normalization rules are now applied.

Update Global Tenant Dial Plan with Normalization Rules



  • $nr1 = New-CsVoiceNormalizationRule -Parent Global -Name Test1 -Pattern "^(\d{4})$" -Description "Number with 181" -Translation '+1816406$1' -InMemory
  • Set-CsTenantDialPlan -Identity Global -NormalizationRules @{Add=$nr1}

Removing Tenant User Dial Plan from a User


Removing Tenant Dial Plan

Remove a Tenant User Dial Plan (force will allow delete even if assigned to any users)

Whilst it's recommended to gracefully remove a dial plan from all users it's assigned to prior to deleting the dial plan, include -force if you want to remove anyway:

  • Remove-CsTenantDialPlan -Identity Tag:DialPlan-Test1 -Force


Identify Effective Dial Plan

  • Get-CsEffectiveTenantDialPlan -Identity John.Depp@anuagar.info| Select-Object -ExpandProperty NormalizationRules


You can also use above command to test number normalization

  • Get-CsEffectiveTenantDialPlan -Identity John.Depp@anuagar.info | Test-CsEffectiveTenantDialPlan -DialedNumber 2423456578

Service Dial Plan

The following cmdlet will list default dial plan entries that apply to a region. In this example, the region is US:

  • (Get-CsDialPlan US).NormalizationRules | FT Name,Description,Pattern,Translation,IsInternalExtension


Troubleshooting

Step1: Collect UCCAPI logs for the effected user from location "C:\Users\useralias\AppData\Local\Microsoft\Office\16.0\Lync\Tracing" or "%userprofile%\AppData\Local\Microsoft\Office\16.0\Lync\Tracing"

Step2: Open the UCCAPILOG file using Snooper.

Step3: Expand the
SIP/2.0 200 OK,
you will see the normalization rules that have been applied to the user:


  • Hope the above information is helpful
Comments (1)

  1. Evelyne says:

    Hi! I’m at work browsing your blog from my new apple iphone!
    Just wanted to say I love reading your blog and look forward to all
    your posts! Carry on the superb work!

Skip to main content