Walkthrough: Dial Plan Configuration

Topic Last Modified: 2009-07-19

Office Communications Server 2007 R2 Dial Plan configuration

General information about Office Communications Server 2007 R2 dial plan configuration can be found in User Authorization and Outbound Call Routing Requirements in the Planning and Architecture documentation.

The following figure shows the complete Office Communications Server 2007 R2 architecture diagram for Litware:

Ee323543.f4130cbf-b1b1-4c0d-bcc7-53ff8739b2ed(en-us,office.13).gif

Figure Litware Voice Architecture

Litware can now use the information that it has collected to configure the Office Communications Server 2007 R2 dial plan. The Office Communications Server 2007 R2 Resource Kit tool Route Helper is highly recommended. The route helper tool is available for download as part of the Office Communications Server 2007 R2 Resource Kit Tools available for download at https://go.microsoft.com/fwlink/?LinkId=158267.

There are three important aspects in the Office Communications Server 2007 R2 dial plan:

  1. Location profiles and normalization rules
  2. Voice policies and phone usage
  3. Phone usage and routes

Location Profiles and Normalization rules

In a global Office Communications Server 2007 R2 deployment, all phone numbers should be normalized to IETF RFC 3966/E.164 format, which is the only unique worldwide numbering format. Having a unique numbering format allows the system to match unique users to phone numbers. This format should also be the what that users will be configured in the Office Communications Server 2007 R2 environment.

The following figures show the Active Directory configuration of a US Litware user and a German Litware user. The US Litware user has the phone number +14255550220:

US Site user configuration
Ee323543.c405f564-f49e-48d0-b692-9045a75cf557(en-us,office.13).jpg

The German Litware user has the phone number +4922180150:

German Site user configuration
Ee323543.180ec058-67e4-4069-bfac-1b9a46c49f26(en-us,office.13).jpg

When a user enters a phone number in Office Communicator in RFC 3966/E.164 format, Office Communications Server 2007 R2 will try to match this number to a SIP URI. The lookup is based on the Active Directory entries shown above.

For example, a US user enters a phone number in the format of +4922180150. Office Communications Server 2007 R2 will match this phone number to the SIP URI that is specified in the Active Directory Line URI field (ms-RTCSIP Line attribute) entry +4922180150. After this match, all communication will be established on the basis of the SIP URI.

Not all users will enter phone numbers in RFC 3966/E.164 format, nor is that a requirement. Because Litware identified its users’ dialing habits during planning, those dialing habits can be maintained by configuring location profiles on Office Communications Server 2007 R2 with a set of .NET normalization rules that translate common dialing patterns to RFC 3966/E.164 format numbers. Because all US users will have similar dialing habits, all of them can be combined in a location profile named us.litware.com. Similarly, all German Litware users will be assigned to the Location Profile ger.litware.com. Office Communications Server 2007 R2 allows user-specific assignments of location profiles. The following figures show both location profiles with normalization rules:

Location Profile us.litwareinc.com
Ee323543.85cfac01-be09-4f55-aacb-24313e57aff1(en-us,office.13).jpg

Location Profile ger.litwareinc.com
Ee323543.f584c0e9-62a4-414c-a1a0-c626c7954cac(en-us,office.13).jpg

The following tables show the result of common dialing patterns and their modifications by Office Communications Server 2007 R2 and connected Gateways:

US Dial Plan

# Location Profile US.litware.com Number pattern Normalization Rules RegEx Normalization Rules Prefix Normalization Rules Translation Mediation Server -> Gateway Gateway -> PBX PBX -> PSTN

1

Emergency call with external line prefix

911

^(911)$

+00009$1

+00009911

+00009911

9911

911

2

Emergency call with external line prefix

9911

^(9911)$

+0000$1

+00009911

+00009911

9911

911

3

Operator services call with external line prefix

9311

^(9[346]11)$

+0000$1

+00009311

+00009311

9311

311

4

Internal 3 digit call

118

^([123]\d{2})$

+14255550$1

+14255550118

+14255550118

118

5

Local call with external line prefix

95550001

^9(\d{7})$

