Background
I recently completed a CUCM upgrade for a customer where their CUCM 7.0 system, running on the MCS platform was migrated to an 8.5 system running in vmware (on the UCS platform). One of the requirements was to preserve the ability to leverage a satellite radio feed for Music On Hold.
There are several options available to address this requirement, I discuss some of the more viable options here. For this deployment, we decided to leverage a “uni-tasker” to take the audio input and stream it on the multicast-enabled network. The product we used is the Barix Annuncicom.
The following is a breakdown of how we got the solution to work.
Configuring the Network
Of course, if we don”t have a network that can handle multicast routing then we are dead in the water. I had the privilege of working with Carole Warner Reece on getting the network portion laid out. The basic approach is illustrated in the following example.
The solution leverages MSDP, PIM, and IGMP to facilitate IPmc routing throughout the network. The CUCM publisher and the Barix audio streamer are both configured to stream using the same multicast group. The difference is that the SVI for the CUCM VLAN is configured to block multicast streams from leaving the VLAN. This can be done via ACL or by simply disabling PIM on the CUCM SVI.
When a phone is placed on hold, the CUCM says “hey, listen to my wonderful tunes on channel 239.192.1.1”. Unfortunately, Barix is pirating the signal.
The network piece was nicely done — thanks Carole!
Configuring CUCM
We identified the specific multicast group we were going to use for this application as a general pre-requisite before configuring CUCM. Next we configured an audio source in CUCM that leveraged the Sample Audio Source file but associated it to a new audio source ID (ID 2, in our setup).
The reason we used a real audio source file is that if the media consumer (i.e. the device placed on hold) was not on a multicast network, we still wanted to send MoH. It would just be the sample audio source or, “the Cisco clap”, as my customer so aptly named it.
Audio Source Configuration
- Audio Stream Number: 2
- Audio Source File: SampleAudioSource
- Audio Source Name: BarixSoundFile
- Play Continuously: enabled
- Allow multi-casting: enabled
MoH Server Configuration
We only associate the multicast capabilities to one of the CUCM IPVMS nodes. This MoH server was configured as follows:
- Run Flag: Yes
- Multi-cast IP Address: 239.192.1.1
- Multi-cast port number: 16384
- Increment multi-cast on: IP Address
Media Resource Group
We create two media resource groups (MRGs). The MoH server is assigned to both MRGs. The only difference between the two is that one MRG is multicast enabled, while the other is not.
Media Resource Group List
We created at least two media resource group lists (MRGLs). One of these MRGLs contained the multicast-enabled MRG, while the other does not. The latter is assigned to devices on networks incapable of routing multicast, while the former is associated to devices that are on multicast-enabled networks.
Configuring Barix
The Barix appliance is a nifty little box that is pretty easy to integrate in your network. Barix recommended loading the “Instreamer” firmware given the use case. This worked like a champ. After you assign an IP address to the Barix box, you can web to the system to complete the configuration. IP address assignment can be done via DHCP on initial boot and then reconfigured to static. The code versions leveraged are shown below.
- Firmware VB3.17 (7/25/2011)
- Web app: V 1.20
- Bootloader V99.15
- Setup: V 1.07
- Song: V8.18
- XT: V 1.18
Network Settings
The first step is to go to Settings and then modify the network settings. Apply an IP address that fits your design.
Audio Settings
After configuring the network, the audio settings are modified to identify the appropriate input source, the encoding mechanism, and gain. The encoding is G711 ulaw / 8 kHz mono. The rest of the settings may vary by environment.
Stream Settings
For stream settings, you can provide whatever name you want. The streaming mode should be set to “send always”, the send contact closure information is disabled, and the DSCP value is set to 46 (PHB EF).
When setting up the multicast destination, modify connection number 5 to use the multicast group address and port number provisioned for the MoH server in CUCM.
Misc Settings
Tweaking may be necessary, depending on your needs. In our situation, the configuration was pretty straightforward. We tested with an iPod so we didn’t have to move the live feed from the production (pre-migration) CUCM 7 system. Once we migrated phones to the new system, we moved cables and were in business.
William Bell is the Collaboration Practice Lead for Chesapeake NetCraftsmen. Bill has over 10 years of experience in the IT industry with a focus on communication and collaboration technologies. In addition to blogging on the NetCraftsmen site, Bill also maintains the UC Guerrilla blog: http://ucguerrilla.com. You can follow Bill on Twitter: @ucguerrilla
Hi Bill
Did you guys use the Barix Annuncicom 100, 155, 200 or the 1000?
Cheers,
Zaki Mohammad
CCIE Voice# 32030
Zaki,
We looked at the 100 and 200, with the 200 being preferred for PoE. The Instreamer 100 is also valid but there is no need for stereo option (and I don’t think this line has a PoE model). Note that you can run the Instreamer firmware on the Annuncicom, which is fine for this application.
HTH.
Regards,
Bill
Bought the Annuncicom 200 after reading Bill’s review. It arrived today and had it doing MOH in less than 10 minutes. For a CUCM environment running on UCS, this is clearly the way to go. We tried the FXO port multicasting on a router but it had bad quality, especially when you did a "show run" or "wri". This is a cool little box and runs on POE.
Darren Ramsey
CCIE #18814
Darren,
Excellent feedback! Thanks! I have definitely found the integration to be painless (assuming IPmc is properly deployed).
Regards,
Bill
Bill,
Could you provide the acl that was used to block the Multicast from CCM? We are deploying with Nexus 1000v’s and would like to block the traffic on the port profile. We have several gateways that are the same layer 3 network as CCM so we can’t remove the ip pim sparse on the SVI and I am not sure an ACL on the SVI would work either.
Could you please offer any advise?
Thanks
Joe