Media Settings: Hold Music, Streams, and Transcription
7 min read
Media Settings is a hub page that gathers several related call-flow building blocks in one tabbed view. This article focuses on the audio side of that hub — Music on Hold and Streams — plus the system-wide Transcription feature that automatically generates text transcripts of call recordings and voicemails.
Overview#
Media Settings brings together: IVR Menus, Ring Groups, Time Conditions, Voicemail, IVR Tones (a container with two inner tabs — Recordings and Music on Hold), and, for top-level administrators only, Transcribe (speech-to-text settings). This article covers:
- Music on Hold — the audio playlists callers hear while waiting on hold or in queue.
- Streams — external, internet-radio-style audio URLs that can be used as hold music or announcements instead of (or alongside) uploaded files. This feature still works but currently has to be reached by its direct link rather than from the main menu.
- Transcription Settings — turns on automatic, text transcripts of call recordings and voicemails. This feature ships turned off by default.
IVR Menus, Ring Groups, Time Conditions, and Voicemail are covered in their own articles — this one focuses on the audio/media pieces.
The Media Settings screen
Screenshot needed · media-settings-overviewMusic on Hold: Uploading and Managing Playlists#
What it's for: the audio (music, announcements, or silence) a caller hears while on hold or waiting in a queue. Music on Hold is organized into named categories — each category can hold multiple audio files, which play in sequence (or shuffled) as a playlist.
How to Upload Hold Music#
- Go to Media Settings and open the IVR Tones tab, then its Music on Hold inner tab (or go directly to Music on Hold if it's in your menu).
- Click Add.
- Choose an existing Category from the list, or click the "new" option and type a new category name.
- If creating a new category, optionally choose a Sampling rate (8/16/32/48 kHz, or leave as Default).
- Click the file picker and select a WAV, MP3, or OGG file — for best results, use a 16-bit mono WAV file matching one of the standard sample rates.
- Click Upload. Repeat to add more files to the same category — all files in a category play as one rotating playlist.
How to Play, Download, or Delete a File#
From the Music on Hold list, click the Play icon next to any file to preview it, or Download to save a copy. To remove files, select their checkboxes and click Delete. You can also delete an entire category at once.
Playlist Behavior (Per Category)#
Each category has a few extra settings (opened by clicking the category's sample rate link in the list):
- Shuffle — play the category's files in random order instead of in sequence.
- Channels — Mono or Stereo.
- Interval — milliseconds of gap between files in the playlist.
- Timer Name — advanced timing behavior; leave as the default ("soft") unless you have a specific reason to change it.
- Chime File / Chime Frequency / Chime Maximum — optionally play a periodic chime/tone over the hold music — choose the chime sound, how often (in seconds) it plays, and the maximum number of times it repeats.
Streams: External Audio URLs#
What it's for: instead of uploading files, Streams lets you point Music on Hold (or an IVR's ringback) at a live, external internet-radio-style audio stream — for example, a Shoutcast/Icecast station or any continuous HTTP(S) audio feed.
Streams is a fully working feature, but it currently isn't listed in the main navigation menu — reach it with the direct Streams link, or ask your UCBC administrator for it.
How to Add a Stream#
- Go to Streams.
- Click Add.
- Enter a Name for the stream.
- Enter the Location — the stream's URL (for a Shoutcast-style feed, this looks like
shout://host:port/path; a plainhttps://audio URL also works). - Set Enabled to Yes.
- Optionally add a Description.
- Click Save.
How to Use or Update a Stream#
Once saved, a Stream can be selected anywhere a hold-music or ringback source is chosen (queues, destinations, ring groups, IVR menus). If you edit a Stream's Location later, every place already using that stream is updated automatically to the new URL — you don't need to re-select it everywhere it's used.
Transcription Settings: Automatic Call and Voicemail Transcripts#
What it's for: once turned on, Transcription automatically generates a text transcript of call recordings and voicemail messages, viewable alongside the recording itself. This is a background feature that works off a queue — recordings and voicemails are transcribed shortly after they're created, not instantly.
This feature ships turned off. A top-level system administrator needs to configure and enable it before transcripts start appearing anywhere.
How to Turn On Transcription#
- Go to Media Settings and open the Transcribe tab (only visible to top-level administrators).
- Set Speech to Text Enabled to Yes.
- Choose an Engine: OpenAI, Google, Azure, IBM Watson, or Local/Self-hosted.
- Enter that engine's API Key (not needed for Local).
- Optionally set an API URL override (leave blank to use the engine's own default) and a Model (used by OpenAI and Local).
- For Google, Azure, or Watson, enter a Language code (e.g.
en-US); Google also accepts an optional Alternate Language. - For Google specifically, you can use Application Credentials (a Google service account JSON) instead of an API key.
- For OpenAI, optionally turn on Speaker Diarization to identify separate speakers on multi-channel recordings.
- Set the Queue Batch Limit (how many jobs the background service processes at once) and Queue Check Interval (how often it checks for new jobs).
- Leave Save Raw Provider Response off unless you're troubleshooting — it keeps the provider's raw reply on each job for debugging.
- Click Save.
Once enabled, a Transcribe button/icon appears on Call Recordings and Voicemail wherever a transcript can be generated or viewed.
Field Reference#
Music on Hold#
| Field | Description |
|---|---|
| Category | Groups files into one rotating playlist. |
| Sampling | Sample rate for a new category: 8/16/32/48 kHz, or Default. |
| Shuffle | Random order instead of sequential playback. |
| Channels | Mono or Stereo. |
| Interval | Gap (ms) between files in the playlist. |
| Timer Name | Advanced playback timing; default is "soft". |
| Chime File / Frequency / Maximum | Optional periodic chime over the hold music, how often, and how many times. |
Streams#
| Field | Description |
|---|---|
| Name | Label for the stream. |
| Location | The stream's URL (Shoutcast-style shout:// or a plain https:// audio URL). |
| Enabled | Turns this stream on or off for selection elsewhere. |
| Description | Your own notes. |
Transcription Settings#
| Field | Description |
|---|---|
| Speech to Text Enabled | Master on/off switch for the whole feature, system-wide. |
| Engine | OpenAI, Google, Azure, IBM Watson, or Local/Self-hosted. |
| API Key | Credential for the selected engine (not used by Local). |
| API URL | Optional override; blank uses the engine's own default endpoint. |
| Model | Used by OpenAI and Local; blank uses the engine's default. |
| Language / Alternate Language | Audio language code(s); alternate is Google-only. |
| Application Credentials | Google service account JSON, used instead of an API key (Google only). |
| Speaker Diarization | Identifies separate speakers on multi-channel recordings (OpenAI only). |
| Queue Batch Limit | How many queued transcription jobs run at once. |
| Queue Check Interval | How often the background service checks for new jobs, in seconds. |
| Save Raw Provider Response | Keeps the provider's raw reply for debugging; leave off otherwise. |
Tips & Common Issues#
- Uploading a file to a Music on Hold category you haven't used before creates that category automatically — just type its name instead of picking from the list.
- A Stream's audio has to actually be reachable from your server for it to play as hold music — test the Location URL in a browser or media player first if callers report silence.
- Because Streams isn't currently in the main menu, bookmark its direct link if you plan to use it regularly.
- Transcription is platform-wide, not per-domain — one Engine/API Key setting applies to every domain's recordings and voicemails.
- After turning Transcription on, give it a few minutes (based on the Queue Check Interval) before expecting a transcript on a brand-new recording — it isn't instantaneous.
- If transcripts never appear, double-check the API Key was actually saved (it's never shown back once set, by design) and that the selected Engine's required fields are filled in.