So the situation is pretty simple. VP is having a lovely conference call with umpteen million staff members and in the middle of it someone has the brilliant idea to take another call placing the conference on hold….
Lets just say listening to the awesome Cisco hold music for the next 15 minutes didn’t go over as well as you might imagine. And of course why solve people problems, when instead you can use technology to circumvent it. Oh well, it keeps me employed, so out came the edict: “Though shalt not have music on hold!”. Okay, are you sure what about for customer service? Oh well of course we want it there. Okay, what about internal callers? Nah screw those guys.
So now we know the goal. No music on hold for everyone except customer service. With the main objective meaning no music on hold for conference calls. Well since we need MoH for customer service I can’t just go and stop the MoH service. Hrmmmm, I could make a new device pool but that kind sucks i don’t want to do that.
If only Cisco gave the option of turning MoH off at a device level but alas no that option isn’t there. Okay I’ve got it, I’ll use Audacity to create a silent music on hold file. Ghetto I know but it will work. So I do that I make a silent 5 minute MoH file upload it to all my MoH servers and set it as both the line and network music on hold choice. Dust off my hands and say job well done.
OR SO I THOUGHT!
A few days go by a few people complain they don’t hear the awesome Cisco music they are used to. I say hey take it up with the big boss and move on with life. Then I get the IM from hell, person so and so was on a conference call and someone put it on hold and they got beeps. Beeps as some will be familiar with are also known as tone on hold or ToH. But why oh why would they be getting ToH all the phones got the new MoH configuration, what could be going on here. What might help is an explanation of our conferencing setup.
We use Microsoft Lync for audio conferencing, I won’t get into what it can and can’t do let just leave it at it does stuff conferencing being one of those things. So the RTP stream in text form looks something like this.
Cisco Phone <—> CUCM SIP Trunk <—> CUBE <—> Lync Mediation Server
Ok so step one, is this phone crazy has it gone rogue, is it a maverick?
Nope it’s cool with life, I call them they put me on hold and I hear nothing.
Ok step two, ToH must be generated by the SIP trunk however if you look at the SIP trunk configuration there’s no place to define MoH settings, unless maybe common device configuration is involved. So I look at the CDC (kinda creepy to abbreviate that one..) this does have user and network MoH setting. Ah ha this must be it. I change it to my silent MoH file and reset the SIP trunks. This time though I’m going to test this. So I join a conference call in from another phone and put the conference on hold.
Tones, TONES!!!! <-Think Khan Star Trek
Ok so now what I’ve messed with the phones, I’ve messed with the trunk I’m running out of options here. And to be honest I don’t view this as OMG WE NEED THIS NOW! So I moved on with working on the 8.6SU2 upgrade which is far more important is challenging.
As luck would have it, a few days later I was digging around in enterprise parameters looking for something else. Something to do with mixed mode security *shudder* when i stumbled upon this little gem.
[important]Service Parameters > Cisco CallManager[/important]
Ah ha! So this is pure speculation but this was set to the ID of the old Cisco hold music. My only guess is the SIP trunk always looks to this parameter to figure out how to deal with MoH. I changed both values to the ID of my new silent MoH file, and silence has never been so golden!