Welcome to TechNet Blogs Sign in | Join | Help

Jochen Kunert

OCS and Voice; It's a PBX, isn't it?
OCS 2007 German dialplan example

This blog article presents and explains an OCS 2007 Dialplan that has been created for the location Germany (Country code +49) Cologne (Area code 221). In this example the company has a local subscriber number 000 and a 4 digit extension range.

We assume that there is only one OCS 2007 Mediation Server with the FQDN (Fully Qualified Domain Name) ms.com and that on outbound calls the next hop element after Mediation Server (e.g. a SIP Media Gateway or a SIP IP PBX) takes care on normalizing called party numbers from +<E.164> format back to a proper format that again the next hop after that (e.g. PSTN) would expect. The only exception is emergency numbers that are sent as is prefixed with a + sign, so that the next hop after OCS 2007 Mediation Server just has to remove the + sign.

It makes sense to start with the creation of a Location Profile that allows users to maintain their current dialing behavior as they are used to from their previous voice solution. A good starting point is to collect from every site the following most common dialing behaviors:

 

·         Common emergency call dialing pattern

·         Common internal dialing pattern (e.g. 4 digit dialing)

·         Common local dialing (what’s the external line prefix?)

·         Common national dialing pattern

·         Common international dialing pattern

 

These common dialing patterns should at least be incorporated into a Location Profile. As a result of the regular expressions of a Location Profile is (except for a few exceptions as mentioned above) an +<E.164> normalized number string.

External line prefix: Most PBX systems use an external line prefix to distinguish internal calls from external PSTN calls (Example: How else should be distinguished between the internal extension 112 and the external emergency phone number?). This pattern worked for the last 30 years in the PBX world, it’s there for a good reason and users are used to it. So, do not change this behavior during the implementation of an OCS 2007 dialplan. There are high chances that numbering conflicts occur in the long run.

Coming back to the example. People of the fictitious company in Cologne/Germany are used to dial:

·         0110, 0112           Police, Fire fighters

·         0116116                Emergency number for data accidents

·         1234                       Intracompany call

·         01234..                  Local call, same area code

·         001234…               National call

·         0001234…            International call

This dialing pattern leads into the following location profile:

 

Dialed Number example

Pattern

Translation

Normalized Number

Sent from MS to next hop

Next hop to PSTN

0110

^0(11[02])$

+$1

+110

110

0116116

^0(116116)$

+$1

+116116

116116

1234

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

+49221000

+492210001234

-

012345

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

+49221$1

+4922112345

12345

0012345678

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

+49$1

+4912345678

012345678

00012345678

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

+12345678

+12345678

0012345678

 

Here are some remarks to the rules above:

Rule 1,2: Emergency numbers will not be prefixed with a country or area code. Just with a ‘+’ sign. The next hop needs to remove the + sign and send it out to the PSTN.

Rule 3: The next hop behind OCS 2007 Mediation Server needs to remove the prefix +49221000.

Rule 4: Local, same area code calls will be sent to the PSTN w/o leading 0. This way directory services like 11831, 11833 … work as well with the same rule.

Rule 5: To dial a national call within Germany, the area code needs to be prefixed with a 0 and sent to the PSTN such way. The replacement of +49 with 0 before sending out to the PSTN is task of the next hop.

Rule 6: International calls need to be prefixed with 00 before sent out to the PSTN. So the next hop after Mediation Server needs to replace ‘+’ with 00.

 

At this point, here are a couple of important notes:

Complexity around Office Communicator Phone Edition on-hook quick dialing experience has been excluded in this example on purpose.

Users will be assigned to Location Profiles in OCS 2007 based on Windows Group policies. In current Windows environments, users will be assigned to Group Policies not with respect to their physical location. So please be careful which Location Profile to add to which users.

Keep in mind as I have described in a previous blog about OCS 2007 dialplan fundamentals, that normalization rules can be bypassed by entering a +<E.164> number. So do not try to implement dialing authorizations in the normalization rules as they can be easily bypassed by the user when using +<E.164> format phone numbers.

 

After the creation of a Location Profile for our site in Cologne/Germany, Voice Policies (dialing authorizations) need to be created for the different type of users. In this example we’ll have 6 different classes of dialing authorizations (this is what the user is allowed to dial). I have picked self explaining names. The leading digit just shows a hierarchy of the different dialing authorization levels:

VoIP Policy

User assigned to this VoIP policy is allowed to dial…

1EmergencyGER+InternalCGN

Emergency Numbers

Internal Numbers on CGN company site

2EmergencyGER+InternalCGN
+NationalGER-MobileGER-
PremiumGER

