⏱️ Información de la Presentación
Duración: 45 minutos | Nivel: Intermedio-Avanzado | Modalidad: Teórico-Práctica
En la presentación de “Generalidades”, establecimos una regla fundamental: chan_sip está muerto . Entender las limitaciones del pasado nos ayuda a apreciar el poder del presente.
Los Problemas de chan_sip:
Monolítico y difícil de mantener
Confusión de conceptos (peer, user, type=friend)
Un dispositivo por extensión
Manejo de NAT deficiente y propenso a errores
PJSIP es pjproject: Biblioteca multimedia de comunicación, abierta y muy usada.
Asterisk lo adopta desde v12: Nace chan_pjsip.
Hitos:
Asterisk 13.8.0: empaquetado de pjproject como opción
Asterisk 15.0.0: empaquetado por defecto
Asterisk 22: chan_sip eliminado; PJSIP es la única opción
Imaginemos una línea de ensamblaje:
transport (Muelle de Carga): protocolo y puerto de escucha
auth (Guarda de Seguridad): credenciales y autenticación
aor (Agenda de Contactos): localización y contactos (IPs/puertos)
endpoint (Hoja de Especificaciones): códecs, contexto, CallerID y vínculos a auth/aor/transport
Dimensión chan_sip (legacy) chan_pjsip (actual) Diseño Monolítico Modular (transport/auth/aor/endpoint/identify) Múltiples dispositivos por usuario Limitado Natural vía aor con múltiples contactos NAT Parámetros heredados y frágiles rtp_symmetric, rewrite_contact, force_rport bien definidosSeguridad type=friend ambiguoSeparación clara de roles; ACLs, TLS más simple Extensibilidad Difícil Basado en pjproject con mejoras continuas Configuración Menos verbosa pero poco flexible Verbosa pero con pjsip_wizard.conf muy simple Estado del proyecto Eliminado en Asterisk 22 Único driver SIP soportado
Estabilidad y soporte continuo (respaldado por pjproject).
Manejo de NAT robusto y explícito.
Multi-dispositivo por usuario listo de fábrica.
Wizard reduce errores humanos y acelera despliegues.
Logging y diagnóstico granulares (pjsip set logger ...).
Ejemplo clásico de sip.conf (pasado):
;--- sip.conf (Pasado) ---
El mismo caso en pjsip.conf (presente) modulando objetos:
;--- pjsip.conf (Presente) ---
; Hoja de Especificaciones
auth =auth-1001 ; vincula guardia
aors =1001 ; vincula agenda
password =unaclavemuysegura
El Wizard automatiza la creación de objetos PJSIP con una sintaxis más simple.
Sin Wizard (pjsip.conf): configuración extensa y repetitiva para troncales
Con Wizard (pjsip_wizard.conf):
sends_registrations = yes
remote_hosts = sip.my-itsp.net
outbound_auth/ username = my_username
outbound_auth/ password = my_password
endpoint/ context = from-trunk
* CLI > pjsip set logger on <endpoint_name>
* CLI > pjsip set logger host <ip_address>
# Para detener: pjsip set logger off
permit =203.0.113.5/32 ; IP del proveedor
Fail2Ban y contraseñas fuertes
TLS para señalización cuando sea posible
Arquitectura modular de PJSIP y por qué supera a chan_sip
pjproject como base y el rol de chan_pjsip
Simplificación con pjsip_wizard.conf
Herramientas de troubleshooting y seguridad imprescindibles
🚀 Taller 7 - Troncal SIP y Enrutamiento de Salida
¿Listos para conectar nuestra PBX al mundo? En el próximo taller, usaremos pjsip_wizard.conf para configurar nuestra primera troncal SIP real y crearemos el dialplan para realizar llamadas salientes.
👉 Ir al Taller 7: Troncal SIP y Enrutamiento de Salida