CUCM Features: Managing Music on Hold Resources

The name of the Nugget says it all. Come here to learn how to add Music on Hold (MOH) Audio Sources (including the Fixed Audio Source), manage unicast/multicast MOH, and assign MOH sources to IP phones and Common Configuration Profiles.


  • MoH Resource Placement (Centralized?)
  • Unicast VS Multicast – One to One and One To All (One to One – You will never start during a song, you will start at the beginning. Unicast is more resource intensive, Multicast is easier on resource. Everyone is tuning into the radio as such! 1 stream per MoH source)
  • 16 Bit PCM WAV File
  • 8,16,32,48 khz sample rates
  • MoH Configuration

SRST Gateway can be set as a MoH device

1-51 different audio sources, the 51st/last source is a fixed audio source

Media Resources -> Music On Hold Server

Maximum Half Duplex Streams – 250 (One way only)

Maximum Multicast Connection: 250000

Change Multicast IP address

Media Resources -> Music On Hold Server Audio Sources

Use Default Source, or add new file!

Once configured, go to a Phone and select MOH User and Network Hold Sources.
User Hold is when User presses Hold
Network Hold is when someone is put on Hold by any other method than the Hold button

Common Device Configuration

Device-> Devices Settings -> Common Device Configuration
Apply batch/common configuration to phones

System->Service Parameters
G.711 mulaw is default MoH CODEC, although when you upload a WAV it converts to all CODECs

QoS Values can also be set for MoH traffic! (EF DSCP is default)


CUCM Features: Implementing Conference Resources

While the CUCM Voice Media Streaming App is the primary source of software-based conferencing, CUCM supports DSP-based hardware resources as well. In this Nugget, Jeremy show how to manage both styles of conference resource and discusses tuning the conferencing service parameters.

  • Voice Media Streaming App
  • Service Parameters
  • Adding software and hardware resources

Default in CUCM is 48 participants in overall conferencing up to 256

Media Resources -> Conference Bridges

Trusted Relay – Allow devices in from untrusted networks

DSPFARM – From CVOICE – Essentially Groups of DSP resources

CUCM Features: Understanding Media Resources

There are many features that just “happen” on the VoIP network that we take for granted: hold, transfer, conference, music on hold…the list goes on. ALL of these features require resources to support them: Media Termination Points (MTP), Conference Bridges (CFB), Music on Hold (MOH), Transcoding (XCODE), and Annunciator (ANN). This Nugget provides an over view of each service detailing is function and placement in the VoIP network.


Media Resources Defined…. “Hardware or Software that support the function of the VoIP network”

  • Conference Bridge: Handles Conference Calls – (G.711 Only with CUCM – Software based resource)
  • Media Termination Point: Hold Calls On Hold! (CUCM)
  • Annunciator: Plays recorded announcements (CUCM) (Accessed via TFTP as below)
  • Transcoder: Converts one CODEC to another (DSPs needed and not performed in CUCM – VG for example. Can also be done between phones as DSP chips installed locally into the phone itself!)
  • MoH Server: Plays Music on Hold (CUCM)

To access Annunciator messages/wav files:
Cisco OS Admin -> Software Upgrades -> TFTP File Management
All files in the TFTP server

How does CUCM do all of this…….?
Serviceability-> ‘Cisco IP Voice Media Streaming App’ -> Enables all of the above!
System>Service Parameters>Cisco IP Voice Media Streaming App -> You can decide what roles each CUCM server has.

Voice Termination (DSP required) Unable to do with CUCM. Call from PSTN, converted to another CODEC, not possible with CUCM. VG can do this for us as it has a foot in the PSTN and IP world.

Partitions and CSS: Client Matter Codes (CMCs) and Forced Authorization Codes (FACs)

Partitions and CSSs work well when you want to say, “you NEVER have access to dial these numbers.” However, what if you wanted to say, “Well, you have access SOMETIMES, but we’ll definitely know when you’re doing it.” Welcome to Client Matter Codes (CMCs) and Forced Authorization Codes (FACs). In this Nugget, Jeremy walks through the purpose of each feature and how to implement it.


Client Matter Codes (CMCs)

  • Requires a code before dialing a number
  • One code does it all, all codes created equal
  • Used for departmental billing

Forced Authorisation Codes (FACs)

  • Requires a code before dialing a number
  • Codes assigned different levels of access
  • Used to compliment dialing restrictions

