Friday, October 22, 2010

Music on Hold for Lync Clients

Yet another nice new feature in Lync is the ability for Enterprise Voice enabled users to choose their own music that's played when they put someone on hold.

From the Lync client, click on the Options "gear" icon and go to Ringtones and Sounds.  If the logged on user is enabled for Enterprise Voice, the last option should be Play music on hold.  Users not enabled for Enterprise Voice won't see the option to use music on hold.  For enabled users, you'll notice that it's greyed out by default.

To enable this setting, you need to edit your Lync Client Policy to allow music on hold. Client policies replace the Group Policy Objects that were used in Communicator 2007 R2 to enable/disable features in the client. These policies can be global, or they can be limited to groups or even individual users.

You manage client policies via Lync Powershell.  Assuming you haven't created any client policies, there will be a single one called Global.  To see the current settings of the Global client policy, type:
Get-CSClientPolicy Global
The setting we're interested in is EnableClientMusicOnHold.  By default, this is set to FALSE.  Set it to TRUE by typing:
Set-CSClientPolicy Global -EnableClientMusicOnHold:$TRUE
Log off and back onto the Lync client and the Play music on hold dialog box should be enabled.  Interestingly, there doesn't seem to be a way to allow the user to check or uncheck this option. It's either enabled or disabled by the policy, and can't be modified by the user.

If you've previously installed beta versions of Lync (pre-RC), you'll notice the path to the music file is probably C:\Program Files (x86)\Microsoft Office Communicator\Media\DefaultHold.wma.  If you browse to this location, you'll find it doesn't exist.  The actual path to the default hold music file is C:\Program Files (x86)\Microsoft Lync\Media\DefaultHold.wma

Now, when you put someone on hold, they will get a nice soothing melody while they anxiously await your return. Note that this setting is computer-specific, meaning that if you have Lync running on multiple machines, you'll have to make sure the path is set correctly on all computers, and the media file exists in that location.

If you don't want to use the default hold music, you're free to use any piece of music that suits your taste. The caveat here is that the selected music file must be in WMA format.  Bitrate-wise, I've tested a few different files, and it hasn't had any trouble with them - variable or constant bit rate, stereo and up to 192 kbps.  Your mileage may vary.  If you're looking for a tool to convert MP3 to WMA, I suggest Audacity.

