Instala Asterisk y Habilita WebRTC en una Raspberry Pi 5 con OS Lite
Inn Col Systems
domingo, 27 de octubre de 2024
TABLA DE CONTENIDOS
¡Bienvenidos a otra guía de Inncol!Hoy te mostraremos cómo instalar Asterisk y habilitar WebRTC en una Raspberry Pi 5 con OS Lite. Esta guía está diseñada para aquellos que desean crear un sistema de comunicación basado en VoIP utilizando tecnología de código abierto. Al final de este tutorial, tendrás un sistema Asterisk completamente funcional capaz de manejar llamadas WebRTC y dispositivos Zoiper.
Requisitos Previos
Para seguir este tutorial, necesitarás los siguientes elementos:Hardware: Una Raspberry Pi 5 con OS Lite (64-bit) instalado.Software: Acceso SSH a la Raspberry Pi, conocimientos básicos de comandos Linux, y una conexión a Internet.Certificados SSL: Para habilitar WebRTC, necesitarás certificados SSL válidos. Puedes usar Let's Encrypt para generar certificados gratuitos.Paso 1: Instalación de Dependencias
Primero, actualiza el sistema y luego instala las dependencias necesarias para compilar Asterisk:sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install -y build-essential autoconf libssl-dev libncurses-dev \ libnewt-dev libxml2-dev libsqlite3-dev uuid-dev libjansson-dev libblocksruntime-dev xmlstarlet libopusfile-dev
Paso 2: Descarga e Instalación de Asterisk 20.10.0
Descarga la versión más reciente de Asterisk y compílalo:cd /usr/src/ sudo wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20.10.0.tar.gz sudo tar zxvf asterisk-20.10.0.tar.gz cd asterisk-20.10.0Instala dependencias adicionales y configura Asterisk:
sudo contrib/scripts/install_prereq install sudo ./configure sudo make menuselectEn `menuselect`, asegúrate de habilitar el soporte para WebRTC:
Codec Opus (codec_opus_open_source) WebRTC Support (res_http_websocket)Continúa compilando e instalando:
sudo make sudo make install sudo make samples
Paso 3: Instalación del Códec Opus para ARM
El códec `codec_opus_open_source` es compatible con la arquitectura ARM y se debe instalar manualmente.Sigue estos pasos para instalar el códec Opus:cd /usr/src/ sudo git clone https://github.com/traud/asterisk-opus.git cd asterisk-opusCopia los archivos del códec a la fuente de Asterisk y aplica el parche:
sudo cp --verbose codecs/* /usr/src/asterisk-20.10.0/codecs/ sudo cp --verbose res/* /usr/src/asterisk-20.10.0/res/ cd /usr/src/asterisk-20.10.0 sudo patch -p1 < ../asterisk-opus/asterisk.patchRecompila Asterisk con el códec Opus:
sudo make sudo make install
Paso 4: Configuración de Asterisk para WebRTC y Opus Codec
Configura Asterisk para habilitar WebRTC y el códec Opus.Configura el archivo `pjsip.conf` para definir los transportes y los endpoints.sudo nano /etc/asterisk/pjsip.confAgrega la siguiente configuración para WebSocket, WebRTC y endpoints:
[transport-ws] type=transport protocol=ws bind=0.0.0.0:8088 [transport-wss] type=transport protocol=wss bind=0.0.0.0:8089 allow_reload=yes method=tlsv1 [transport-tls] type=transport protocol=tls bind=0.0.0.0:5061 ca_list_file=/etc/asterisk/keys/ca.crt cert_file=/etc/asterisk/keys/asterisk.pem priv_key_file=/etc/asterisk/keys/asterisk.key method=tlsv1
Paso 5: Creación de Extensiones SIP y WebRTC
Configura las extensiones para dispositivos Zoiper y WebRTC.[3001] type=aor max_contacts=1 remove_existing=yes qualify_frequency=60 [3001] type=auth auth_type=userpass username=3001 password=secret [3001] type=endpoint aors=3001 auth=3001 context=default disallow=all allow=opus,ulaw rtp_symmetric=yes force_rport=yes rewrite_contact=yes media_use_received_transport=yes dtls_verify=fingerprint dtls_setup=actpass ice_support=yes rtcp_mux=yes [5001] type=aor max_contacts=1 remove_existing=yes qualify_frequency=60 [5001] type=auth auth_type=userpass username=5001 password=secret [5001] type=endpoint aors=5001 auth=5001 webrtc=yes context=default disallow=all allow=opus,ulaw dtls_cert_file=/etc/asterisk/keys/asterisk.pem dtls_private_key=/etc/asterisk/keys/asterisk.key dtls_verify=fingerprint dtls_setup=actpass ice_support=yes media_use_received_transport=yes rtcp_mux=yes force_rport=yes
Paso 6: Configurar la Carga Automática del Códec Opus
Asegúrate de que el códec Opus se cargue automáticamente en el arranque de Asterisk:sudo nano /etc/asterisk/modules.conf load = codec_opus_open_source.so
Paso 7: Generar e Instalar Certificados TLS para WebRTC
Genera los certificados TLS para el cifrado WebRTC:sudo mkdir /etc/asterisk/keys cd /etc/asterisk/keys sudo openssl genpkey -algorithm RSA -out asterisk.key sudo openssl req -new -key asterisk.key -out asterisk.csr sudo openssl x509 -req -days 365 -in asterisk.csr -signkey asterisk.key -out asterisk.pem
Paso 8: Configuración del Firewall y Puertos Necesarios
Abre los puertos necesarios para SIP, WebRTC y HTTP:sudo apt install ufw sudo ufw allow 5060/udp sudo ufw allow 5060/tcp sudo ufw allow 5061/tcp sudo ufw allow 8088/tcp sudo ufw allow 8089/tcp sudo ufw allow ssh sudo ufw enable
Paso 9: Iniciar Asterisk y Pruebas
Inicia Asterisk y verifica que funcione correctamente:sudo systemctl start asterisk sudo asterisk -rvvvVerifica los registros para asegurarte de que no haya errores.
Conclusión
Con esta guía, has instalado Asterisk y habilitado WebRTC en tu Raspberry Pi 5. ¡Felicidades! Ahora puedes explorar funciones avanzadas como la grabación de llamadas, la integración con APIs o la implementación de un sistema completo de comunicación empresarial.© Todos los derechos reservados.
© Inn Col Systems S.A.S. de C.V.