Dockerizando Asterisk - Instalación manual

Dockerizando Asterisk - Instalación manual

Crearemos dos instancias de Asterisk PBX1 y PBX utilizando contenedores Docker

Para no estar ejecutando sudo docker todo el tiempo crearemos un alias temporal

alias docker='sudo docker'

bien ahora procedemos a descar la imagen de debian para usarla de base para la instalacion de nuestro servidor asterisk

docker run -it --name=demo-asterisk  debian:bullseye

Una vez descargada la imagen de debian estaremos posicionados en el prompt dentro de nuestro contenedor, ahi procedemos a actualizar el sistema base e instalar asterisk y las demas dependencias que vamos a utilizar

apt update; apt upgrade -y; apt -y install asterisk vim sngrep

Una vez instalado asterisk procedemos a editar los siguientes archivos:

[700]
secret=secret
callerid="Marcos" <700>
host=dynamic
rtpstart=10000
rtpend=10010
[public]
;include => demo
exten => 800,1,Answer()
  same => n,Playback(please-try-call-later)
  same => n,Hangup()
udpbindaddr=0.0.0.0:5080

Posteriormente iniciamos el servidor asterisk y nos conectamos a la consola cli para validar que no hay errores

/etc/init.d/asterisk startrasterisk

Ahora, nos detachamos del contenedor utilizando la secuencia de teclas:

ctrl + p + q

Ahora hacemos commit de los cambios que realizamos en la imagen de debian que descargamos y etieutamos la nueva imagen como dev4-asterisk:1.0

docker commit -m "asterisk dentro de debian" -a "demo-asterisk" 77672fdd6b54 dev4-asterisk:1.0

Ahora creamos un contenedor con la nueva imagen que acabamos de crear y lo etiquetamos como PBX1 haciendo enfasis en el mapeo de puertos tanto para se;alizacion como para el flujo de RTP:

docker run -itd --name=PBX1 -p 5062:5060/tcp -p 5062:5060/udp -p 10000-10010:10000-10010/udp dev4-asterisk:1.0

Ahora podemos listar los contenedores que tenemos corriendo

docker ps

Ahora arrancamos el servidor asterisk dentro del contenedor y nos conectamos a la consola asterisk cli

docker exec -it PBX1 /usr/sbin/asteriskdocker exec -it PBX1 /usr/sbin/asterisk -rvvvvv

En otra consola ejectuamos el sngrep para ver la señalizacion del softphone y el flujo de media al hacer la llamada de prueba

docker exec -it PBX1 sngrep

Configuramos nuestro softphone utilizando la siguiente informacion y podemos ver como se registra en nuestra consola de asterisk

sip user: 700@localhost:5062
sip pass: secret

Por ultimo marcamos el numero 800 desde nuestra extension registrada y validamos que se vean los intentos de registro y de llamada tanto en la consola asterisk-cli  como en nuestra captura sngrep


Julio Carranza