Microsoft Lync Server 2010: Access the Address Book with Ease

One of the real benefits of Microsoft Lync Server is the seamless manner in which you can access the updated address book from any device.

John Policelli

The promise of a fully functional unified communications solution is to seamlessly combine all modes of communication and operation. A user has to be able to find, store and use their contact information stored in their address book, regardless of how they have connected. Lync Server 2010 is no exception.

Lync Server 2010 includes several improvements to its address book functionality. Taken together, these improvements provide your users with all the required address book information. When you first install Lync Server 2010, it creates the Address Book Service (ABS), which provides your Lync clients with:

  • Global Address List: This is a derivative of Active Directory Domain Services (ADDS), and provides contacts and attributes of contacts.
  • Distribution List Expansion: ABS is able to expand distribution lists for groups and contact membership.
  • Phone Number Normalization: ABS normalizes phone numbers from local formats into the RFC 3966/ITU E.164 format.

Address Book for All

ABS and the Address Book Web Query (ABWQ) service all client types in Lync Server 2010. It’s important to note that although ABS and ABWQ perform similar functions, they do so in different ways.

ABS is responsible for contacting ADDS to collect and update information stored in the ABS database. ABS maintains the information collected from ADDS in either a full download of contact information, delta files or compact delta files. ABS maintains the information in three types of extracts. This ensures that a new client receives the full download, and then either delta files or compact delta files based on the client’s ongoing needs.

The manner in which contacts are stored in the ABS database files and the ABWQ allows for distribution list expansion. In terms of ABS database files, a contact is associated with groups and members of groups. Group information is made available to clients through updated ABS files. On the other hand, ABWQ directly queries ADDS to expand its distribution lists.

When dealing with telephony, phone number normalization—converting phone numbers into a usable format—is essential. Because ADDS doesn’t normalize phone numbers or mandate the format used, Lync Server 2010 has to perform the normalization.

ABS is responsible for normalizing phone numbers. ABS does so when it reads information from ADDS. Then it stores the phone numbers in the address book files in the normalized format.

Client Usage

ABS and ABWQ usage varies based on the client used and availability (see Figure 1).

Address Book Service Availability

Office Communicator

2007/2007 R2

Lync Server Communicator Phone Edition Lync Phone Edition Communicator Mobile or Lync Web App
ABWQ Available Will use the ABS file download Will use the ABS file download Will use ABS/Device file download Will use ABWQ Will use ABWQ
ABWQ Only Will disable contact search Will use ABWQ Will disable contact search Will use ABWQ Will use ABWQ
ABS Only Will use ABS file download Will use ABS file download Will use ABS/Device file download Will use ABS/Device file download Will disable contact search

Figure 1 Lync Server 2010 includes backward compatibility for Office Communications Server (OCS) clients.

In-band provisioning also determines whether ABS is available. You can define the in-band provisioning setting AbsUsage as one of three values:

  • WebSearchOnly
  • FileDownloadOnly
  • WebSearchAndFileDownload

For more details on in-band provisioning, please see my May 2011 article, “Microsoft Lync Server 2010: Provisioning Mechanisms.”

Working with ABS

When you use Lync Server 2010 Standard Edition, ABS runs on a Standard Edition server. When using Lync Enterprise Edition, ABS runs on a front-end server in the Enterprise Edition Pool. Lync manages a failed ABS in an Enterprise Edition Front-End Pool by bringing the service online on an alternate front-end server.

When you first install Lync, it defines default address book configuration settings at the Global level. You can modify these settings, however. You can also define address book configuration at the site level. This will apply to all Lync Servers within the given site. You can use Windows PowerShell cmdlets to work with ABS (see Figure 2).

Cmdlet Description
Get-CsAddressBookConfiguration Returns information about address book configuration settings.
New-CsAddressBookConfiguration Creates a new collection of address book configuration settings.
Remove-CsAddressBookConfiguration Removes the specified collection of address book configuration settings.
Set-CsAddressBookConfiguration Modifies an existing collection of address book configuration settings.
Update-CsAddressBook Forces the specified address book servers to synchronize their contents with the User database.
Test-CsAddressBookService Tests the ability of a user to access the server that hosts the Address Book Download Web service.
Test-CsAddressBookWebQuery Tests the ability of a user to search for, and return, information from the address book by using the Address Book Web Query service.

Figure 2 You can use these Windows PowerShell cmdlets with ABS.

Customize Attribute Visibility

Lync Server 2010 makes certain information is visible in contact cards by default. If the default information is insufficient, you can customize it with the ABS Configuration Tool from the Microsoft Lync Server 2010 Resource Kit Tools. The ABS Configuration Tool also lets you restore the default ABS settings.

To illustrate the use of the ABS Configuration Tool, let’s work through the steps to customize ABS such that the Title attribute isn’t stored on contact cards (see Figure 3).

Figure 3 A contact card before ABS customization.

  1. After installing the Microsoft Lync Server 2010 Resource Kit Tools, launch ABSConfig.exe (see Figure 4) from the C:\Program Files\Microsoft Lync Server 2010\Reskit directory.

    Figure 4 The ABS Configuration Tool UI.

  2. Click on the rows for the attributes you don’t want to have visible in the address book. Then hit Delete. In my example, I’ll delete the Title attribute.

  3. Click Apply Changes.

  4. You’ll see a message from the ABS Configuration Tool (see Figure 5).

    The successful change message from the ABS Configuration Tool.

    Figure 5 The successful change message from the ABS Configuration Tool.

You’ll need to wait until the Lync Client refreshes its address book to see the changes take effect (see Figure 6). However, you can also force the address book refresh.

The new contact card after ABS customization.

Figure 6 The new contact card after ABS customization.

After the address book has refreshed, you’ll notice that the Title is no longer visible for the same contact in the Lync client.

Forcing a Refresh

By default, the Lync client checks for changes to the Global Address List (GAL) between one and 60 minutes. If you need to force an address book refresh on the Lync Client, follow this process. You’ll have to add a registry on the computer where the Lync Client is installed, and delete local contact files.

The first thing to do is force the Lync Client to immediately download the address book. To do so, you’ll need a registry key on the computer upon which you want to force the address book refresh. You can use the following command to create the registry key (you’ll have to run this with local Administrator credentials):

Next, you’ll need to delete the previously downloaded local contact files. Follow these steps on the computer where you want to force the address book refresh:

Exit the Lync client if it’s running. Manually delete the GalContacts.db and GalContacts.db.idx files.

The location of these files is dependent on the client OS. For Windows XP, it will be at %userprofile%\Local Settings\Application Data\Microsoft\Communicator\sip_username@domain.

For Windows Vista and Windows 7, the location will be %userprofile%\AppData\Local\Microsoft\Communicator\sip_username@domain. In both cases, you’ll need to replace the sip_username@domain with the SIP address of the user in question. For example, to do so for a user that has a SIP address of user1@domain.local, you would replace the sip_username@domain with sip_user1@domain.local.

Restart the Lync client. At this point, it will have an up-to-date copy of the address book. It will match whatever ABS has. There’s an interval in which the Address Book server receives its information from ADDS. If you’ve recently changed information in ADDS, and can’t wait for the Address Book server to synchronize, you can use the Update-CsAddressBookcmdlet to force the refresh. Then you’ll have the latest, most-up-to-date address book possible.

John Policelli

John Policelli (MVP for Directory Services) is a solutions-focused IT consultant with Avanade Canada. He has designed and implemented dozens of complex directory service, collaboration, Web, networking and enterprise security solutions, and has spent years focused on identity and access management. He’s also an author, technical reviewer and SME for more than 75 training, certification and technical white paper projects