+1425$1

+14255550001

+14255550001

95550001

5550001

6

Long Distance Call 10 digit with external line prefix

92065550001

^9([2-9]\d{9})$

+1$1

+12065550001

+12065550001

912065550001

12065550001

7

Long Distance Call 11 digit with external line prefix

912065550001

^9(1\d{10})$

+$1

+12065550001

+12065550001

912065550001

12065550001

8

International Call with external line prefix

90114144205575

^(9011\d{8})$

+$1

+4144205575

+4144205575

90114144205575

0114144205575

# Location Profile GER.litware.com Number pattern Normalization Rules RegEx Normalization Rules Prefix Normalization Rules Translation Mediation Server -> Gateway Gateway -> PSTN

1

Emergency number 110, 112 and 115 incl. external dial prefix

0110

^0(11[025])$

+0000$1

+0000110

+0000110

110

2

Emergency number for data emergencies 116116 incl. ext. line prefix

0116116

^0(116116)$

+0000$1

+0000116116

+0000116116

116116

3

Internal 2 digit Subscriber number +49221801xx

12

^([1-9]\d{1})$

+49221801$1

+4922180112

+4922180112

4

Local call Cologne (221) area code incl. 0 as ext. line prefix

02882

^0([1-9]\d{1}\d+)$

+49221$1

+492212882

+492212882

2882

5

National call incl. 0 as external line prefix

008931760

^00([1-9]\d{1}\d+)$

+49$1

+498931760

+498931760

08931760

6

International number incl. 0 as external line prefix

00014255550001

^000([1-9]\d{3}\d+)$

+$1

+14255550001

+14255550001

0014255550001

Here is an example to help you understand the table above. In the German dial plan row #4, a local phone number in Cologne is being dialed by entering 02882 in Office Communicator. 0 is the external line prefix, and 2882 is the local subscriber number. Because the location profile Ger.litware.com has been assigned to the user, Office Communications Server 2007 R2 will translate the number pattern by using the regular expressions of the location profile to an RFC 3966/E.164 format number. For this translation, the leading 0 will be removed, and the country code and area code (+49221) will be added to the subscriber number. Office Communications Server will now try to match the RFC3966/E.164 format number to phone numbers in its user database pulled from Active Directory in order to match the number to a SIP URI. If this attempt is unsuccessful, the complete RFC 3966/E.164 format number will be sent unmodified to the Mediation Server and to the SIP/PSTN gateway. On the gateway, a number normalization rule for the called party number (sometimes also called destination number IP->Tel) is needed that modifies the RFC 3966/E.164 format number back to the format that the PSTN can process. In this case, the prefix +49221 will be removed and 2882 sent to the PSTN.

Emergency numbers cannot be properly extended to a RFC 3966/E.164 format. An arbitrary prefix (like +0000) can be used in order to differentiate this number from a local subscriber number or extension. This arbitrary prefix needs to be removed before the call is sent to the PSTN. The same logic applies to operator calls (311, 411, 611).

Why does it make sense to normalize a phone number to RFC 3966/E.164 format and to normalize it back to a local format on the Gateway? There are two reasons:

  1. The RFC 3966/E.164 number format is the only worldwide unique numbering format. Using the RFC 3966/E.164 format within the worldwide Office Communications Server 2007 R2 deployment ensures that there are no numbering conflicts between the internal numbers and existing external PSTN numbers. RFC 3966/E.164 is the format in which the users should receive their phone numbers, as shown in Active Directory user configuration (Figures 7 and 8). Office Communications Server 2007 R2 will normalize called party numbers to RFC 3966/E.164 format by performing a reverse number lookup, in which it tries to match an RFC 3966/E.164 format number to a SIP URI. If this attempt is successful, the session invitation will be performed by using this SIP URI.
  2. If no user SIP URI can be matched to an RFC 3966/E.164 format number, then the phone number does not exist within the worldwide Office Communications Server 2007 R2 environment, and so the call needs to be handed over to the PSTN by using an appropriate Mediation Server and a connected PBX/IP PBX or SIP carrier. By implementing least cost routing as part of the route configuration described later, the Office Communications Server 2007 R2 Outbound Routing application will determine which Mediation Server and gateway will be used for the breakout to the PSTN. The information is available only on the local gateway if the gateway is connected on the TDM site directly to the PSTN, or via a PBX to the PSTN on which local dialing formats need to be applied. This is why the local gateway should normalize a RFC 3966/E.164 format number back to a local format.

