[This is pre-release documentation and subject to change in future releases. This topic's current status is: Milestone-Ready]

Topic Last Modified: 2010-07-18

A dial plan is a named set of normalization rules that translates phone numbers for a named location, individual user, or contact object into a single standard (E.164) format for purposes of phone authorization and call routing.

Normalization rules define how phone numbers expressed in various formats are to be routed for each specified location, user, or contact object. The same dial string may be interpreted and translated differently depending on the location from which it is dialed and the person or contact object making the call.

Dial Plan Scope

A dial plan’s scope determines the hierarchical level at which the dial plan can be applied. In Microsoft Communications Server 2010, in-band provisioning enables you to configure dial plans with the following scope levels (listed from the most specific to the most general). If a User dial plan is not assigned, in-band provisioning sends the Pool default dial plan. If there is no Pool dial plan, in-band provisioning sends the Site default dial plan. Finally, if there is no other dial plan configured for the user, in-band provisioning sends the Global dial plan.

  • User dial plan: can be assigned to individual users, groups, or contact objects. Voice applications can look up and use a per-user dial plan when a phone-context value of user-default is received. Note that for the purpose of assigning a dial plan, a contact object is treated as an individual user.

  • Pool dial plan: can be created at the service level for any PSTN gateway or registrar in your topology. To define a Pool dial plan, you must specify the particular service (PSTN gateway or registrar pool) to which the dial plan applies.

  • Site dial plan: can be created for an entire site, except for any users, groups, or contact objects that are assigned a Pool dial plan or User dial plan. To define a Site dial plan, you must specify the site to which the dial plan applies.

  • Global dial plan: is the default dial plan installed with the product. You can edit the Global dial plan, but you cannot delete it. This dial plan applies to all Enterprise Voice users, groups, and contact objects in your deployment unless you configure and assign a dial plan with more specific scope.

Planning for Dial Plans

Planning dial plans consists of:

  • Listing all the locales in which your organization has an office.

    In a large multinational company with numerous small branch offices this can be a time-consuming task. The list must be up to date and complete. It will need to be revised as company organization evolves.

  • Identifying valid number patterns for each site.

    The most time-consuming part of planning your dial plans is identifying the valid number patterns for each site. In some cases, you may be able to copy normalization rules that you have written for one dial plan to other dial plans, especially if the corresponding sites are within the same country, region or even continent. In other cases, small changes to numbers in one dial plan may be enough to use them in other dial plans.

  • Developing an organization-wide scheme for naming dial plans.

    Adopting a standard naming scheme assures consistency across an organization and makes maintenance and updates easier.

  • Deciding whether multiple dial plans are required for a single location.

    If your organization maintains a single dial plan across multiple locations, you may still need to create a separate dial plan for Enterprise Voice users who are migrating from a PBX and need to have their existing extensions retained.

  • Deciding whether per-user dial plans are required.

  • Assigning dial plans to Communications Server Front End Servers, Enterprise pools, and Mediation Servers.

    Mediation Servers use dial plans to convert incoming numbers from a local number format to E.164 format for purposes of routing to Communications Server. Each Microsoft Office Communications Server 2007 Front End Server and pool must be associated with a dial plan to determine how outgoing calls to the public switched telephone network (PSTN) or a PBX are to be routed.

To create a dial plan, you specify values in the following fields, as required.

Name and Simple Name

For User dial plans, you should specify a descriptive name that identifies the users, groups, or contact objects to which the dial plan will be assigned. For site dial plans, the Name field is prepopulated with the site name and cannot be changed. For pool dial plans, the Name field is prepopulated with the PSTN gateway or registrar name and cannot be changed.

The dial plan Simple Name is prepopulated with a string that is derived from the dial plan name. The Simple Name field is editable, and is intended to enable you to devise a more descriptive naming convention for your dial plans. Best practice is to develop a naming scheme for your entire organization and use this scheme consistently across all sites and users.


We recommend that you type the common, recognizable name of the geographic location to which the corresponding dial plan applies. For example, if the dial plan name is London.Contoso.com, the recommended description would be London. If you have deployed Microsoft Communicator "14" Phone Edition, the name in this field will be displayed to users for the purpose of allowing them to select the appropriate dial plan for a call.

Dial-in Conferencing Region

If you are deploying dial-in conferencing, you will need to specify a dial-in conferencing region to associate dial-in conferencing access numbers with a dial plan. For more information, see Dial-In Conferencing in Communications Server 2010.

External Access Prefix

You can specify an external access prefix of up to four characters (#, *, and 0-9) if users need to dial one or more additional leading digits (for example, 9) to get an external line.

If you specify an external access prefix, you do not need to create an additional normalization rule to accommodate the prefix.

Normalization Rules

Normalization rules define how phone numbers expressed in various formats are to be routed for the named location. The same number string may be interpreted and translated differently depending on the locale from which it is dialed. Normalization rules are necessary for call routing and authorization because users can, and do, use various formats when entering phone numbers in their contact lists.

Normalizing user-supplied phone numbers provides a consistent format that facilitates:

  • Matching a dialed number to the intended recipient’s SIP-URI.

  • Applying dialing authorization rules to the calling party.

The following number fields are among those that your normalization rules may need to account for:

  • Dial plan

  • Country Code

  • Area Code

  • Length of extension

  • Site prefix

Creating Normalization Rules

Normalization rules use .NET Framework regular expressions to specify numeric match patterns that the server uses to translate dial strings to E.164 format for the purpose of performing reverse number lookup. You create normalization rules in the Communications Server Control Panel either by entering the expressions manually or by entering the starting digits and the length of the dial strings to be matched and letting the Control Panel generate the corresponding regular expression for you. Either way, when you finish, you can enter a test number to verify that the normalization rule works as expected.

For details about using .NET Framework regular expressions, see ".NET Framework Regular Expressions" at http://go.microsoft.com/fwlink/?LinkId=140927.

Sample Normalization Rules

The following table shows sample normalization rules that are written as .NET Framework regular expressions. The samples are examples only and are not meant to be a prescriptive reference for creating your own normalization rules.

Table 1.Normalization Rules Using .NET Framework Regular Expressions

Rule name Description Number pattern Translation Example


Translates 4-digit extensions



0100 is translated to +14255550100


Translates 5-digit extensions



50100 is translated to +14255550100


Translates 7-digit numbers to Redmond local numbers



5550100 is translated to +14255550100


Translates 7-digit numbers to Dallas local numbers



5550100 is translated to +19725550100


Translates 10-digit numbers in the United States



2065550100 is translated to +12065550100


Translates numbers with long distance prefixes in the United States



12145550100 is translated to +12145550100


Translates numbers with international prefixes in the United States



01191445550100 is translated to +91445550100


Translates 0 to Redmond Operator



0 is translated to +14255550100


Translates numbers with on-net prefix (6) and Redmond site code (222)



62220100 is translated to +14255550100


Translates numbers with on-net prefix (6) and NY site code (333)



63330100 is translated to +12025550100


Translates numbers with on-net prefix (6) and Dallas site code (444)



64440100 is translated to +19725550100

The following table illustrates a sample dial plan for Redmond, Washington, USA, based on the normalization rules shown in the previous table.

Table 2. Redmond Dial Plan Based on Normalization Rules Shown in Table 1










The normalization rules names shown in the preceding table do not include spaces, but this is a matter of choice. The first name in the table, for example, could have been written "5 digit extension" or "5-digit Extension" and still be valid.