Asterisk streaming music-on-hold

In Asterisk it is possible to upload .wav or .mp3 files to be used as music-on-hold (MOH). Another option is to use streaming audio but using a stream from a Shoutcast server requires some hands on.

This is how I did the setup for AsteriskNow 1.7 with FreePBX 2.9.

First of all you will need mpg123 from to get the Shoutcast stream from the Shoutcast server.
If you already have gcc on your system you can skip the first step.

yum install gcc
bunzip2 mpg123-1.13.4.tar.bz2
tar xvf mpg123-1.13.4.tar
cd mpg123-1.13.4
make install

Login to admin of your AsteriskNow / FreePBX server and go to Setup -> Music On Hold. Click on Add Streaming Category. Enter the following: 

Category Name:   radio
Application:     /usr/local/bin/mpg123 -q -s -r 8000 -f 8192 -b 2048 --mono
Optional Format: 

Most Shoutcast streams are sampled at 44.100 kHz or 22.050 kHz in stereo. In order to use a stream for MOH in Asterisk it must be converted to 8 kHz mono, hence the parameters -r 8000 -f 8192 and –mono.

The IP-address and port 8000 in the example should be replaced by the real ip-adress (or hostname) and the port number of the Shoutcast server you want to stream from.

In order to test the streaming music-on-hold, the easiest way is to set up a dummy extension (extension 446 in this example).
Edit extensions_custom.conf and add the lines below: 

nano -w /etc/asterisk/extensions_custom.conf

exten => 466,1,Answer
exten => 466,2,SetMusicOnHold(radio)
exten => 466,3,MusicOnHold()
exten => 466,4,Hangup

Save it by pressing CTRL-X and respond Y.

Now login to admin of your AsteriskNow / FreePBX server and go to Tools -> Custom Extensions. Click on Add Custom Extension. Enter the following: 

Custom Extension: 466
Description:      radio

And then click Submit Changes.

Don’t forget to click the orange Submit Configuration Changes in the top of the screen.

If all works as planned you will hear the streaming Shoutcast station when you dial extension 466.

1 reply
  1. Pandiyan
    Pandiyan says:

    I did all the changes but still i am getting an error that when i dial test extension its showing call can not be connected

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published.

4 × 3 =