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!!