Fix: Lync Address book cannot load phone numbers from Active Directory

Check if Invalid_AD_Phone_Numbers.txt contains errors

You can find this file in your Lync Share:

1-WebServices-1\ABFiles0000000-0000-0000-0000-0000000000000000000-0000-0000-0000-000000000000

If Address book cannot add some contacts you may see the following error :

Unmatched number: User: ‘sip:lynctest@contoso.com’  AD Attribute: ‘telephoneNumber’  Number: ‘6567’

To fix this error, we need to create a normalization rule for numbers 6xxx, these rules are stored in a text file called Company_Phone_Number_Normalization_Rules.txt which is stored in the 1-WebServices-1\ABFiles\

NOTE: You should create Company_Phone_Number_Normalization_Rules.txt manually

Lync uses this file to convert phone numbers into E.164 format. In my example, ‘#’ = comments;  ^(6\d{3})$ and $1 = normalization rule for 6xxx phone numbers . So, add your normalization rules and save file.

Sample of Company_Phone_Number_Normalization_Rules.txt:lync_contacts_2

To verify your rules you must use abserver.exe utility

Set-Location 'C:\Program Files\Microsoft Lync Server 2013\Server\Core'
.\ABServer.exe -testphonenorm "3456"

lync_contacts

After successful verification you should update your address book:

Update-CsAddressBook -Force

Lync 2013 error : BackCompatSchema.ldf failed. The exit code is “8224”

During deploying Lync 2013 pilot pool for side-by-side migration from Lync 2010, I faced with strange problem on Step 1 (AD Preparation) in Wizard.schema error

I have had installed Lync 2010 in my infrastructure, so I have a “half-prepared” schema for Lync 2013 Server. To update your current schema Lync uses four ldf scripts , which you can find in your Lync installation disk (<drive letter>:\support\schema).

  • ExternalSchema.ldf is is used for interoperability with Microsoft Exchange Server
  • ServerSchema.ldf is the primary Lync Server 2013 schema file
  • BackCompatSchema.ldf is used for interoperability with any components from prior releases
  • VersionSchema.ldf is used for version information of the prepared schema

Wizard runs them in the following order :

  1. ExternalSchema.ldf
  2. ServerSchema.ldf
  3. BackCompatSchema.ldf
  4. VersionSchema.ldf

To resolve my problem I decided to run scripts manually on my DC
*don’t forget to change DC=  and type FQDN of your DC

ldifde.exe -i -v -k -j "C:\Users\rlevchenko\AppData\Local\Temp" -f "D:\Support\Schema\ExternalSchema.ldf" -c DC=X "DC=demo,DC=local" -s ad.demo.local
ldifde.exe -i -v -k -j "C:\Users\rlevchenko\AppData\Local\Temp" -f "D:\Support\Schema\ServerSchema.ldf" -c DC=X "DC=demo,DC=local" -s ad.demo.local
ldifde.exe -i -v -k -j "C:\Users\rlevchenko\AppData\Local\Temp" -f "D:\Support\Schema\BackCompatSchema.ldf" -c DC=X "DC=demo,DC=local" -s ad.demo.local
ldifde.exe -i -v -k -j "C:\Users\rlevchenko\AppData\Local\Temp" -f "D:\Support\Schema\VersionSchema.ldf" -c DC=X "DC=demo,DC=local" -s ad.demo.local