Configuración de Asterisk y WebRTC en Raspberry Pi 5
Desarrollo

Instala Asterisk y Habilita WebRTC en una Raspberry Pi 5 con OS Lite

Publicado: 27 de octubre de 2024
Actualizado: 28 de octubre de 2024
Por Inn Col Systems

¡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.

Instala Asterisk y Habilita WebRTC en una Raspberry Pi 5 con OS Lite

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.0

Instala dependencias adicionales y configura Asterisk:

sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make menuselect

En `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-opus

Copia 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.patch

Recompila 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.conf

Agrega 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 -rvvv

Verifica 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.

Compartir:
I

Escrito por

Inn Col Systems

Especialista en Tecnología · Inn Col Systems

Equipo de ingeniería de Inn Col Systems — fábrica de software en México especializada en desarrollo a medida, automatización fiscal y arquitectura frontend enterprise.

¿Necesitas ayuda con tu proyecto?

En Inn Col Systems transformamos empresas con software a medida. Contáctanos para una consultoría gratuita.

También te puede interesar

Más artículos sobre tecnología y negocios

¿Quieres desarrollar una App Móvil? Aquí te decimos lo que nadie más te dice
Desarrollo
26 de febrero de 2026
5 min

¿Quieres desarrollar una App Móvil? Aquí te decimos lo que nadie más te dice

Deja de preocuparte por el código y empieza a preocuparte por el negocio. Te revelamos la verdad detrás del desarrollo de apps que la mayoría de agencias prefiere callar.

Frontend vs Backend: ¿Por qué uno evolucionó más rápido que el otro?
Desarrollo
24 de febrero de 2026
5 min

Frontend vs Backend: ¿Por qué uno evolucionó más rápido que el otro?

Descubre por qué el frontend evolucionó a una velocidad aceledara mientras el backend se mantuvo estable durante años. Exploramos esta desigualdad en el desarrollo web y cómo la inteligencia artificial está preparando la próxima gran revolución del lado del servidor.

¿Cambiar o implementar un sistema? Aspectos que debes evaluar antes de decidir
IA & ML
27 de enero de 2026
5 min

¿Cambiar o implementar un sistema? Aspectos que debes evaluar antes de decidir

Análisis de los principales aspectos que se deben considerar antes de implementar o sustituir un sistema en una organización.