The current Office Communications Server 2007 documentation doesn’t go into very much detail regarding the configuration and behavior of Phone Normalization in the Address Book Service.  I won’t be going into any details regarding customization of normalization rules and how they operate, as the purpose of this blog entry is just to understand how to enable this feature and how to force OCS to load the changes.

I have found some details in the LCS 2005 Address Book Service Planning and Deployment Guide, but there are some changes in OCS 2007.  Mainly, LCS uses a pair of configuration files which are installed by default:




But after installing OCS 2007 you will find that only the Sample file exists, and not the Generic file.  I have yet to confirm this, but my suspicion is that these rules are no longer stored in a read-only text file but have been integrated directly into the service.

Executing the abserver -dumpRules command will display the built-in rules for verification.  (The executable abserver.exe is located in the \Server\Core subdirectory of the OCS installation folder.)

In order to create and activate any custom rules you’ll need to create a new file in the proper location, rebuild the address book file, and manually force a Communicator client to download the updated file from the front-end server.  (The default OCS configuration resynchronizes the address book at 1:30AM local time each day.) 

Step 1

Find the current location of the Address Book Server files by clicking on the Standard Edition Server or Enterprise Pool and expanding the Address Book Server Settings in the Office Communications Server 2007 management console.

The default location on the Standard Edition Server in my lab is:




But an Enterprise Edition deployment creates shared folders for the Address Book and Meeting information, so a UNC path may be shown instead:




Step 2

Create a new text file with the name "Company_Phone_Number_Normalization_Rules.txt" and configure the desired normalization rules.



Step 3

Execute the command abserver -regenUR to trigger the User Replicator regeneration process.


C:\Program Files\Microsoft Office Communications Server 2007\Server\Core>abserver -regenUR

Triggering UR regenerate – successful.

You might have to wait up to 5 minutes for it to actually complete.

Monitor the Office Communications Server event log for events in category 1009 and source OCS User Replicator: 

Event Type:     Information
Event Source:   OCS User Replicator
Event Category: 1009


Event ID:       30027
Description:    User Replicator has started initial synchronization…


Event ID:       30024
Description:    User Replicator has completed initial synchronization…


Event ID:       30028
Description:    Address book (AB) entries are populated successfully…


Step 4

After seeing Event ID 30028 confirming completion, execute the command abserver -syncNow to trigger a new Address Book Server synchronization pass.


C:\Program Files\Microsoft Office Communications Server 2007\Server\Core>abserver -syncNow

Triggering Address Book Server synchronization pass – successful.

You might have to wait up to 5 minutes for it to actually complete.

Monitor the Office Communications Server event log for events in category 1008 and source OCS Address Book Server: 

Event Type:     Information

Event Source:   OCS Address Book Server

Event Category: 1008


Event ID:       21005

Description:    Synchronization pass started.


Event ID:       21034

Description:    One or more phone numbers failed to normalize.


Event ID:       21007

Description:    Synchronization pass completed successfully.


Event ID:       21056

Description:    Synchronization Pass Summary.


Event ID:       21058

Description:    Synchronization Pass Summary for Device Address Book files


Event ID:       21004

Description:    Next synchronization pass will start at:  11/17/2007 1:30 AM


Once synchronization has finished you can test any custom normalization rules using the command abserver -testPhoneNorm.

Step 5

On a workstation running Office Communicator 2.0 make sure to sign-out and exit the client.


  • Remove the local copy of the Address Book by deleting the file %USERPROFILE%\Local Settings\Application Data\Microsoft\Communicator\GalContacts.db.


  • Restart the OC client and sign-in.  The updated address book should now be enabled for the client.


I recently discovered where the normalization information is kept on the client when using RCC mode.  It’s not stored in the GalContacts.db, but in the registry.  So if you are updating changes for Communicator and not necessarily making changes to the Address Book, then the last step above may not be required.  Simply restarting the Communicator client should read-in the updated value:

Key:     HKEY_CURRENT_USER\Software\Microsoft\Communicator\

Value:   PhoneNumberNormalizationRules

Type:    REG_SZ


After further testing I’ve discovered that the initial abserver -regenUR command is not required when trying to update changes to the normalization file.  Also, the Communicator client is programmed to automatically update the galcontacts.db file each time the application is launched, so simply exiting and restarting without manually deleting the file seems to also pick up changes in the address book.

By Jeff Schertz

Site Administrator

One thought on “Enabling Custom Phone Number Normalization with the Address Book Service”
  1. Hi Jeff,

    We have a MS Lync 2013 connected to NEC SV7000 PBX through RCC.
    Recently the internal numbering plan has been updated to 6 digits.

    Now the PABX calling feature does not work.

    What should I do?

Leave a Reply

Your email address will not be published. Required fields are marked *