Music on hold is a very useful feature in Call manager which is used for streaming music when you put a PSTN phone or an internal IP phone on hold.
I will discuss briefly how it is configured and how you may use CUCM to stream music from remote gateways.
- Go to Media Resources > Music on Hold Source
- Check the box ‘Allow Multicasting’
- Go to Media Resources > Music on Hold Server
- Select the device pool – DP-MOH (This device pool should have a region REG-MOH which has G711 codec with all other regions
- Create a MRG and select the MOH Server in it – don’t forget to check the box ‘Use Multicast for MOH Audio’
- Select the MRG in an MRGL
- Assign the MRGL to a device pool and place the gateway in the same device pool
- Check IP Voice Media Streaming App (IPVMA) is activated
- At the gateway, configure the following
ip multicast routing
Int Loopback 0
ip address 10.10.110.2
ip pim sparse-dense-mode
Int vlan 300
ip address 10.10.201.1
ip pim sparse-dense-mode
(Vlan 300 is voice vlan)
ccm-manager music-on-hold
telephony-service
max-ephone 2
max-dn 2
ip source-address 10.10.210.1 port 2000
moh music-on-hold.au
multicast moh 239.1.1.1 port 16384 route 10.10.110.2 10.10.210.1
create cnf-files
Note: Telephony-service command is very important for the router flash to stream MOH. Even if you are not using SRST, there must be telephony-service or call-manager-fallback command for MOH. Also, the ‘ip source-address’ and ‘max-eph’ ‘max-dn’ is essential.
Verification:
R2#sh flash
-#- –length– —–date/time—— path
1 58084804 Jan 21 2009 12:15:48 c2800nm-adventerprisek9_ivs-mz.124-20.T1.bin
2 720 Feb 11 2009 19:58:34 VLAN.DAT
3 720 Jun 12 2010 09:09:10 vlan.dat
4 496521 Feb 12 2010 18:19:06 music-on-hold.au
4665344 bytes available (59346944 bytes used)
Check that ‘music-on-hold.au’ is on flash.
Do a show ephone summary and check if MOH file is active:
R2#sh ephone summary
hairpin_block:
Max 2, Registered 0, Unregistered 0, Deceased 0 High Water Mark 3, Sockets 0
ephone_send_packet process switched 0
Max Conferences 8 with 0 active (8 allowed)
Skinny Music On Hold Status
Active MOH clients 0 (max 210), Media Clients 0, B-ACD Clients 0
File music-on-hold.au type AU Media_Payload_G711Ulaw64k 160 bytes
Moh multicast on 239.1.1.1 port 16384 via 10.10.110.2
via 10.10.201.1
Do a debug ephone moh and check if router is streaming MOH:
R2#deb ephone moh
Jun 28 23:07:43.299: MoH route If Loopback0 46 10.10.110.2 via 10.10.110.2
Jun 28 23:07:43.299: MoH route If Vlan240 ETHERNET 10.10.201.1 via ARP
R2#
Jun 28 23:07:48.747: MoH route If Loopback0 46 10.10.110.2 via 10.10.110.2
Jun 28 23:07:48.747: MoH route If Vlan240 ETHERNET 10.10.201.1 via ARP
R2#
Jun 28 23:07:50.551: ifs_read flash:music-on-hold.au end of file at 490557 read 5964 = 496521
Jun 28 23:07:50.555: moh tail fill from 24 at 0x4A73816C length 2036
During a HELD call, issue command ‘show ccm-manager music-on-hold’ … this will show the ports/interfaces used for Music on hold streaming.
R2#sh 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.1 16384 508/508 1 g711ulaw Lo0
Also you can check the multicast Interface 239.1.1.1 status by using following command:
R2#sh ip mroute
IP Multicast Routing Table
Flags: D – Dense, S – Sparse, B – Bidir Group, s – SSM Group, C – Connected,
L – Local, P – Pruned, R – RP-bit set, F – Register flag,
T – SPT-bit set, J – Join SPT, M – MSDP created entry,
X – Proxy Join Timer Running, A – Candidate for MSDP Advertisement,
U – URD, I – Received Source Specific Host Report,
Z – Multicast Tunnel, z – MDT-data group sender,
Y – Joined MDT-data group, y – Sending to MDT-data group,
V – RD & Vector, v – Vector
Outgoing interface flags: H – Hardware switched, A – Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.1.1.1), 00:01:01/00:01:59, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Vlan240, Forward/Sparse-Dense, 00:01:01/00:00:00
(*, 224.0.1.40), 02:14:08/00:02:52, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Loopback0, Forward/Sparse-Dense, 02:14:08/00:00:00
Also when the call is on hold:
R2#sh call active voice | i RemoteMedia
RemoteMediaIPAddress=239.1.1.1
RemoteMediaPort=16384
If the remote media IP address shows up as 0.0.0.0 then there is a good chance that you have encountered CSCdz00697.
I will discuss MOH issues in another section.