Skip to main content
 
Go Search
Home
Categories
Bloggers
Enabling Custom Phone Number Normalization with the Address Book Service
By: Jeff Schertz | Posted: November 17, 2007 at 12:11 AM
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:
 
Generic_Phone_Number_Normalization_Rules.txt
Sample_Company_Phone_Number_Normalization_Rules.txt
 
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.

 

Update:

I recently discovered where the normalization information is kept on the client.  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

 

Update 2:

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.



  Comments   Add Comment   Share It  
  Your Name:
  Your Email: **will not be displayed
  Comment Title:
* Comments:
  If you cannot read the code, please
click here to get a new one. You won't
lose your comments by doing so.
* Security Code:
   
  
  
* Your Name:
* Your Email: **will not be displayed
* Recipient's Email:
* Subject:
  If you cannot read the code, please
click here to get a new one. You won't
lose your comments by doing so.
* Security Code:
  
  
  
how to read f-xxxx.lsabs files?
By: vicky | Posted: March 20, 2009 at 12:55 AM
Hi, Question is out of context of your post, but do you have any idea about reading f-xxxx.lsabs files?
Do not run abserver -regenur
By: Thomas Binder | Posted: March 3, 2009 at 3:04 AM
While in a lab it does not matter, in large AD environments, abserver -regenur will put a lot of load on the DC. You should really only run it, if you are required to do (e.g. changing the settings, which fields should be included in the address book) and then in off business hours.
By: Tom Hood | Posted: February 22, 2009 at 4:54 PM
I have tried the steps you listed above but I am still not able to get the Communicator clients to syncronize with the address book. Any other thought as to what else might be wrong?
By: Jeff Schertz | Posted: October 13, 2008 at 3:53 PM
Those topics are covered in a more recent blog entry: http://blogs.pointbridge.com/Blogs/schertz_jeff/Pages/Post.aspx?_ID=26
Location Profiles
By: Steve | Posted: October 13, 2008 at 3:44 PM
You will need to setup your normalization rules within the location profiles in the Forest Voice Properties using the GUI or the Resource Kit Enterprise Voice Route Helper tool in order to get MOC to correctly identify inbound calls. As stated earlier by Tom the custom ABS rules are only used for RCC and Enterprise Voice will ignore them. The custom rules are also use to create the GalContacts.db by extracting and Normalizing the phone #'s stored in AD. For incoming calls you will need to setup the normalization rules for each location profile you have.
Re: Tracing the normalization process
By: Jeff Schertz | Posted: September 11, 2008 at 8:39 PM
Unfortunately incoming calls are not processed by the OC client when using click-to-dial on an entry in the Recent Calls list.
Tracing the normalization pocess
By: Ricardo | Posted: July 18, 2008 at 11:00 AM
Hi, excellent post indeed. I am currently having a bigbigbigbig issue, because these rules dont seem to apply during an incoming call (no matter what bogus rules I put, I cannot see the effect on an incoming call pop-up). Is there any way to check that the process is happening (server/client side? I assume client side, because it downloads the rules into registry) Thanks in advance!
By: Tom Pacyk | Posted: March 25, 2008 at 5:31 PM
One interesting nugget I just read about - apparently the custom ABS entries that are downloaded to the MOC client are ONLY used in RCC scenarios. Enterprise Voice will ignore those rules.
Normalising numbers
By: Geoff Rose | Posted: March 13, 2008 at 12:21 AM
Hi Jeff, Could you please expand on step 2 im a bit unclear on how to format that file. Also do you know if there is a way to normalise phone numbers that start with a ( e.g. mine start with (02) which I then need to normalise to +612 Thanks, Geoff.
Information
By: Joe Church | Posted: February 27, 2008 at 12:31 AM
Thanks for posting this, I was able to use the information here to assist in fixing my problem of communicator not being able to synchronize the addressbook. It would be useful if someone came up with a common list of scenarios and the regex to accomplish them. It took me forever to hash out a custom regex to get my solution to work. But this post was very helpful in getting me there.
Thanks for this excellent procedure
Posted: December 11, 2007 at 5:51 AM
Thanks for this excellent procedure
 

 About Jeff Schertz

Senior ConsultantJeff Schertz is a senior consultant for PointBridge, focused on unified communications. He has over 10 years of experience in the IT industry ranging from family-owned businesses to global product dev... [more]

View Jeff Schertz's profile on LinkedIn
Microsoft Certified IT Professional

 Tag Cloud

 External Links

 ‭(Hidden)‬ Admin Links