While testing a new conference bridge that was added to an existing Lync Server 2013 deployment, the Lync client would report the bridge number “is in another call”.
Sifting through server side logs the call was bouncing around like a hot potato between the Front End and Edge servers. The Front End would try to look up the object and return a “SIP 404 Not Found” (ms-diagnostics: 1003;reason=”User does not exist”;destination=”RtcApplicationemail@example.com) and pass the request on to the Edge. The Edge would pass back the same SIP 404 error.
On to some trouble shooting steps… Removing and recreating the bridge, restarting the Conferencing Attendant and Conferencing Announcing Services and finally a Front End pool restart. No luck, back to the server logs. This time instead of searching a specific call, I broadened the filter to “RtcApplication”. Finding that all Application Contacts (RGS Presence Watcher, Call Park Service, CAAPrivateContactObject, Conferencing Announcement Service …) in the environment were giving 404 Not Found/User does not exist errors.
Digging into Active Directory(AD) (I like to use Active Directory Explorer from Sysinternals: https://technet.microsoft.com/en-us/sysinternals/bb963907), I could see that all the corresponding Application Contacts exist from the server log. The msRTCSIP-ApplicationContacts container class was originally added in Office Communications Server 2007 R2 and a good TechNet article about the contact objects can be found at https://technet.microsoft.com/en-us/library/dd572377(v=office.13).aspx. Haven’t found an updated version for Lync or Skype for Business.
Now is probably a good time to inform you that in this environment the Lync Servers were installed into a Child domain with the User objects and the Root domain was empty. I wouldn’t say it was a Null root as the Application Contacts were in the root domain. So after spinning cycles verifying Schema, Forest and domain(s) prep, permissions and passing AD queries between the domains every thing seemed correct with no errors.
Next to check out the User Replicator, as this periodically retrieves current user account info from Active Directory and synchronizes the information with the Lync Server’s user data database.
At some point the client scoped Lync to be restricted to the Child domain, not realizing that the Application Contacts were outside this scope. This wasn’t a problem in an Instant Message and Presence world, but sure was after adding conferencing and enterprise voice! Luckily three commands and the conference bridge was functional.
Set-CsUserReplicatorConfiguration -Identity global -ADDomainNamingContextList $Null Update-csuserdatabase Update-csaddressbook