It turns out that when it comes to UCCX scripts, I’ve been doing music on hold wrong all this time.  I wanted each script / team to have their own custom music on hold, and was using call control groups to achieve this.  I’ve recently found this this is usually not the best way.

Setting custom music on hold through UCCX call control groups

You can assign MOH by creating a call control group for each team, and assigning their music on hold there, like this:

Call Control Group - Settiong the MOH
Call Control Group – Setting the MOH

This works just fine, and when a user is put on hold, they’ll hear that MOH.  This is the way you’re script will look, just putting a user on hold, delay, then taking the user off hold

placing a user on hold in a uccx script
placing a user on hold in a uccx script


The problem with this setup is that you’re making a call control group for each team that needs custom music on hold.  You’ll end up missing out on the economies of scale that are offered by one large call control group.  For instance, with multiple small call control groups, group 1 may be underused.  At the same time, call control group 2 may be maxed out, and giving busy signals to new callers.  To make things worse, there’s no real way to monitor control group usage currently.  If you have one large call control group, then you can keep taking calls until the system maxes out.  This works well if every queue is equally important.

Setting custom music on hold inside the UCCX script

A better way to set music on hold to a custom song for each team / queue / script is by setting the actual song that will be played within the script itself.  This will not use the hold music set in the call control group, since you aren’t actually putting the call on hold.  Here’s an example:

Setting the MOH inside a UCCX script
Setting the MOH inside a UCCX script

As you can see, it’s just a play prompt, and it’s super easy to setup.  Some things to remember about this play prompt

  • On the general tab, you should have Interruptible set to yes.  This will allow the call to be routed to an agent if one becomes available.
  • On the prompt tab, you should have Barge in set to no.  This will prevent the user from pressing a button and skipping to the next step.

A note on UCCX call control group “Network Hold Audio Source”

Users on hold will eventually be routed to an agent, and when that happens, the user is put on a “network hold”.  Essentially they will hear what every music you’ve set for them in the queue, then they will hear network hold music, then they will connect to an agent.  Things go much smoother when you make your network hold audio source a ringback.  Just create a new MOH in CUCM and use a wav file that has a phone ringing.  Your users will now here a phone ringing immediately before they are connected to an agent.



UCCX call control groups and music on hold
Tagged on:             

One thought on “UCCX call control groups and music on hold

  • March 2, 2018 at 5:45 am

    So i’ve changed the music on hold to a ringback-tone in the UCCX script and “Network Hold MOH Audio Source” directly on devices, but still i get the old music on hold tone when i call the call control group. I can’t find the UCCX call control groups in CCX (like in the first picture in this article), or it looks differently. CUCM version is

    Do you got any idea what i’m missing?

Leave a Reply