Skip to main content

Music on Hold


Music on Hold (MOH) is not a central component, and it's dependent on endpoints supporting it.

Click here to expand Table of Contents

To download the default FreeSWITCH Music on Hold files at all the sample rates (8000, 16000, 32000, 48000) you must run this command inside the FreeSWITCH source directory:

make cd-moh-install

Or just download the files freeswitch-sounds-music-RESOLUTION-VERSION.tar.gz directly from


In conf/vars.xml the default is defined:

<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>

which points to sound files defined in conf/autoload_configs/local_stream.conf.xml

You can also generate tones for music on hold using the tone_stream app:

<X-PRE-PROCESS cmd="set" data="hold_music={loops=-1}tone_stream://v=-30;%(250,0,350);%(250,0,440)"/>

which is not very entertaining, but gets the point across.

You may also configure a unique music on hold for each sip profile, which is useful in multi-tenant environments.

How it works on the telephone

In the case of call waiting on a single line phone connected to an ATA, it works like this:

  1. Second incoming call comes in.
  2. Phone plays call waiting beep.
  3. User hits flash button.
  4. ATA sends a SIP INVITE message to FreeSWITCH, and in the SDP it says "sendonly"
  5. FreeSWITCH receives the SIP INVITE and plays the hold music (assuming correctly configured).

Royalty-free Music Sources

See also