miércoles, 3 de agosto de 2011

Poner música en espera en Asterisk

La aplicación MusicOnHold de Asterisk utiliza ficheros codificados en MP3 o WAV. Si bien esta codificación de audio ofrece una buena calidad esta pensada para ficheros de sonido y no para las telecomunicaciones.

Si tenemos una gran cantidad de llamadas en espera la carga de trabajo del sistema es cada vez mayor, esto es debido a que asterisk tiene que hacer una transcodificación probablemente en la mayoría de llamadas usemos GSM o A-law.

Cuando Asterisk reproduce MOH, siempre busca el formato que menos coste le supone respecto al códec que se está usando. Normalmente transcodificar desde SLIN va a ser la opción más barata, pero si sabemos que nuestro sistema usa principalmente GSM o A-law (en la mayoría de los casos), lo mejor sería hacer la transcodificación del fichero nosotros mismos y evitar esta tarea a Asterisk.

Para ello iremos al directorio donde tenemos la musica en espera y convertiremos los ficheros WAV. Para ello necesitaremos sox, así que si no lo tenemos instalado:

sudo apt-get install sox

Debemos tener los archivos de sonido en formato wav para convertirlos a formato gsm y sln

sox careless.wav -t raw -r 8000 -s -2 -c 1 careless.sln /* Para convertir archivos wav a formato sln */
sox careless.wav -r 8000 careless.gsm resample -ql /* Para convertir archivos wav a formato gsm */

Despues de que obtengas los 2 archivos, pegalos en el server asterisk la ruta es: var/lib/asterisk/moh/
y reinicia la musica en espera desde la consola de asterisk con el comando: moh reload

Saludos desde PayitosLandia

AstroSendero