Wednesday, June 29, 2016

Stream Multicast MOH from gateway notes

Cisco CUCM deployments can provide MoH / music on hold to callers that is streamed from the CUCM server(s) themselves.  If the devices you are putting on hold are far from the CUCM servers though and you don't want the music streams to cross lower bandwidth WAN links, one option you have is to stream the MoH from a voice gateway that is local to the devices on hold.

There are quite a few dependencies to make this work though. Below is a summary of the things I addressed today making it work at a new site.

In your CUCM, you need to enable multicast capabilities on the MoH source, the MoH server, and a Media Resource Group (MRG).

Audio Source with multi-cast enabled

MOH Server with multi-cast enabled
 



MRG with Multi-cast enabled



Note: You should configure multicast audio sources to increment on the IP address and not the port number (see server configuration above) because:

  • IP phones placed on hold join multicast IP addresses, not port numbers
    • Cisco IP phones have no concept of multicast port numbers. Therefore, if all the configured codecs for a particular audio stream transmit to the same multicast IP address (even on different port numbers), all streams will be sent to the IP phone even though only one stream is needed. This has the potential of saturating the network with unnecessary traffic because the IP phone is capable of receiving only a single MoH stream.
  • IP network routers route multicast based on IP addresses, not port numbers 
    • Routers have no concept of multicast port numbers. Thus, when it encounters multiple streams sent to the same multicast group address (even on different port numbers), the router forwards all streams of the multicast group. Because only one stream is needed, network bandwidth is over-utilized and network congestion can eventually result.

You then need to create and / or assign a MRGL to the trunk, device pool or other that includes the MRG configured above.

MRGL used by remote devices that includes multi-cast MRG from above


Note: You do NOT need to support multicast traffic generically across the network or across the WAN.  Because the phones and voice gateway used for streaming the MoH file were on the same subnet at the remote site, I only enabled support for multicast routing on the voice gateway itself.  The switch where the phones and voice gateway were connected at the remote site did not even have multicast routing enabled.

Now verify what multi-cast IP address your music will utilize.  It is not necessarily the IP address set in the MOH server you see above or even related to the number of the audio source in use. Rather it depends on what codec is being used and in what order the audio sources were added to your server.

Here's a great discussion on the topic: https://supportforums.cisco.com/document/68401/procedure-allocate-ip-address-and-port-srst-multicast-moh

On the MOH server where "Enable Multicast Audio Sources" is enabled, here's how I found the address I needed.

admin:
admin:run sql select m.mohaudiosourceid,m.multicastaddress,m.multicastport,c.name from mohservermulticastinfo as m,typemohcodec as c where m.tkmohcodec = c.enum
mohaudiosourceid multicastaddress multicastport name
================ ================ ============= ========
1                239.1.1.11       16384         711 ulaw
51               239.1.1.14       16384         711 ulaw
2                239.1.1.19       16384         711 ulaw
1                239.1.1.13       16384         729
51               239.1.1.16       16384         729
2                239.1.1.21       16384         729
1                239.1.1.18       16384         wideband
51               239.1.1.17       16384         wideband
2                239.1.1.22       16384         wideband
1                239.1.1.12       16384         711 alaw
51               239.1.1.15       16384         711 alaw
2                239.1.1.20       16384         711 alaw
admin:
admin:


Note, if here I want to use audio source 2 and the G.711 ulaw codec, I should then use multicast address 239.1.1.19 in my gateway config.

My gateway configuration then includes the following critical components:
!
ip multicast-routing distributed
!
call-manager-fallback
ip source-address 10.18.140.40 port 2000
moh enable-g711 "flash:/SampleAudioSource.ulaw.wav"
multicast moh 239.1.1.19 port 16384


Here my gateway's LAN IP address is 10.18.140.40 and I have chosen to stream Cisco's sample music from flash on the gateway.  If you are interested, here's my tips on how to download music from Cisco's music on hold servers to use elsewhere:
http://webmaxtor.blogspot.com/2012/09/cucm-download-moh-file-from-server-in.html  It's the technique I used get the sample music file off the server and on the gateway.

If all goes as planned, when a caller is put on hold you can see evidence of it being streamed from the gateway via the "show ccm-manager music-on-hold" command.
!
! with no calls on hold

my-router#
my-router#show ccm-manager music-on-hold
Current active multicast sessions : 0

my-router#
!
! with one call on hold
!
my-router#
my-router#show ccm-manager music-on-hold
Current active multicast sessions : 1
 Multicast       RTP port   Packets       Call   Codec    Incoming
 Address         number     in/out        id              Interface
===================================================================
239.1.1.19        16384   0/0              25939 g711ulaw            
my-router#





No comments:

Post a Comment