If Litware would be using Non-DID (Direct Inward Dialing) numbers, those number should be normalized into the following format:

+<corporate main phone number>;ext=<user extension>

e.g. +14255550101;ext=221.

This format allows non-DID phone numbers to become unique even within a worldwide distributed Office Communications Server 2007 R2 deployment.

The US dial plan table above shows that the gateway always adds an additional 9 as external line prefix before sending PSTN calls to the PBX. Table 8 shows the German dial plan table, in which the gateway does not add another external line prefix before sending calls to the PSTN because the gateway is connected directly to the PSTN.

Location profiles are also used at the Mediation Server. The Mediation Server must normalize incoming called party numbers that have not already been normalized by the gateway to RFC 3966/E.164 format. The Mediation Server will add its locally configured location profile to the non-E.164 format number of the TO and the FROM header in the SIP INVITE message (phone-context=%LocationProfile%).

sip:john@litware.com;opaque=user:epid:jDT7jkuH91mdfoi89erTJugAA;gruu SIP/2.0From: <sip:212;phone-context=us.litwareinc.com@litware.com;user=phone>;epid=1450550F33;tag=sdwwwa53932To: <sip:291;phone-context=us.litwareinc.com@litware.com;user=phone>;epid=7e731b1d1b;tag=03d30514a1

With this information, Office Communications Server 2007 R2 can apply the correct normalization rules from the specified location profile before trying to match the normalized RFC 3966/E.164 format numbers to SIP URIs in order to proxy the SIP INVITE to the designated user.

The example above shows the importance of extensive number manipulation capabilities on the gateway.

Voice Policies and Phone Usage

Location profiles and normalization rules are actually a comfort function to maintain the current user dialing behavior. (Normalization rules can always be bypassed by the user by entering an RFC 3966/E.164 format number directly in Office Communicator 2007 R2.) Configuring voice policies is mandatory. Voice policies determine which routes users are authorized, which in turn determines the Mediation Servers and therefore the PBX/PSTN. Each user needs to be assigned to a voice policy.

Forest-level voice policies, applied for all users of the enterprise, are possible. It is also possible to configure “per user” voice policies. Litware needs per user implementation policies, because it has multiple voice policies running on the same Office Communications Server 2007 R2 environment.

US Voice Policies

Number US

1

Emergency Calls + Internal Calls

2

Emergency Calls + Internal Calls + Local Calls

3

Emergency Calls + Internal Calls + Local Calls + National Calls - Premium Calls

4

Emergency Calls + Internal Calls + Local Calls + National Calls + Premium Calls

5

Emergency Calls + Internal Calls + Local Calls + National Calls - Premium Calls + International Calls

6

Emergency Calls + Internal Calls + Local Calls + National Calls + Premium Calls + International Calls

According to the preceding table, users who have been assigned to the voice policy “Emergency calls + Internal Calls + Local Calls + National Calls – Premium Calls” should be able to dial emergency calls within the US, internal calls within the US Litware environment, local calls within the local area code, national calls within the US, but not US Premium numbers. For now, this is just a description of what Litware would like to achieve.

Similarly for Germany, reflecting the fact that within Germany mobile phone calls are generally more expensive than national fixnet calls, the Litware wish list for Voice Policies looks like this:

Germany Voice Policies

Number Germany

1

Emergency Calls + Internal Calls

2

Emergency Calls + Internal Calls + National Calls - Mobile Calls - Premium Calls

3

Emergency Calls + Internal Calls + National Calls + Mobile Calls - Premium Calls

4

Emergency Calls + Internal Calls + National Calls + Mobile Calls + Premium Calls

5

Emergency Calls + Internal Calls + National Calls + Mobile Calls - Premium Calls + International Calls

