Instalar los sonidos de Asterisk

Para instalar los sonidos, es necesario conectarse al servidor Asterisk a través de un cliente SSH con el usuario root.

Una vez dentro del servidor, crear el directorio de destino para los archivos de audio.

mkdir /var/lib/asterisk/sounds/es

Descargar el paquete core y extra

cd /var/lib/asterisk/sounds/es
wget -O core.zip https://www.asterisksounds.org:443/es-es/download/asterisk-sounds-core-es-ES-sln16.zip
wget -O extra.zip https://www.asterisksounds.org:443/es-es/download/asterisk-sounds-extra-es-ES-sln16.zip
unzip core.zip
unzip extra.zip
chown -R asterisk.asterisk /var/lib/asterisk/sounds/es
find /var/lib/asterisk/sounds/es -type d -exec chmod 0775 {} \;

Ahora, es necesario configurar el nuevo idioma en el interno que se desee o en el contexto general del protocolo (SIP, IAX2, etc) en el que se quiera utilizar los nuevos sonidos.

Convertir los archivos de sonidos a otros formatos

Es recomendable convertir los archivos de sonido utilizados por Asterisk a cada uno de los formatos (o codecs) seleccionados en la configuración de cada canal. De esta manera, Asterisk no tendrá que convertirlos cada vez que sean requeridos. Para convertir los archivos de sonido, basta crear un simple script:

cd /var/lib/asterisk/sounds/es
vi convert

Pegar las siguientes lineas al archivo convert.

#!/bin/bash
for a in $(find . -name '*.sln16'); do
  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t gsm -r 8k `echo $a|sed "s/.sln16/.gsm/"`;\
  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e a-law `echo $a|sed "s/.sln16/.alaw/"`;\
  sox -t raw -e signed-integer -b 16 -c 1 -r 16k $a -t raw -r 8k -e mu-law `echo $a|sed "s/.sln16/.ulaw/"`;\
done

Por último, dar permisos y ejecutarlo.

chmod +x convert
./convert

Configuración con FreePBX

Para activar los sonidos en distribuciones que utilizan FreePBX, basta modificar el parámetro de la variable language dentro Asterisk SIP Settings. En este caso, colocando es. Si existen internos o líneas IAX2, será necesario configurar el mismo parámetro language ingresando al menú Asterisk IAX Settings.

Cómo busca Asterisk los sonidos en base a la configuración del canal

Cada canal de Asterisk  tiene su configuración de idioma. El valor ingresado en la configuración se divide por cada guión bajo para construir la ruta donde Asterisk buscará los sonidos. Así, Asterisk utilizará el primer archivo que encuentre.

Esto quiere decir que si el valor del parámetro language fuese es_AR_Maria, Asterisk buscará los archivos en:

.../sounds/es_ES_Maria
.../sounds/es_ES
.../sounds/es
.../sounds

Esto hace posible agregar nuevas variantes de un idioma basados en un esquema general.