TechOnTip Weblog

Run book for Technocrats

Enable External GalSync Contacts for Lync Address Book

Posted by Brajesh Panda on July 28, 2014

I found this article from http://uccexperts.com/enabling-ad-mail-contacts-for-lync/ & used the same procedures for my MIIS based GalSync Solution. Perfectly works. I just did one correction from the original article & added couple of lines here and there. Solution credit goes to original author. Cheers!!

Situation

While working in an environment with multiple Exchange 2010 forests where Forefront Identity Manager was used to realize a common global address list (GAL). Each forest also has its own Lync 2010 implementation without Enterprise voice. Primarily both environment has two different Lync environment with two different SIP Domain.

By default the Lync address book is automatically populated with all objects that have one of the following attributes filled in:

msRTCSIP-PrimaryUserAddress

telephoneNumber

homePhone

mobile

In case msRTCSIP-PrimaryUserAddress attribute is missing, Lync will not able to show presence info for the contact & it may just show a phone icon instead of a person icon/picture.

By default the FIM GalSync synchronizes all those attributes, except the msRTCSIP-PrimaryUserAddress. This caused contacts in the remote forest to appear in the address book with a telephone icon:


This situation caused confusion for our users because they expect the Lync client to work for Instant Messaging with Lync users in the remote forests. When they try to start an IM session with a remote forest user Outlook starts and will created a new e-mail message.

Note: If you see phone icon for those users, make sure to test Federation using their SIP Address directly rather than, default AD Objects. You can add a Lync object to Outlook address book & stamp SIP Address manually & try to test federation.

You can also try out exporting & manually adding/updating this attribute. That should work too. But that will be manual process for future updates too. Using below procedure you can configure GalSync Management Agents to replicate this Lync Attribute too.

Solution

The solution is to include the AD attribute “msRTCSIP-PrimaryUserAddress” in the FIM address list synchronization.

Lab Setup

The overview below depicts my lab setup:


The lab is running Exchange 2010, Lync 2010 and FIM 2010 in a Windows 2008 R2 Active Directory. My environment is MIIS GALSync.

Scope

The scope of this procedure is to add the “msRTCSIP-PrimaryUserAddress” in the local forest to the contact in the remote forest by using the built-in Galsync management agents of FIM 2010. This procedure does not cover the implementation of the Galsync itself.

Presence and instant messaging to the remote forest will only be available when you have Lync Edge servers and federation in place. This procedure focuses on changing the AD attributes so that Lync recognizes the contact as a lync-enabled contact.

PROCEDURE

Step 1: Extend the metaverse schema

  1. Start the Synchronization Service Manager and click Metaverse Designer.
  2. Select person in the Object types pane
  3. Click Add Attribute in the Actions pane

  4. Click New Attribute in the “Add Attribute to object type” windows

  5. Enter the following information in the “New Attribute” windows:

Attribute name

msRTCSIP-PrimaryUserAddress

Attribute type

String (indexable)

Mapping Type

Direct

Multi-valued

Clear check box

Indexed

Clear check box


  1. Click OK
  2. Click OK

Step 2: Configure Management Agent of corporate.nl

  • Start the FIM Synchronization Service Manager Console and select “Management Agents
  • Right click the Management Agent you want to modify and select Properties.
  • Go to the “Select Attributes“section
  • Check the Show All box and select the attribute “msRTCSIP-PrimaryUserAddress“, click OK


  • Return to the properties of the Management Agent and select the section “Configure Attribute Flow
  • Configure this section according to the following table:

Data source object type

user

Metaverse object type

person

Mapping Type

Direct

Flow Direction

Export (allow nulls)

Data source attribute

msRTCSIP-PrimaryUserAddress

Metaverse attribute

msRTCSIP-PrimaryUserAddress


  • Click New
  • Verify this modification by collapsing the following header:

  • Check if the following rule is added:

Step 3: Import modification to the metaverse

  • Right click the management agent you just modified and select Properties
  • Select Run  and do a Full Import and Full Synchronization

Step 4: Verify attribute import

  • Start the FIM Synchronization Service Manager Console and select “Metaverse Search
  • Click “Add clause
  • Enter the following clause:

  • Click “Search
  • In the “Search Results” pane, right click the user with displayname corporate01 and select Properties
  • Confirm that the attribute “msRTCSIP-PrimaryUserAddress” contains a value

  • Click Close

