Asterisk mpg123 faking it

How to replace MPG123 with SOX for musiconhold


Note: Asterisk 1.2 has solved the "mpg123 issue" and comes with a cleaner solution, so what is described below essentially is only of interest for Asterisk 1.0.x users.

As an alternative to using mpg123 you can use sox to convert a wav file into the right format for asterisk and use cat to "play" the file

Example with converted files if you do not want to install mpg123 or sox
Note: If the rawplayer method is not playing back any music, try adding ".mp3" to the end of the .raw filenames.

sox -V moh.wav -r 8000 -c 1 -w moh.raw


You could use audacity (open the mp3 then File -> Export as WAV...) or xmms to convert the mp3 to wav

  • Option 1: Hacking mpg123 and playing a single file
Then make a file called /usr/local/bin/mpg123 with the following contents

#!/bin/sh
while [ 1 ]; do cat /path/to/moh.raw || exit; done

I think you need to uncomment the default line in the sample musiconhold config for Asterisk to try and launch mpg123

  • Option 2: Use custom mode in musiconhold.conf and use rawplayer script
The musiconhold configuration includes a "custom" mode that lets you specify the program to run in order to play your (faked) mp3's. We can use this to run our own "rawplayer" instead of mpg123.
Put something like this in musiconhold.conf:

[classes]
default => custom:/var/lib/asterisk/mohmp3/default,/usr/bin/rawplayer
classic => custom:/var/lib/asterisk/mohmp3/classic,/usr/bin/rawplayer


Then make an executable file /usr/bin/rawplayer like this:

#!/bin/sh
for name in $@; do
cat $name ;
done


And finally convert your mp3 files to raw as stated above an place them in subdirectories default an classic under /var/lib/asterisk/mohmp3 and (VERY IMPORTANT!) rename them from *.raw to *.mp3 (as Asterisk expect they are named that way):

# cd /var/lib/asterisk/mohmp3/default
# rename .raw .mp3 *.raw


Now restart Asterisk and you have your "default" and "classic" music available with less cpu load.

See Also



Asterisk | Tips & Tricks | FAQ

How to replace MPG123 with SOX for musiconhold


Note: Asterisk 1.2 has solved the "mpg123 issue" and comes with a cleaner solution, so what is described below essentially is only of interest for Asterisk 1.0.x users.

As an alternative to using mpg123 you can use sox to convert a wav file into the right format for asterisk and use cat to "play" the file

Example with converted files if you do not want to install mpg123 or sox
Note: If the rawplayer method is not playing back any music, try adding ".mp3" to the end of the .raw filenames.

sox -V moh.wav -r 8000 -c 1 -w moh.raw


You could use audacity (open the mp3 then File -> Export as WAV...) or xmms to convert the mp3 to wav

  • Option 1: Hacking mpg123 and playing a single file
Then make a file called /usr/local/bin/mpg123 with the following contents

#!/bin/sh
while [ 1 ]; do cat /path/to/moh.raw || exit; done

I think you need to uncomment the default line in the sample musiconhold config for Asterisk to try and launch mpg123

  • Option 2: Use custom mode in musiconhold.conf and use rawplayer script
The musiconhold configuration includes a "custom" mode that lets you specify the program to run in order to play your (faked) mp3's. We can use this to run our own "rawplayer" instead of mpg123.
Put something like this in musiconhold.conf:

[classes]
default => custom:/var/lib/asterisk/mohmp3/default,/usr/bin/rawplayer
classic => custom:/var/lib/asterisk/mohmp3/classic,/usr/bin/rawplayer


Then make an executable file /usr/bin/rawplayer like this:

#!/bin/sh
for name in $@; do
cat $name ;
done


And finally convert your mp3 files to raw as stated above an place them in subdirectories default an classic under /var/lib/asterisk/mohmp3 and (VERY IMPORTANT!) rename them from *.raw to *.mp3 (as Asterisk expect they are named that way):

# cd /var/lib/asterisk/mohmp3/default
# rename .raw .mp3 *.raw


Now restart Asterisk and you have your "default" and "classic" music available with less cpu load.

See Also



Asterisk | Tips & Tricks | FAQ
Created by: stan, Last modification: Tue 08 of Nov, 2005 (09:19 UTC) by JustRumours
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+