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