6

Emergency Calls + Internal Calls + National Calls + Mobile Calls + Premium Calls + International Calls

A voice policy is a set of phone usage attributes, which authorize a specific type of call. Each attributes can be named arbitrarily, but names should be chosen that describe the purpose of the attribute.

To achieve the granularity of class-of-service categories as required by Litware in the tables above, the following syntax of phone usage will be used:

Litware Phone Usage

Phone Usage US Phone Usage GER

EmergencyUS

EmergencyGER

Internal

Internal

LocalRED

NationalGER

NationalUS

MobileGER

PremiumUS

PremiumGER

InternationalUS

InternationalGER

Here are two examples to understand the syntax of phone usage that are assigned to a voice policy:

Ee323543.e0135374-de5c-48cc-a6ff-cd2f7dee1766(en-us,office.13).gif

The next section will explain how phone usage determines which routes the user is allowed to use.

Phone Usage and Routes

The figure below shows a screenshot of the RouteHelper Office Communications Server 2007 R2 Resource Kit tool. This tool helps with the configuration of dial plans within Office Communications Server 2007 R2. The entire dial plan configuration can be created and tested offline and later saved back to Office Communications Server 2007 R2, Front End Server.

Route Helper tool US1 Voice Policy
Ee323543.2f0a4cab-29b7-46cb-be16-b17be228c459(en-us,office.13).jpg

The figure above shows that users who have been assigned, as part of their Active Directory user configuration, to the voice policy “US1EmergencyUS+Internal” will have the phone usage attributes “EmergencyUS” and “Internal.” These attributes determine which routes the user is allowed to use for an outbound call. The order of the attributes is important, because any number entered by the user that cannot be resolved to a SIP URI will first be checked for a matching route by using routes that are marked with the first phone usage attribute “EmergencyUS” in the example above.

If the user has entered a phone number that has been normalized to +14255550112, Office Communications Server 2007 R2 Outbound Routing will first check all routes that are marked with the phone usage attribute “EmergencyUS”. The only route that can be found with this phone usage attribute is the “Emergency calls US” route. But because the normalized phone number (+14255550112) does not match the pattern that has been configured in this route (match numbers that start with +00009), the user is not allowed to use the Mediation Server and connected gateway for this call based on the phone usage attribute “EmergencyUS” and effectively is not allowed to dial this number.

If “EmergencyUS” is the only phone usage attribute in the user’s assigned voice policy, the user would get an error message indicating that she is not authorized to complete a call to this number; however, because there is a second attribute (“Internal”) in this voice policy, Office Communications Server 2007 R2 Outbound Routing will proceed, after trying to match the entered phone number to all “EmergencyUS” marked routes (here only one), with the matching process by using the second phone usage attribute “Internal”. There are two Routes that are marked with the phone usage attribute “Internal”. The first route cannot be taken because the number pattern (numbers that start with +49221801) does not match the normalized number +14255550112; however, the second route with “Internal” (match numbers that start with +142555501, +142555502, +142555503) matches the normalized number +14255550112, and therefore this route can be taken. The user is allowed to use the Mediation Server with the fully qualified domain name (FQDN) medus.litware.com:5061, which is located in the US, for the call to the local analog phone that is still connected to the PBX on the US site of Litware.

In Litware’s deployment, a user who has been assigned to a voice policy that contains the phone usage attribute “Internal” is allowed to make internal calls not only to the PBX in the US, but also to the gateway in Germany. This is possible because both sites are connected through a WAN connection.

The figure above illustrates a paradigm shift compared to the most legacy PBX systems. Within Office Communications Server 2007 R2, a user will receive rights to make calls (or not make calls) and yet has the right to dial numbers that would normally be denied. In this case, the user is allowed to make calls that stay within the company boundaries even though she is effectively making an international call. But because there are no additional costs for this call, the user is allowed to make it.

The following figure shows phone usage attributes and routes for the Voice Policy**“US2EmergencyUS+Internal+LocalRED”**. A user who has been assigned to this voice policy is allowed to dial US emergency numbers, worldwide company internal calls, and local calls within the area codes 425 and 206.