Step 5: Configure Management Agent of company.nl

  • Start the FIM Synchronization Service Manager Console and select “Management Agents
  • Right click the Management Agent you want to modify and select Properties.
  • Go to the “Select Attributes“section
  • Check the Show All box and select the attribute “msRTCSIP-PrimaryUserAddress”, click OK

  • Return to the properties of the Management Agent and select the section “Configure Attribute Flow
  • Configure this section according to the following table:
Data source object type contact
Metaverse object type person
Mapping Type Direct
Flow Direction Export (allow nulls)
Data source attribute msRTCSIP-PrimaryUserAddress
Metaverse attribute msRTCSIP-PrimaryUserAddress


  • Click New
  • Verify this modification by collapsing the following header:

  • Check if the following rule is added:

Step 6: Export modification to the remote forest

  • Right click the management agent you just modified and select Properties
  • Select Run  and do an Full Import and Full Synchronization
  • Right click the management agent you just modified and select Properties
  • Select Run  and do an Export

Step 7: Verify attributes in remote forest

  • Start Active Directory Users And Computers and enable the Advanced features
  • Go to the OU where the FIM Galsync creates the contacts
  • Double click the contact “corporate01” and go the the Attribute Editor

  • Confirm that the attribute “msRTCSIP-PrimaryUserAddress” contains a value.

What does it look like in the Lync client ?

If I log in as  user company01 and we can see the following result in the Lync client:

In the screenshot above the users in the remote forest have a status of “Presence Unknown”. This is because I did not have Edge servers implemented in my test environment.

If you have implemented Lync Edge servers and you have your Lync federations between both organizations in place, the presence will be shown for the contacts as if they were users in the local Lync organization.

17 Responses to “Enable External GalSync Contacts for Lync Address Book”

  1. Scott Francis said

    Fantastic – Thank you for sharing, Sir Panda!

  2. Hi This is good post, any idea how presence works without adding into contact card or double clicking the contact from Lync search?( though federation implemented), Does this presence shows in outlook and share-point too? Appreciate your response.

    Regards,
    SR

  3. Justin said

    Hi Brajesh,

    Thanks for your article , did you get chnage to test the presence in the federated environemnt ?

    Regards,
    Justin

  4. […] Panda wrote a fantastic walkthrough for modifying GALSync to include the msRTCSIP-PrimaryUserAddress attribute. However, it does not […]

  5. deepak said

    I am struggling with the similat sort of challenge, we have lync server hosted on both data center with 2 seperate resource forests.

    We synchronized Unified GAL and now it is possible to search for contacts but we have a problem with presence information. There is Presence unknown for all contacts from federated forests.

    Is this can be achieved through same settings ? or some sort of tweak is needed by using Lync or UCMA SDK development?

  6. Mike Arkh. said

    Presence can be showing only for users from contact list!
    Not for searching by name…

  7. Excellent post! We will be linking to this great content on our website.
    Keep up the great writing.

  8. Rikard Strand said

    Do you know if it’s possible to do something similar in a Office 365 context ?
    I.e sync MAILBOXES from Company A to MAILCONTACT in Company B and also add in the SIP address. I cannot find any exposure of the attribute in Office 365.

    • If you have Hybrid environment, you can use FIM. But if you want to do cheap way, probably some powershell scripting can do this too.

      • Rikard Strand said

        Hello,

        Thanks for the quick response. I have done some initial testing with powershell scripting between tenants and it seems like that if I add the SIP address as a email alias on the contact object it correctly handles in Office 365 as a IM address when using Lync/Skype4Business.

        Regards,

        Rikard

      • great.

      • Mike said

        Hey Rikard – did you run into any issues with this and using Azure B2B functionality for the remote tenant user aswell?

    • @Mike – I did not use Azure B2B but instead did a custom sync;
      1) Connect to A
      a) Get all mailboxes > file.A

      2) Connect to B
      a) Get all mailboxes > file.B
      b) Read file.A > create contacts in B + remove orphan objectes (i.e. deleted users)

      3) Connect to A
      a) Read file.B > create contacts in A + remove oprhan objects

      I have not had any issues. Have a lot of error handling in script so I do not “wipe” all contacts if file.A/B is empty and some “smartness” if deletions are more than 5% of user count, etc.

  9. Bent Johansen said

    Hi! In step #2 you the table says “Export – Allow Nulls”, but the picture states “Import”. What is correct?

    Regards, Bent J.

Leave a reply to deepak Cancel reply