Client Matter Codes (CMCs)

Call Routing -> Client Matter Codes

  • 8801 – Accounting
  • 8802 – Sales
  • 8803 – Tech Support

Route Patterns -> ‘Require Client Matter Code’ tickbox

Call number, followed by a beep, dial the code followed by HASH. (Interdigit Timeout)

Forced Authorisation Codes (FACs)

Call Routing -> Forced Authorisation Codes

9901 = Code
10 = Level

9902 = Code
20 = Level

9903 = Code
30 = Level

Under Route Pattern -> Require Authorization Level = 10
To dial these digits, you must have a level 10 or above.

Dial local call, beep, enter code and hash, you must have level 10 or above for example on the route pattern.

You normally use CMC or FAC, not both!

A partition and CSS approach can be taken for CMC and FAC. A partition is created purely for CMC/FAC.

Partitions and CSS: Time of Day Routing

The uses are endless: routing calls to receptionists by day, voicemail by night; passing calls to the correct sales group based on timezone; blocking international calls after hours…You get the picture! By time you’re done with this Nugget, you’ll be able to solve nearly any scenario using Partitions and CSSs with Time of Day routing!


This is a concept that I have setup in the office already.

Time Schedules and Periods are setup.

Each dialing entity is duplicated in different partitions which associated Schedules and Periods defined.

For example a Translation Pattern may match and route digits to an office during the day, and OOH may send the digits to an answering service.


1. Numbers created and assigned to a partition

2. Time Schedule linked to partition dictating availablity

3. ‘Time-Based’ Partition placed in CSS, Order is extremely important!

Jeremy Example:

1001 = Receptionist – 8-5, Monday to Friday
1001 = Translation – Off Hours Evenings, Saturday and Sunday (Sent to 86551 OOH – Voicemail)

Public Holidays can be a consideration… you can achieve this with Time Periods! 🙂

Time Period = Interval Saturday all day for example or 8-5 is a ‘period’.
Time Schedule = More than 1 periods put together.

Default = ‘All the time’

Time Schedule is attached to the Partition

Create CSS and associated to Out Of Hours Partition
Within the Gateway, Call Routing Information – Inbound Calls add this CSS

Partitions and CSS: Voice Gateways – Call Forwarding and PLAR

WARNING: Do not implement Partitions and CSSs without watching this Nugget first – you WILL cause a complete shutdown of your trunk connections! Why? Because Partitions and CSSs impact gateways and trunks in the same way they do phones. Tune in here to find out what you need to do. In addition, Jeremy discusses the Partition and CSS impact on call forwarding restrictions as well as how to implement Private Line Automatic Ringdown (PLAR – aka “The Batphone”).


How Partitions and CSS affect Voice Gateways?

Using CSS with call forward settings

Creating PLAR devices with Partitions and CSS (Auto-Registration)


  • Set to a CSS that has ALL devices normally.
  • Assign the Voice Gateways to a CSS. (Determines inbound call privileges)
  • A CSS must be assigned to any Call Forward settings under a Directory Number with the appropriate permissions
  • PLAR is the same concept as the Batphone from Batman! You pick up the handset and it automatically dials a number. Create a Partition for PLAR and add a Translation Pattern that is blank but contains a Called Party Transform Mask of 1004. Create a CSS for PLAR with the PLAR Partition. Assign the CSS to a phone to be automatically dialed.


Partitions and CSS: Implementing Calling Restrictions + Best Practices

Why wait years to discover some of the CUCM dial plan best practices through trial and error when you can learn them right now? In this Nugget, Jeremy talks through simple and salable methods you can use to design Partitions and CSSs the right way from the onset.


Create a partition containing ALL dialable numbers

Create a partition containing BLOCKED numbers

In the CSS, place the blocked partition before the dialable partition

Partition: BLOCKED – 9.1900!, 9.1978!, 9.011!
Partition PSTN – 9.[2-9]XXXXXX, etc….

INT_CSS – BLOCKED and PSTN Partitions

A CSS can be assigned to a LINE and a DEVICE, creating one big CSS. LINE is checked 1st then down to the DEVICE.

Apply BLOCKED CSS to the LINE itself, then PSTN access on the DEVICE. Similar concept to an access list!

Create your CSS based on calling privileges, not individuals. Then assign the appropriate CSS to each set of lines + phones.

Jeremy recommends a book called ‘Cisco CallManager Best Practices’.