Enviado por admin el
Kamailio es un SIP proxy de alto rendimiento ampliamente utilizado en redes VoIP a gran escala. Entre sus múltiples módulos se encuentra dlgs, el cual permite monitorear los diálogos SIP activos, brindando análisis de tráfico y control de recursos. Este artículo explica qué es dlgs, cómo funciona, para qué sirve y cómo se configura correctamente. El módulo dlgs se encarga de seguir el estado de los diálogos SIP dentro de Kamailio, manteniéndolos en estructuras de memoria compartida.
Su enfoque está en ser ligero y eficiente, sin requerir base de datos, y útil para:
-
Visualizar llamadas activas en tiempo real
-
Limitar el número de llamadas concurrentes
-
Integrarse con paneles de monitoreo
-
Auditoría o estadísticas SIP básicas
¿Cómo funciona?
Cada vez que se establece un diálogo SIP (normalmente tras el INVITE -> 200 OK -> ACK), dlgs lo almacena utilizando identificadores clave que pueden ser, por ejemplo, la cabecera call-id, o las banderas presentes en la cabeceras From y To.
Mantiene un estado de vida del diálogo en tres etapas:
-
Inicial (desde la creación hasta que se activa)
-
Activo (una vez que se haya establecido la llamada)
-
Finalizado (tras un BYE o un error)
El módulo se encarga de limpiar automáticamente estos diálogos tras un tiempo que se configura a través de un temporizador
Parámetros de configuración:
loadmodule "dlgs.so"
Y configuras los siguientes parámetros según tus necesidades:
modparam("dlgs", "init_lifetime", 180) # Diálogos iniciales
modparam("dlgs", "active_lifetime", 10800) # Diálogos activos
modparam("dlgs", "finish_lifetime", 10) # Diálogos finalizados
modparam("dlgs", "timer_interval", 30) # Intervalo de limpieza
modparam("dlgs", "hash_size", 9) # Tamaño tabla hash
Ejemplo de uso en el script
Dentro del script de Kamailio si queremos consultar cuántos diálogos activos hay:
if(dlgs_count_active() > 100) {
xlog("L_WARN", "Demasiadas llamadas activas\n");
sl_send_reply("503", "Server Busy");
exit;
}
También se pueden usar comandos RPC para interactuar con el módulo:
kamcmd dlgs.list
kamcmd dlgs.stats
Casos de uso reales
-
Gateways SIP: Limitar la carga de tráfico en función de sesiones vivas
-
Facturación: Obtener eventos de inicio/fin de llamadas
-
Auditoría SIP: Observar patrones de llamadas sin almacenar CDRs
Consideraciones importantes
-
dlgs no almacena información en disco ni base de datos: todo está en memoria de trabajo de Kamailio
-
No genera CDRs ni maneja lógica de sesión como el módulo dialog
-
Es ideal para escenarios donde solo necesitas visibilidad ligera y rápida
Conclusión
El módulo dlgs es una herramienta poderosa y liviana si necesitamos controlar o visualizar el estado de las llamadas SIP en Kamailio. Aunque no tiene la riqueza funcional de dialog, es perfecto para escenarios donde eficiencia y bajo consumo de recursos son clave. En las ultimas versiones de los archivos predefinidos de la configuración de Kamailio, está presente.
Comentarios recientes