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:bullseyeUna 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 sngrepUna vez instalado asterisk procedemos a editar los siguientes archivos:
[700]
secret=secret
callerid="Marcos" <700>
host=dynamicrtpstart=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:5080Posteriormente iniciamos el servidor asterisk y nos conectamos a la consola cli para validar que no hay errores
/etc/init.d/asterisk startrasteriskAhora, nos detachamos del contenedor utilizando la secuencia de teclas:
ctrl + p + qAhora 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.0Ahora 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.0Ahora podemos listar los contenedores que tenemos corriendo
docker psAhora 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 -rvvvvvEn 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 sngrepConfiguramos nuestro softphone utilizando la siguiente informacion y podemos ver como se registra en nuestra consola de asterisk
sip user: 700@localhost:5062
sip pass: secretPor 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