Today we have a very important how-to. A critical service is discussed. I know you’ve all been waiting to learn…

…how to set your “on hold” music.

See? Told you it was important.

In all seriousness, “on hold” music isn’t a critical service to Lync/Skype for Business. But Music On Hold is useful for a good customer experience. Which is, in fact, where the idea came from.

What Brought This On? The Customer Has Needs!

One of our newer customers made some changes to their Lync Server 2013 system. Among other changes, they added a new phone number for their Sales department. Naturally, they wanted this number to have hold music to keep callers on the line.

They were smart and looked into what was needed for hold music; when they called, they asked about Music On Hold. But they weren’t sure if Music On Hold (or “MOH”) was enabled for the new line or not. So they asked us.

Good thing, too…it wasn’t. Call Park wasn’t active.

Music On Hold in Lync/Skype4B: The Background

Still on hold...
Still on hold…

Music On Hold/MOH is part of the Call Park function. It’s a longstanding component of Lync, around since Lync 2010, happily doing its job in the background.

(Quick Overview: Call Park lets Enterprise Voice users put a call on hold [“park it”], and either retrieve it from another phone or forward it to another user. All the while, Music On Hold plays, getting a song stuck in the caller’s head for the rest of the day.)

You’ll find details on Call Park in Skype for Business here: Plan for Call Park in Skype for Business 2015 – Skype for Business TechNet

Call Park comes with Enterprise Voice, and should be activated when Enterprise Voice is set up. However, the Music On Hold may not be pre-set. If not, you’ll need to enable it.

There are 2 ways to enable Music On Hold. One at the client-level, one at the policy level.

  1. In the Lync/Skype client, click Options. Under “Ringtones and Sounds” you should see an option to “Play music on hold”. If you’re able to check the box, do so and click the Browse button to select a music file. Click OK.
  2. If “Play music on hold” is grayed out, the Lync/Skype4B administrator has designated this to occur through a Client Policy.

I prefer Method 2 anyway. It works for all users (and can be adapted for Response Group members). While I do prefer Management Shell for admin tasks, the fastest way to enable & set Music On Hold is through PowerShell.

How to Set Music On Hold

We have three PowerShell cmdlets for you today. These three and a music file are all you need.

Set-CSClientPolicy Global -EnableClientMusicOnHold:$TRUE

–This enables Music On Hold across all users. (Our customer had this set to FALSE and didn’t know it!)

$a = Get-Content -ReadCount 0 -Encoding byte “C:\MoHFiles\happymusic.wma”

–This retrieves the music file (notice the format; we’ll talk more about that in a moment), and assigns the file to the $a variable.

Set-CsCallParkServiceMusicOnHoldFile -Service -Content $a

–This assigns the $a variable (referencing the happymusic.wma file) to Music On Hold for the domain’s Enterprise Voice pool. Use the FQDN of the server where Call Park (Enterprise Voice) is running.

There are additional parameters available, of course. Confirmation prompts & the like. Full cmdlet details are here: Set-CsCallParkServiceMusicOnHoldFile Cmdlet – Skype for Business TechNet

Matt Landis also has an awesome Q&A blog post on MOH:
Questions About Microsoft Lync Server and Music on Hold – Microsoft UC Report
It targets Lync Server, but from what I can tell, the information still applies to Skype for Business for the most part.

FORMAT: The recommended format for Music On Hold files is “Media Audio 9, 44 kHz, 16 bits, Mono, CBR, 32 kbps.” I’ve seen references to using .wma or .wav. Either file type is probably fine.

To create the music file or convert it to the recommended format, you can use Microsoft’s Expression Encoder 4, or another audio tool like Audacity.

Where Should I Get Music for MOH?

Now here’s the trick, right?

You could always convert an MP3 of your favorite song. But you’d have copyright issues to deal with right away. (Besides, your customers may not share your musical tastes.)

