It’s been a big week for Music On Hold. I’ve found a bug in the Office 2016 client that kills MOH if you mute, and another one again – this time related to the path your Office installed itself into.
The symptoms were simple enough: internally, or for external parties when the Sonus SBC’s own MOH feature was disabled, putting callers on hold resulted in them hearing silence.
I thought this was going to be a simple client policy fix, but nup:
get-csclientpolicy | ft identity,*music* -auto
The above tells me that client-side MOH is enabled for everyone across the board, and without a value for “MusicOnHoldAudioFile” the client will use its inbuilt default, which it revealed thus:
C:\Program Files\Microsoft Office\root\Office16\Media\DefaultHold.wma
HOWEVER, here’s where the client’s installed:
C:\Program Files\Microsoft Office\Office16\Media\DefaultHold.wma
And there is no /root/ branch in the folder tree!
I don’t know how it got this way, but as I’ve only encountered one client showing this problem I just created the required folders and copied DefaultHold.wma across. I bounced the client for good measure and all came good.
Error Reporting?
I was curious to see if the error was logged anywhere so you could perhaps easily determine how widely/if you were affected. I couldn’t find any mention of it in the Applications Event Log – it looks like it’s handled internally and the client moves on.
Here it is as captured in Lync-UccApi-0.UccApilog:
10/14/2017|08:04:34.788 3A00:2EC8 INFO :: Source file path C:\Program Files\Microsoft Office\root\Office16\Media\DefaultHold.wma 10/14/2017|08:04:34.789 3A00:2EC8 INFO :: Function: CLocalMediaPlatformAdapter::CreateMediaPlayerDevice 10/14/2017|08:04:34.789 3A00:2EC8 ERROR :: HRESULT failed: 80070003 = hr . m_spMediaPlatform->CreateMediaPlayerDevice 10/14/2017|08:04:34.789 3A00:2EC8 INFO :: Function: CUccAudioVideoMediaChannel2::CreateMediaPlayerDevice 10/14/2017|08:04:34.789 3A00:2EC8 ERROR :: HRESULT failed: 80070003 = hr . failed to create media player device D:
… and here’s what the on-hold event looks like when it succeeds:
10/14/2017|08:11:06.565 D20:C4C INFO :: Source file path C:\Program Files\Microsoft Office\root\Office16\Media\DefaultHold.wma 10/14/2017|08:11:06.902 D20:C4C INFO :: GetMediaPlatformDevice returned 0
Affected Releases
I can’t say for sure. The client version I found this on is the Office 2016 MSI, and so far only the one instance.
Remediation
You have a couple of ways of fixing this, depending on how widely you’re affected:
- The lazy way out (if you’re using a Sonus 1k, 2k or SweLite SBC) is to enable MOH on the SfB Sig Gp. Yes, that only affects PSTN calls, but they’re the most critical ones – and I did say this was the lazy way out! I’ve documented that process here if you’re not familiar with it.
- Hard-code into the CsClientPolicy the correct path: C:\Program Files\Microsoft Office\Office16\Media\DefaultHold.wma. For bonus points this means the users won’t be able to change it (as doing so greys-out the Browse button).
- Create the required folder structure on the user’s PC and copy the music file across:
(Thank you TreeSize Free for that image).
Revision History
14th October 2017: This is the initial post.
– G.