Let’s just assume that a Skype for Business Cloud Connector Edition (CCE) has been deployed successfully, the steps to configure an online hybrid Mediation Server ( Configure online hybrid Mediation Server Settings) was completed and at one time PSTN calls could be escalated to an Audio Conference. Fast forward a few months and users report PSTN call escalation fails every time.
Always view the ms-diagnostics details specific to the SIP response.
- This can be done by opening the .UccApilog file from the client’s Tracing folder ( https://support.office.com/en-us/article/Turn-on-error-logs-in-Skype-for-Business-4892fe33-ef40-48e2-9070-5308d2a57c7e) with a text editor or Snooper. Snooper is part of the Skype for Business Server 2015 Debugging Tools ( https://www.microsoft.com/en-us/download/details.aspx?id=47263).
- Alternatively, an Administrator could pull the same info using the Get-CsUserSession Cmdlet ( https://technet.microsoft.com/en-us/library/mt715516.aspx ) or even better by using my PowerShell GUI for the same Cmdlet ( http://realtimeuc.com/2016/10/get-csusersessiongui)
After reviewing the session details the dreaded “404 Not Found” error with the ms-diagnostics details “User Does not exist” appears. This shouldn’t be confused with the same error when just making a normal call via Microsoft Phone System: http://realtimeuc.com/2017/09/sfb-cce-404/.
First, make sure your CCE hasn’t drifted into the future and time is out of sync, Lee Ford has a nice write up on this scenario: https://www.lee-ford.co.uk/unable-to-transfer-or-conference-pstn-calls-with-cloud-connector-edition-cce/
Next, check the health of your Hybrid Mediation Server object. I use the following PowerShell One-Liner to dump a list of all my CCEs and check for any user objects created for use as the Hybrid Mediation Server:
Get-CsHybridPSTNSite | foreach {Get-CsOnlineUser -Filter "HostingProvider -like '*$($_.edgefqdn)*'" | Get-CsHybridMediationServer}
If you get no object, that means someone had deleted the user account.
In my case an Admin rolled out an auto Office 365 licensing script and even though the account had originally met the requirement: “Do not assign any Office 365 licenses (such as E5) to the account you create. Wait for Office 365 AD sync to complete”. Apparently that requirement is for perpetuity and if the account is licensed for Skype for Business Online the AccessProxyExternalFqdn changes from the Edge FQDN of the CCE to “sipfed.online.lync.com” breaking the Hybrid Mediation Server functionality. You do get a nice warning off the Get-CsHybridMediationServer cmdlet (“cannot be set as Hybrid Mediation Server”). Simple fix is to unlicense the account and run the original Set-CsHybridMediationServer.
Unfortunately, I found out that after 30 days the licensing deprovisioning process actually changes the Skype for Business Online user account object to be disabled, again breaking the Hybrid Mediation Server functionality (“not set as valid Hybrid Mediation Server”). Run the original Set-CsHybridMediationServer one more time and you’re back in business. Also a great time to hunt down the Admin that licensed the Hybrid Mediation Server object.