Tras probar Asterisk 16, siendo versión estable, aun no he conseguido hacerlo funcionar con los troncales.
Por tanto aun seguimos utilizando como estable la versión 13.
Hace unos días, al actualizar el Kernel de la Raspberry, tuve la mala suerte de que no hiciese la actualización correcta, perdiendo todo el trabajo y teniendo que reinstalar de nuevo todo otra vez.
Por ello, decidí implementar la instalación de Asterisk, inlcuyendo el PJPROJECT dentro de la compilación de Asterisk en vez de aparte.
El siguiente proyecto sera copiar la SD para tener un Backup, pero por ahora no funciona correctamente.
Así que empezamos!
Inicialmente instale la versión de Raspbian mas actual, concretamente la RASPIAB STRETCH LITE.
https://www.raspberrypi.org/downloads/raspbian/
El programa que uso para grabar la imagen en la SD es Etcher, solo seleccionamos imagen, destino y adelante.
Posteriormente y antes de nada se configura la región, teclado e idioma con el comando
# raspi-config
Aquí podemos ver como se configura este menu en castellano: Configuración básica Raspbian
Dentro del mismo habilitamos el soporte SSH y configuramos el idioma.
Posteriormente habilitamos el acceso de root por este método.
Para ello vamos a modifica el archivo sshd_config:
# cd /etc/ssh
# nano sshd_config
Vamos a la linea #PermitRootLogin without-password y la cambiamos por PermitRootLogin yes
Recordad, que para guardar con nano, pulsamos Ctrl+O y aceptamos, posteriormente salimos con Ctrl+X.
Reiniciamos la raspberry:
# Reboot now
También modifico las contraseñas con # passwd. Tanto la de pi, como la de root, para la que haremos # sudo su, y posteriormente # passwd.
Además actualizaremos el sistema con los siguientes comandos:
# sudo apt-get -y update
# sudo apt-get -y upgrade
# sudo rpi-update
Ahora ya podemos instalar nuestro Asterisk!
# cd /usr/src
# wget -c "http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-13.21.0.tar.gz"
# tar xvfz asterisk-13.21.0.tar.gz
# cd asterisk-13.21.0/contrib/scripts
# ./install_prereq install
# cd /usr/src/asterisk-13.21.0
# ./configure --with-pjproject-bundled
Ahora entraremos al menu de instalación de Asterisk, comprobaremos que esta el proyecto PJSIP y añadiremos los módulos que queramos.
# make menuselect
# make && make install
Se instala una mínima versión de Asterisk con PJSIP
# make basic-pbx
Es importante realizar el siguiente comando ya que sin el Asterisk puede no arrancar desde el inicio y fallará:
# make config
Aprovechamos para instalar el Codec G729:
Instalamos las dependencias mínimas
# apt-get install build-essential
# apt-get install dh-autoreconf
Después vamos a instalar la librería correspondiente a la version de compilación del codec. En este caso es la Bcg720 1.0.2 ya que la anterior nos da errores con la nueva version de codec.
# cd /usr/local/src
# wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.2.tar.gz
# tar xzf bcg729-1.0.2.tar.gz
# cd bcg729-1.0.2
# ./configure --libdir=/lib
# make
# make install
Ahora si propiamente dicho, vamos a instalar el codec:
# cd /usr/local/src
# wget http://asterisk.hosting.lv/src/asterisk-g72x-1.4.3.tar.bz2
# tar -jxvf asterisk-g72x-1.4.3.tar.bz2
# cd asterisk-g72x-1.4.3
# ./autogen.sh
# ./configure CFLAGS='-march=armv6' --with-asterisk130 --with-bcg729 --with-asterisk-includes=/usr/include
# make
# make install
Ahora vamos a proceder a instalar las voces en castellano.
Para ello inicialmente creamos la carpeta correspondiente
# mkdir /var/lib/asterisk/sounds/es
Descargamos los paquetes core y extra:
# cd /var/lib/asterisk/sounds/es
# wget -O core.zip https://www.asterisksounds.org/es-es/download/asterisk-sounds-core-es-ES-sln16.zip
# wget -O extra.zip https://www.asterisksounds.org/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 {} \;
Descargamos la aplicacion SOX:
# apt-get install sox
Y ahora creamos el archivo que ejecutara la conversión
# cd /var/lib/asterisk/sounds/es
# nano convert
Pegamos el siguiente script y guardamos:
#!/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
Ahora ejecutamos el script
# chmod +x convert
# ./convert
Reiniciamos
# reboot
Ya tenemos instalado Asterisk de nuevo!!