If you don't trust your users to select appropriate hold music, you can assign an audio file using the MusicOnHoldAudioFile parameter in Set-CSClientPolicy.
Set-CSClientPolicy -EnableClientMusicOnHold:$TRUE -MusicOnHoldAudioFile pathtoaudiofile.wma
If you assign this setting, users won't be able to change the hold music. To allow users to change the audio file, you have to clear the setting by assigning the $NULL value or "" to the MusicOnHoldAudioFile parameter.


  1. Hi Ken, this post was very helpful.
    Is possibile to have Musin on Hold on UC Device (i.e. CX500/600)? Hi have these devices, but there isn't music on hold.

  2. Hi Elia,
    I haven't been able to get a hold of a CX500/600 for testing yet. If I do, I'll check it out. Sorry.


  3. Hi Ken,

    When I opened the "Ringtones and Sounds" tab from Options, I could not see the "Play music on hold" checkbox as well as the Browse button. Why can't I see it?
    Is it because I did not deploy Enterprise Voice?


  4. You can't actually SEE the options, or they're greyed out?

  5. Is there anyway to force the clients to use administrator defined music easily? I can see a world where users have "inappropriate" hold music and I'd be nice to have control of MoH site wide like on the server level or pushing out a .wma via and update or something clever.

  6. Hey Mike,
    Yes you can force clients to use admin-defined music. I've added a few new paragraphs at the end of the blog to show you.

  7. Hi Ken,

    I can't SEE the options. :( They are not greyed out.


  8. Hey Elsie,
    I just confirmed that you will only see the music on hold option when the user is enabled for Enterprise Voice. I've updated the blog to show this.


  9. Thanks Ken! :)

  10. The Music on Hold feature is presently only available for the Lync client and not the Lync Phone Edition unfortunately. If this changes in future will try and post about it.

  11. audiocode support music on hold on their SBA

  12. how does audiocides support music on hold via an SBA when it is just a Lync Server???

    I also was told that music is also not supported on their gateway products either??

  13. The client-side music-on-hold doesn't have any bearing on any SBA or gateway. Since the music is being generated by the client's computer, it will work in any scenario.


  14. I ran in to an exception with a customer using Audiocodes Mediant 1000 MSBG and ATT TN's supported on flex reach. Audiocodes product notes state the following:

    “Music on hold does not work on IP Flexible Reach telephone numbers that are served by the AT&T legacy SBC local PSTN footprint.”


  15. If anyone can help with the following I’d really appreciate it. I’ve been pulling my hair out for days trying to get music on hold for external PSTN calls working from the Lync client. I’ve set the csClientPolicy as per recommendations but for some reason MOH only plays for internal Lync calls and does not play for external calls. My configuration is as follows:

    I’ve run the following to enable MOH for all users: “set-csclientpolicy -identity global -enableclientmusiconhold:$true -MusicOnHoldAudioFile "C:\Program Files (x86)\Microsoft Lync\Media\DefaultHold.wma" -enableeventlogging:$true -EnableVOIPCallDefault:$true -EnableUrl:$true”. Mediation server has been configured with BT IPVS Direct SIP trunks which require that ‘media bypass’, centralized media processing’ & ‘refer support’ are all disabled. In the LCP under Network Configuration ‘call admission control’ & ‘media bypass’ are also disabled and I have not configured any ‘Policy Profiles’, ‘Regions’, Sites’ etc. If I make an internal Lync call and put the call on hold the music on hold plays no problem. If I make an external call and put the call on hold I hear no music. I’ve tried a number of different WMA formats with no success.

    I get the same results if parking the call (works for internal Lync calls but not for external calls). If I however enable ‘Call Admission Control’ and then try putting the call on hold I briefly hear about half a second of the music and then it goes silent again. If anyone has come across this and knows of a solution please could you share so I can begin living my life again.

    Thanks in advance.


  16. Can someone tell me if you can enable music on hold while in the Meeting Lobby of an Lync Online Meeting when joining from the Lync Client and if so, how do you configure? I have not been able to get this to work. I know that is you call into the meeting using the dial-in conferencing number you do get music on hold while in the lobby..

    1. Hey Mike,
      When joining from the Lync client, you're not connected to any kind of audio stream until you're admitted from the lobby. So, there isn't any way to get music-on-hold for Lync clients waiting in the lobby.


  17. Hi Ken,

    Thanks in advance for Helping me again as always with your nice Idea and Tricks.

    during a meeting our CEO said that when people put him on hold, there is a beeping noise on lync. He was wondering if we can turn that off?

    Waiting for your help.

    Amit Sharma

  18. Beep..Beep..Beep..Beep... I've got the same thing as well....
    Have you found a resolution Amit?

  19. The April 2013 cumulative update finally fixes MOH for the Microsoft optimized phones (i.e. CX600/500/3000). As a work a round for Lync Phone to PSTN calls, we put the MOH file on our gateway, but Lync Phone to Lync Phone MOH was still broken until we installed that update.

  20. Ken,

    How do you centrally control Lync On-Hold Music in environments where you have a Mix of Windows 7/8 with Lync 2010/2013 clients? The Lync 2013 client MOH file and the Lync 2010 MOH file are not in the same location

    To make matters worse, there is a Mix of Win7/8 x86 and x64. We cannot allow staff to abuse this and change the MOH to whatever they like, however, the default BEEP is extremely annoying.

  21. Hey Ken,
    With the new Polycom CX600 LPE, is there a way to disable the phone from playing music on hold. I am looking for my AudioCodes Mediant to handle to music on hold so that I can apply custom files. I have already change the client policies enableclientmusiconhold to FALSE.