Emergency Numbers

Internal Numbers on CGN company site

National Numbers

No National Mobile Numbers

No National Premium Numbers

3EmergencyGER+InternalCGN
+NationalGER+MobileGER-PremiumGER

Emergency Numbers

Internal Numbers on CGN company site

National Numbers

National Mobile Numbers

No National Premium Numbers

4EmergencyGER+InternalCGN
+NationalGER+MobileGER+PremiumGER

Emergency Numbers

Internal Numbers on CGN company site

National Numbers

National Mobile Numbers

National Premium Numbers

5EmergencyGER+InternalCGN
+NationalGER+MobileGER-
PremiumGER+InternationalGER

Emergency Numbers

Internal Numbers on CGN company site

National Numbers

National Mobile Numbers

No National Premium Numbers

International Numbers

6EmergencyGER+InternalCGN
+NationalGER+MobileGER
+PremiumGER+InternationalGER

Emergency Numbers

Internal Numbers on CGN company site

National Numbers

National Mobile Numbers

National Premium Numbers

International Numbers

 

With the notion of Phone Usages it is possible to select certain routes for a specific call to be used. The user is allowed to dial a certain number if Outbound Routing can match the phone number to a route pattern and the user is equipped with the particular phone usage that’s needed to use this route. The available Phone Usages are:

 

·         EmergencyGER

·         InternalCGN

·         NationalGER-MobileGER-PremiumGER

·         MobileGER

·         PremiumGER

·         InternationalGER

 

A user that has been assigned to VoIP policy 3EmergencyGER+InternalCGN+NationalGER+MobileGER-PremiumGER has been “tagged” with the following attributes (phone usages):

·         EmergencyGER

·         InternalCGN

·         NationalGER- MobileGER-PremiumGER

·         MobileGER

The order of the phone usages is highly important as well as that there are no overlapping routes (A route that allows something that a different route tried to forbid). Here are the routes for this example:

 

Description

Pattern

Phone Usage

Mediation Server

EmergencyGER

^((\+110)|(\+112)|(\+116116))

EmergencyGER

Ms.com

InternalCGN

^\+49221000

InternalCGN

Ms.com

NationalGER-MobileGER-PremiumGER

^\+49(?!(15|16|17|900))

NationalGER-MobileGER-PremiumGER

Ms.com

MobileGER

^((\+4915)|(\+4916)|(\+4917))

MobileGER

Ms.com

PremiumGER

^\+49900

PremiumGER

Ms.com

InternationalGER

^(?!(\+49))

InternationalGER

Ms.com

 

If a user of the VoIP Policy 3EmergencyGER+InternalCGN+NationalGER+MobileGER-PremiumGER and the Phone Usage attributes “EmergencyGER”, “InternalCGN”, “NationalGER- MobileGER-PremiumGER” and “MobileGER” dials a German mobile phone number like +491710000000, the following things happen:

First Outbound Routing will check all routes for the first Phone Usage attribute “EmergencyGER”. There is only one route with this Phone Usage attribute. But the number +491710000000 does not match the pattern ^((\+110)|(\+112)|(\+116116)). Therefore the user is not allowed to dial this number based on the first Phone Usage attribute.

As a next step, Outbound Routing will try to match the dialed phone number to a route that’s tagged with the second Phone Usage attribute “InternalCGN”. Same result. Dialed number doesn’t match the pattern for the route InternalCGN and therefore the user is not allowed to dial this number based on the Phone Usage attribute “InternalCGN”.

Let’s check the next Phone Usage attribute “NationalGER- MobileGER-PremiumGER”. Here is important when you look at the pattern of this route, that German Mobile Numbers and German Premium Numbers have been excluded. ^\+49(?!(15|16|17|900)) (! means: Not). So a user who would just have this Phone Usage attribute would not be able to dial this number.

In order to dial this number, the user needs to have the Phone Usage attribute “MobileGER” as this is the only Phone Usage attribute that’s assigned to a route that contains German Mobile Phone numbers ^((\+4915)|(\+4916)|(\+4917)). Now the dialed number matches the route pattern and the Phone Usage attribute of the user matches as well and the user is allowed to dial this number.

OCS will pass this call on to OCS 2007 Mediation Server. OCS 2007 Mediation Server will pass this call on to the next hop that needs to modify the called party number back to 01710000000 before sending out to the PSTN.

An Enterprise Voice Route Helper file with this example can be downloaded here:

 

Posted: Wednesday, August 27, 2008 4:05 PM by jkunert

Comments

No Comments

Anonymous comments are disabled
Page view tracker