Moving Custom OCS Dial-in Access Number Contacts to Lync

This was interesting case I thought I'd share - in OCS 2007 R2 when you created a dial-in access number you were presented with this screen:

If you accepted the default configuration and SIP URI (a random GUID), the SIP enabled contact representing this dial-in access number would be stored within Active Directory in the Configuration context. Specifically, it would be placed in CN=Application Contacts,CN=RTC Service,CN=Services,CN=Configuration,DC=ptown,DC=local.

Or, if you pressed the Advanced button you could specify an existing contact object to associate with the dial-in number. This allowed you to create contacts in advance which would represent these numbers. This process worked just fine in OCS and really had no negative impact.

However, when you go to move these custom contact objects to Lync as part of your migration process you’ll find Lync doesn’t really “see” these objects. If you run Get-CsApplicationEndpoint you should notice that Lync will only return objects within the Application Contacts container mentioned previously. Any SIP-enabled contact objects outside of this location are not returned.

As an added bonus you can actually find (and move!) these objects by specifying their entire DN when running Get-CsApplicationEndpoint. But after successfully moving these endpoints you’ll notice they still do not appear as a dial-in number in Lync. So even though the contact is now homed to the Lync pool, the server still only considers objects in the Application Contacts container a valid dial-in access contact and these numbers don't go out on meeting invites.

In order to get these numbers fully moved to Lync you’ll need to do the following:

  1. Leave the contact object homed to the OCS pool
  2. Disable the contact for OCS
  3. Recreate the dial-in access number within Lync

Also, be sure to pay attention to the migration docs and only perform these steps after all users are moved to the Lync pool. If you disable the OCS contact before that point any new meeting invitations created by a user on the OCS pool won’t have the deleted dial-in number available.