Ir al contenido

Cómo levantamos nuestro servicio VoIP con Asterisk y Odoo

Guía técnica de nuestra implementación de VoIP interna usando Asterisk 21, WebRTC y la integración nativa de Odoo
19 de agosto de 2026 por
Cómo levantamos nuestro servicio VoIP con Asterisk y Odoo
Pedro Arroyo
| Sin comentarios aún

Introducción

En TierraNube decidimos implementar un servicio VoIP interno para nuestro equipo. El objetivo: poder hacer y recibir llamadas telefónicas directamente desde Odoo, sin necesidad de software adicional, usando un softphone integrado en el navegador.

Aquí compartimos cómo lo logramos, la arquitectura elegida y los pasos que seguimos.

Arquitectura general

La solución se compone de tres pilares:

  • Asterisk 21 como servidor PBX sobre una instancia EC2 (Debian 12 ARM64)
  • Twilio como proveedor SIP trunk para conectividad con la red telefónica pública
  • Odoo con su módulo VoIP nativo, conectado vía WebSocket (WSS)

Paso 1: Instancia EC2 para Asterisk

Utilizamos una instancia t4g.nano. Es una instancia de bajo costo ideal para PBX con tráfico moderado.

En el grupo de seguridad habilitamos los puertos estándar de VoIP: SIP, SIP TLS, WebSocket, HTTP/HTTPS y un rango UDP para el media stream (RTP). Todo siguiendo las mejores prácticas de seguridad con acceso restringido por IP cuando es posible.

Paso 2: Compilación de Asterisk 21

Compilamos Asterisk 21 desde fuente con soporte completo para WebRTC:

./configure --with-pjproject-bundled --with-jansson-bundled
make menuselect  # Habilitar módulos WebSocket
make -j$(nproc)
make install
make samples

Los módulos clave que quedan habilitados:

  • res_http_websocket.so — Soporte WebSocket
  • res_pjsip_transport_websocket.so — Transporte WSS para PJSIP
  • chan_websocket.so — Canal WebSocket

Paso 3: Configuración de PJSIP y transports

Configuramos tres transports simultáneos:

  • UDP — Para llamadas SIP tradicionales
  • TLS — Para SIP seguro
  • WSS — Para softphones WebRTC desde el navegador

Las extensiones se definen con templates reutilizables para mantener consistencia:

[endpoint-template](!)
type=endpoint
disallow=all
allow=ulaw,alaw,opus
direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes

Paso 4: Certificado TLS con Let's Encrypt

Para que el softphone del navegador funcione sin advertencias de seguridad, necesitamos un certificado válido. Usamos Let's Encrypt con certbot:

  • Crearamos un registro DNS apuntando al servidor
  • Ejecutamos certbot en modo standalone
  • Configuramos un hook de renovación automática que copia los certificados a Asterisk y reinicia el servicio

Paso 5: Integración con Odoo

Odoo 19 trae un módulo VoIP nativo que usa WebRTC. La configuración es directa:

  1. En Configuración → VoIP → Providers, configuramos el provider apuntando al servidor Asterisk
  2. En cada Usuario → pestaña VoIP, asignamos la extensión SIP y credenciales
  3. El softphone aparece como widget en la esquina inferior de Odoo

Paso 6: Proveedor SIP (Twilio)

Para llamadas a la red telefónica pública, configuramos un trunk con Twilio:

  • Número DID nacional chileno para llamadas entrantes
  • Identificación de IPs de Twilio para seguridad del trunk
  • Webhook configurado para recibir llamadas entrantes

Twilio cobra por minuto de uso, sin compromiso mensual. Ideal para volumen bajo de llamadas.

Paso 7: AMI para replicabilidad

Una vez configurado todo, creamos una AMI (Amazon Machine Image) de la instancia. Esto nos permite:

  • Levantar nuevas instancias idénticas para clientes
  • Mantener un backup de la configuración funcional
  • Escalar el servicio rápidamente

Resultado

El equipo ahora puede:

  • Hacer y recibir llamadas desde el navegador dentro de Odoo
  • Llamadas internas entre extensiones sin costo
  • Llamadas externas vía Twilio con tarifas competitivas
  • Registro de llamadas en el chatter de contactos de Odoo

Conclusiones

La combinación de Asterisk + Odoo + Twilio es una solución robusta y económica para PyMEs en Chile. La integración nativa de Odoo con WebRTC elimina la necesidad de softphones externos y la experiencia de usuario es fluida.

Si necesitas implementar VoIP en tu instancia Odoo, contáctanos.

Compartir
Identificarse dejar un comentario