Oxiwi Oxiwi Tools

3CX music on hold

Same format as prompts, never the same level

Music on hold imports into 3CX in the same format as a menu prompt: PCM WAV, 8,000 Hz, mono, 16-bit. Nothing special to know there.

The level must not match. A menu prompt lasts seconds and should be assertive; hold music runs for minutes. At the same level it becomes tiring — the caller turns the handset down, then cannot hear the agent who picks up.

That is what the music on hold preset is for: −20 LUFS instead of −16, with gentler 2:1 compression that keeps musical dynamics instead of flattening them the way voice treatment does.

The level gap is the real defect, not the format

A format problem announces itself: 3CX rejects the file, you investigate, you fix it. A level gap never shows at import — it shows on the phone, to the caller, and nobody reports it.

The classic case: a menu recorded on a headset, music ripped from a CD at full level, a queue prompt inherited from an old PBX. Three files in the right format, three levels ten decibels apart. The caller flinches at every transition.

Measuring integrated loudness to EBU R128 and aligning every file to a shared target removes this. It is the one treatment neither the official 3CX converter nor competing online converters perform: they handle format, not level.

Looping without a click or a gap

3CX loops hold music. Two defects are audible at the seam: a click, when the file ends on a non-zero value and jumps back to zero; and a gap, when the export left half a second of silence at the end.

Leading silence is the costlier one: a transferred caller hears nothing and assumes the line dropped. The checker flags leading silence above a threshold for exactly this case.

For the loop itself, pick an excerpt ending on a bar line and apply a very short fade — a few tens of milliseconds — and the seam becomes inaudible.

Licensing: the expensive detail

Playing commercial music to callers on hold is public performance. In France it falls under SACEM for authors’ rights and SPRÉ for neighbouring rights; most countries have an equivalent. A commercial track, even lawfully bought, is not free to use as hold music.

The two clean routes are royalty-free music licensed for this use, or an original composition. Many installations run on a file picked up without a thought — the kind of detail that causes no problem for years, then causes one, expensively.

This falls outside what the tool does: it processes the file it is given. It is worth checking before choosing the track, not after.

Where this is set in 3CX

General hold music is set in the PBX parameters. A queue can carry its own, plus an intro prompt played before the music — that prompt is voice, so −16 LUFS, not −20.

A reminder that wastes time: 3CX wants file names in latin characters. An accent or an apostrophe can be enough to fail the import while the format is perfectly correct.

Check a file now