Microsoft Lync Lync Address Book Normalization
Default the MS Lync cliënt uses the Telephone numbers from Active Directory. If this number isn’t build-up using the E.164 format it isn’t shown if you view the contact card in the Lync client. There are two resolutions for that problem:
1. Update AD using the E.164 format.
2. Use an corporate normalization rule
I will explain option 2 because option 1 isn’t an option in many companies.
Configuring Address Book Normalization
By default normalization is already enabled in Lync Server which can be verified by the viewing the Lync Server’s current Address Book configuration.
- From the Lync Server Management Shell execute the cmdlet Get-CsAddressBookConfiguration and note that the UseNormalizationRules value should already be set to True.
But this setting in and of itself does nothing yet as the normalization file needs to be configured first. Just as with OCS the Address Book does not leverage any Enterprise Voice normalization patterns which may have been created to support EV calling. Note that if the value is set to ‘False’ (Set-CsAddressBook –UseNormalizationRules $false) then even numbers already entered in +E.164 format will not appear in the Lync client.
- Locate the Lync Server’s shared directory which was configured during the initial server deployment. The file server FQDN and share name can be identified in the Topology Builder under File Stores.
- Browse to the share directory on the server and locate the ABFiles subdirectory.
\\SERVERNAME\Share\1-WebServices-1\ABFiles
- Create a new text file named Company_Phone_Number_Normalization_Rules.txt in the ABFiles directory. This normalization rules file must be stored in this location and not down a few directories where the actual address book files are stored as it was in OCS.
- Edit the file with Notepad and enter the following example normalization and translation patterns. This rule will apply to the users configured with phone numbers in this standard 10-digit format: (312) 555-7500. (The first three lines are commented out and are not required in the text file.)
##
## Normalize 10-digit phone number patterns from Active Directory into +E.164
##
(\d{10})
+1$1
## Normalize 10-digit phone number patterns from Active Directory into +E.164
##
(\d{10})
+1$1
Up until this point anyone familiar with Office Communications Server should recognize that everything is about the same, other than the required location of the normalization text file. An improvement in Lync Server’s address book normalization process is instantly noticeable when looking at the simplicity of the example pattern above. In the past long, complicated regular expressions (regex) were required to filter-out any non-digit information which could be potentially stored in the telephone field.
But now Lync Server automatically ignores non-telephony related digits in the strings and only looks at the continuous 0-9 numerical digits (and also recognizes the + symbol). So there is no longer a need to include regex code like [\s()\-\./]* in patterns to ignore spaces, parenthesis, dashes, etc.
- Execute Update-CsAddressBook to import the new settings configured in the text file and apply them to numbers stored in the address book files.
PS C:\> Update-CsAddressBook
- After 5 minutes have elapsed force an address book update on the Lync client
At this point the contacts previously not displaying phone number information should now be working.