The rest of us are left hunting for a royalty-free, or cheap-to-buy, music option. Let me help you with that. – Audio is a directory of audio resources. It’s a phenomenal resource for creative work – they have resources for photos, icons, fonts, video – and audio tracks.

I’ve gone through all of the sites on this list. My favorites are Bensound and the Music Store. The free tracks are either fun or relaxing. The paid tracks are good-quality. Most are perfectly suitable for Music On Hold.

Is Your Music On Hold Enabled?

I’d be remiss if I didn’t mention the original Music On Hold blog post:
Music On Hold for Lync Clients – Ken’s Unified Communications Blog.

Written back in October of 2010, it remains one of the most-linked-to posts on MOH, period. Its cmdlet references are 2 versions old, so be careful there. But otherwise, it’s an excellent starting point for the Music On Hold function.

Have you installed Skype for Business Server 2015 yet? If so, please comment or email on your experience. I’d like to collect a group of Skype4B experiences & wrestle some good data out of it (anonymously, of course).

Join us back here next week for more Skype for Business topics!

How to Set On-Hold Music in Skype for Business

5 thoughts on “How to Set On-Hold Music in Skype for Business

  • August 6, 2015 at 1:57 pm

    Thank for the great article on implementing music on hold in Skype for Business. I’m currently working on a Lync 2013 deployment and much, if not all of the article seems to apply to it.

    Early in the article you talk about assigning an MoH file to the Call Park service configuration. As I read it, it seems to imply that this step will also provide MoH if a Lync user simply puts a call on hold rather than parking it. Is that correct? I tried it in the deployment I am working on. I have the clientpolicy set with MoH enabled and the filename blank. When I look at the settings on the client is see the MoH checkbox enabled and the user is able to change the MoH file. Obviously, that’s not the expected result.

    The biggest problem I see with the MoH configuration is that you have to put the MoH file where all of your Lync clients can get to it. Naturally this isn’t a problem for internally signed on users but it’s a big problem for externally signed on users.

    From your work with the MoH, could you provide some thoughts on these challenges?


  • November 5, 2015 at 2:21 pm

    We have a live streaming music service that allows users to log in and change backgrounds, messages, etc. We have seen Asterisk Gateways work for streaming MOH, but calls that do not go through the gateway (i.e., local to local) will not have the benefit of this MOH. Any thoughts on making a live stream truly universal?

  • October 5, 2016 at 10:04 am

    Further to John’s letter above, it seems strange that MoH cannot be streamed centrally from within Skype4B. An answer to John’s questions would be interesting.


  • January 9, 2017 at 5:36 am

    This configuration will Enable the MoH just for Call Park.
    To Enable MoH for User Client, you can use the command:

    Set-CsClientPolicy -Identity Global -EnableClientMusicOnHold:$TRUE -MusicOnHoldAudioFile “C:\MoHFiles\happymusic.wma”

  • September 19, 2017 at 12:24 am

    I tried few things :

    1. Use my SBC to play MOH. The biggest advantage is that you can force your users to use the song you define like a corporate music. It would avoid your customers to wait with too much personnalized song tastes. The biggest cons is 8 kHz, 8 bit and mono limitation that transform your lovely song into a lovely cacophony. Moreover, it only applies on PSTN.

    2. Force the ClientPolicy to use MOH and force a file. Pros : Can be pushed locally by SCCM, logon script or something else (Because yeah, it has to be local to fit with your remote users needs). Be aware about one thing, people who know a bit about IT could have a look to the file name, close S4B client and then, replace the song by theirs. We have to play with folder permissions there. You have to configure few things on your SBC/Gateway to let the song go to the PSTN. It would apply for PSTN and P2P connection. If you have provisionning server for your IP Desk Phone, you can easily push the song to these devices too.

    3. I looked for a central stream for music but didn’t found out anything and doesn’t look to be supported within S4B client / IP Desk Phone.

    Conclusion : I don’t know if a central stream for that could be better since I didn’t found out anything about that, but right now, I think the second point, by forcing the ClientPolicy, is the most suitable way to handle MOH.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.