US Voice Policy US2
Ee323543.de7469d3-1e57-45f5-8606-94e36a9b3470(en-us,office.13).jpg

The following figure shows phone usage attributes and routes for the voice policy “US3EmergencyUS+Internal+LocalRED+NationalUS-PremiumUS”. A user who has been assigned to this voice policy should be able to dial US emergency numbers, worldwide company internal calls, and national calls within the US except for premium numbers that start with +19.

US Voice Policy US3
Ee323543.20529dd3-11f3-4296-8286-402e8b01e805(en-us,office.13).jpg

The following figure shows phone usage attributes and routes for the voice policy “US4EmergencyUS+Internal+LocalRED+NationalUS+PremiumUS”. By adding Phone Usage attribute PremiumUS to the previously described Voice Policy US3, another route will become available for the user that allows calls that start with +19, so the user is effectively allowed to dial US premium numbers.

US Voice Policy US4
Ee323543.55915e02-9982-44bf-bd62-2f55916c94de(en-us,office.13).jpg

The following figure shows phone usage attributes and routes for the voice policy “US5EmergencyUS+Internal+LocalRED+NationalUS-PremiumUS+InternationalUS”. A user who has been assigned to this voice policy should be able to dial US emergency numbers, worldwide company internal calls, and national calls within the US except for premium numbers that start with +19. The user is also allowed to dial international numbers, because the “InternationalUS” attributes makes another route available to the user. This route must exclude numbers that start with “+1”; otherwise, the user would be able to dial previously prohibited US Premium numbers by using the phone usage attribute “InternationalUS”.

US Voice Policy US5
Ee323543.cf6fb749-b190-4b13-aeed-b41ace7bf997(en-us,office.13).jpg

As shown above, the route InternationalUS-GER contains the least cost routing configuration for calls from the US to Germany and adjacent countries.

Litware wants its US users to use the WAN link and the German gateway for calls to Germany and adjacent countries. It can achieved this goal by adding a route with the phone usage attribute InternationalUS that matches the country codes of Germany (+49) and adjacent countries. Office Communications Server 2007 R2 evaluates routes from the top down, and so this route needs to be specified before the open route to all countries except the US.

Finally, as part of the voice policy “US6EmergencyUS+Internal+LocalRED+NationalUS+PremiumUS+InternationalUS”, the user is able to dial any number worldwide.

US Voice Policy US6
Ee323543.e1c861f3-5a4c-4d88-b659-f6c0f2832628(en-us,office.13).jpg

For reasons of completeness, all German voice policies and routes that follow a similar syntax as described for the US Voice Policies can be seen in the following figures.

Voice Policy “GER1EmergencyGER+Internal”

German Voice Policy GER1
Ee323543.61928a16-1894-401d-a60f-7f99401a565b(en-us,office.13).jpg

Voice Policy “GER2EmergencyGER+Internal+NationalGER-MobileGER-PremiumGER”

German Voice Policy GER2
Ee323543.ffbe238d-721c-49e2-800a-0a83cab4eb23(en-us,office.13).jpg

Voice Policy “GER3EmergencyGER+Internal+NationalGER+MobileGER-PremiumGER”

German Voice Policy GER3
Ee323543.1c94cd2f-59f7-4e83-a029-41e5e134e759(en-us,office.13).jpg

Voice Policy “GER4EmergencyGER+Internal+NationalGER+MobileGER+PremiumGER”

German Voice PolicyGER4
Ee323543.b732ee53-7bbf-4579-a503-143770faa7a2(en-us,office.13).jpg

Voice Policy “GER5EmergencyGER+Internal+NationalGER+MobileGER-PremiumGER+InternationalGER”

German Voice Policy GER5
Ee323543.220c5384-2c8c-41d4-8f7c-34a1348017b4(en-us,office.13).jpg

Voice Policy “GER6EmergencyGER+Internal+NationalGER+MobileGER+PremiumGER+InternationalGER”

German Voice Policy GER6
Ee323543.3a47a768-024b-4c2c-b5c9-c396531ee298(en-us,office.13).jpg