Mike:
No se si me diste permisos para editar o solo para moderar por que no encuentro un solo menu para agregar esto. lo pongo aqui y si puedes decirme como agregarlo al wiki estare alimentandolo con algunas experiencias propias.
How to starts here
Asterisk 1.2 ya soluciona el problema del mpg123 por lo que este how to es solo para los usuarios de 1.0.x
crear un archivo en /etc/asterisk con nombre rawplayer y poner esto dentro del archivo
y darle permisos de ejecucion
chmod +x /etc/asterisk/rawplayer
despues editamos nuestro /etc/asterisk/musiconhold.conf
nos movemos a nuestro directorio donde tenemos nuestra muscia en espera ( normalmente /var/lib/asterisk/mohmp3) y descargamos
convertmp3 o creamos el archivo con esto dentro
ahora lo ejecutamos asi (necesitamos mpg123 para covertirlos pero ya no se ejecutara con la musica en espera, no se si funcione con mpg321, lo probare y comento)
./convertmp3 mpg123sox ./ ./default
esto nos creara un directorio de nombre default con 3 directorios dentro, mp3, raw y native
nos movemos a default/raw
cd /var/lib/asterisk/mohmp3/default/raw
y renombramos nuestros archivos para que se puedan leer por rawplayer
rename .sln .mp3 *.sln
reiniciamos asterisk, y probamos tratando de entrar a una sala de conferencia para escuchar la musica en espera.
Advertencia: estos pasos funcionaron para mi y me permitieron optimizar mi uso de CPU, pero pueden no funcionar para ti.
Si tu asterisk se rompe te quedas con los pedazos.
No se si me diste permisos para editar o solo para moderar por que no encuentro un solo menu para agregar esto. lo pongo aqui y si puedes decirme como agregarlo al wiki estare alimentandolo con algunas experiencias propias.
How to starts here
Asterisk 1.2 ya soluciona el problema del mpg123 por lo que este how to es solo para los usuarios de 1.0.x
crear un archivo en /etc/asterisk con nombre rawplayer y poner esto dentro del archivo
Código:
#!/bin/sh while [ 1 ]; do for name in $@; do cat $name || exit; #head -c 100000 $name || exit; done done
chmod +x /etc/asterisk/rawplayer
despues editamos nuestro /etc/asterisk/musiconhold.conf
Código:
[classes] default => custom:/var/lib/asterisk/mohmp3/default/raw,/etc/asterisk/rawplayer
convertmp3 o creamos el archivo con esto dentro
Código:
#!/bin/sh help () { SOXMODE="sox" cat << EOF_helpmsg ################### # asterisk Music on hold conversion script by Gavin Hollinger # [url]http://5sn.net/asterisk/rawplayer/[/url] # THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! ################### Syntax: $0 mode [mp3-input-dir] [output-dir] Mode: sox - (recomended) Requires mp3 support (sox -h) [url]http://sox.sourceforge.net/[/url] mpg123sox - security problem as of 2005-02-17 [url]http://www.mpg123.de/[/url] Example: $0 $SOXMODE $MP3INDIR $OUTBASEDIR Will take *.mp3 files in $MP3INDIR convert them and place output in the following folders: mp3 files: $MP3DIR raw files: $RAWDIR native files: $NATIVEDIR EOF_helpmsg exit 1 } convertfiles () { echo "Running in $SOXMODE mode" echo "TESTING/CREATING DIRECTORIES:" if [ -d "$MP3INDIR" ]; then cd "$MP3INDIR"; else echo "INPUT DIR DOES NOT EXIST: $MP3INDIR"; fi for DIR in `echo "$OUTBASEDIR $MP3DIR $NATIVEDIR $RAWDIR"` do if [ ! -d "$DIR" ] then echo "mkdir $DIR" mkdir "$DIR" continue fi echo "Using: $DIR" done echo for FILE in `ls *.mp3 | cut -d "." -f 1` do if [ ! -e "$FILE.mp3" ] # Check if file exists. then echo "$FILE.mp3 does not exist."; echo continue # On to next. fi if [ "$SOXMODE" = "sox" ]; then soxconvertfiles; fi if [ "$SOXMODE" = "mpg123sox" ]; then mpg123soxconvertfiles; fi #echo -n "$FILE " done echo exit 1 } commonconvertfiles () { OUTFILEEXT="$MP3DIR/$FILE.mp3" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $MP3INDIR/$FILE.mp3 $OUTFILEEXT" ln "$MP3INDIR/$FILE.mp3" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi if [ ! -e "$RAWDIR/$FILE.sln" ]; then echo "MISSING FILE: $RAWDIR/$FILE.sln"; exit 0; fi OUTFILEEXT="$NATIVEDIR/$FILE.sln" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $RAWDIR/$FILE.sln $OUTFILEEXT" ln "$RAWDIR/$FILE.sln" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.raw" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $RAWDIR/$FILE.sln $OUTFILEEXT" ln "$RAWDIR/$FILE.sln" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.gsm" if [ ! -e "$OUTFILEEXT" ]; then echo "creating: $OUTFILEEXT" cat "$NATIVEDIR/$FILE.sln" | sox -t raw -r 8000 -s -w -c 1 - -r 8000 -c 1 -w "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.wav" if [ ! -e "$OUTFILEEXT" ]; then echo "creating: $OUTFILEEXT" cat "$NATIVEDIR/$FILE.sln" | sox -t raw -r 8000 -s -w -c 1 - -r 8000 -c 1 -w "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.WAV" if [ ! -e "$OUTFILEEXT" ]; then echo "creating: $OUTFILEEXT" cat "$NATIVEDIR/$FILE.sln" | sox -t raw -r 8000 -s -w -c 1 - -r 8000 -c 1 -b -g "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.wav49" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $NATIVEDIR/$FILE.WAV $OUTFILEEXT" ln "$NATIVEDIR/$FILE.WAV" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.ul" if [ ! -e "$OUTFILEEXT" ]; then echo "creating: $OUTFILEEXT" cat "$NATIVEDIR/$FILE.sln" | sox -t raw -r 8000 -s -w -c 1 - -r 8000 -c 1 -w "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.pcm" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $NATIVEDIR/$FILE.ul $OUTFILEEXT" ln "$NATIVEDIR/$FILE.ul" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.ulaw" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $NATIVEDIR/$FILE.ul $OUTFILEEXT" ln "$NATIVEDIR/$FILE.ul" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi OUTFILEEXT="$NATIVEDIR/$FILE.mu" if [ ! -e "$OUTFILEEXT" ]; then echo "ln $NATIVEDIR/$FILE.ul $OUTFILEEXT" ln "$NATIVEDIR/$FILE.ul" "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi } ################ # NOTES ON VOLUME ADJUSTMENTS FOR SOX AND MPG123 # asterisk quietmp3 mode uses -f 4096 # mpg123 -f scale factor (default: 32768) # sox -v volume factor (default: 1) # 4096/32768=.125 so sox equivalant volume is -v .125 ################ soxconvertfiles () { OUTFILEEXT="$RAWDIR/$FILE.sln" if [ ! -e "$OUTFILEEXT" ]; then echo "creating: $OUTFILEEXT" # sox -V "$FILE.mp3" -r 8000 -s -c 1 -t raw -w "$OUTFILEEXT" sox "$FILE.mp3" -r 8000 -s -c 1 -t raw -w -v .125 "$OUTFILEEXT" lowpass 3700 else echo "NOT REPLACING: $OUTFILEEXT" fi commonconvertfiles } mpg123soxconvertfiles () { OUTFILEEXT="$RAWDIR/$FILE.sln" if [ ! -e "$OUTFILEEXT" ]; then echo "creating: $OUTFILEEXT" mpg123 -s --mono -r 8000 -f 4096 -b 10000 "$FILE.mp3" > "$OUTFILEEXT" else echo "NOT REPLACING: $OUTFILEEXT" fi commonconvertfiles } if [ "$2" = "" ]; then MP3INDIR="/var/lib/asterisk/mohmp3"; else MP3INDIR="$2"; fi if [ "$3" = "" ]; then OUTBASEDIR="/var/lib/asterisk/mohmp3/default"; else OUTBASEDIR="$3"; fi SOXMODE="$1" MP3DIR="$OUTBASEDIR/mp3" NATIVEDIR="$OUTBASEDIR/native" RAWDIR="$OUTBASEDIR/raw" case $SOXMODE in sox) convertfiles exit 1 ;; mpg123sox) convertfiles exit 1 ;; *) help exit 1 ;; esac echo exit 0
./convertmp3 mpg123sox ./ ./default
esto nos creara un directorio de nombre default con 3 directorios dentro, mp3, raw y native
nos movemos a default/raw
cd /var/lib/asterisk/mohmp3/default/raw
y renombramos nuestros archivos para que se puedan leer por rawplayer
rename .sln .mp3 *.sln
reiniciamos asterisk, y probamos tratando de entrar a una sala de conferencia para escuchar la musica en espera.
Advertencia: estos pasos funcionaron para mi y me permitieron optimizar mi uso de CPU, pero pueden no funcionar para ti.
Si tu asterisk se rompe te quedas con los pedazos.
Comentario