Blog
VoIP

Captura y Análisis de Paquetes SIP con Wireshark y Homer

Aprenda a capturar y analizar paquetes SIP usando Wireshark, sngrep y Homer. Vea ejemplos prácticos de problemas comunes visibles en trazas de red.

SipPulse - Equipo Técnico4 de mayo de 20258 min de lectura
Compartir
Captura y Análisis de Paquetes SIP con Wireshark y Homer

Por que la captura de paquetes es esencial

En operaciones VoIP, cuando algo sale mal, los logs del softswitch no siempre cuentan la historia completa. La captura de paquetes permite ver exactamente lo que se transmitio en la red: cada mensaje SIP, cada paquete RTP, cada respuesta de error. Para ISPs, contact centers y operadoras, dominar el analisis de paquetes es una habilidad fundamental para resolver problemas de forma rapida y definitiva.

La buena noticia es que la plataforma SipPulse fue disenada para facilitar el troubleshooting de senalizacion SIP, ofreciendo logging y trace integrados, ademas de integracion nativa con herramientas de captura como Homer.

Wireshark: la referencia para analisis SIP

Wireshark es la herramienta mas completa para analisis de protocolos de red, incluyendo SIP y RTP. Puede leer capturas hechas localmente o importar archivos pcap de servidores remotos.

Filtros esenciales para SIP

Use estos filtros de visualizacion (display filters) para enfocarse en el trafico relevante:

  • sip - muestra solo paquetes SIP
  • sip.Method == "INVITE" - solo INVITEs (inicio de llamada)
  • sip.Method == "REGISTER" - solo registros de endpoints
  • sip.Status-Code >= 400 - solo respuestas de error (4xx, 5xx, 6xx)
  • sip.Call-ID == "abc123@host" - filtra por una llamada especifica
  • rtp - muestra solo paquetes RTP (media)
  • rtcp - muestra solo paquetes RTCP (reportes de calidad)

Visualizacion de call flow

Wireshark posee una funcionalidad nativa para visualizar el flujo de una llamada SIP. Acceda en Telephony > SIP Flows o Telephony > VoIP Calls. Esta visualizacion muestra la secuencia de mensajes SIP entre los endpoints en formato de diagrama de escalera (ladder diagram), facilitando la identificacion de donde falla la llamada.

Analisis de RTP

Para analizar la calidad del audio, use Telephony > RTP > RTP Streams. Wireshark muestra estadisticas de jitter, perdida de paquetes y delta entre paquetes para cada stream RTP. Incluso puede reproducir el audio capturado para escuchar el problema.

sngrep: analisis SIP en la terminal

sngrep es una herramienta de linea de comandos que captura y muestra trafico SIP en tiempo real en la terminal. Es extremadamente util para troubleshooting rapido en servidores de produccion donde no hay interfaz grafica:

sngrep -d eth0 port 5060

sngrep muestra los mensajes SIP en formato de call flow directamente en la terminal, permitiendo navegar entre llamadas, ver el contenido completo de cada mensaje y filtrar por Call-ID, From, To o metodo SIP.

Instale via gestor de paquetes: apt install sngrep (Debian/Ubuntu) o yum install sngrep (CentOS/RHEL).

Troubleshooting integrado con SipPulse SBC y SoftSwitch

Antes de recurrir a herramientas externas de captura, la plataforma SipPulse ofrece capacidades integradas de troubleshooting que resuelven la mayoria de los escenarios del dia a dia.

Logging y trace en el SipPulse SBC

El SipPulse SBC, con soporte de hasta 4000 llamadas simultaneas y disponible en las variantes UNI, NNI y NNI-CC, ofrece logging detallado de todas las transacciones SIP que pasan por el equipo. Como el SBC esta posicionado en el borde de la red, captura tanto el lado de entrada (upstream) como el lado de salida (downstream) de cada llamada, permitiendo comparar los mensajes SIP en ambos lados e identificar rapidamente donde ocurre la falla.

El soporte a TLS/SRTP en el SipPulse SBC tambien permite inspeccionar la senalizacion de llamadas encriptadas directamente en los logs del equipo, algo que las herramientas de captura pasiva como tcpdump no pueden hacer sin acceso a las claves privadas.

CDRs detallados en el SipPulse SoftSwitch

El SipPulse SoftSwitch, con capacidad de hasta 1000 CAPS y operando como Class 4 y Class 5, genera CDRs completos que incluyen codigos de respuesta SIP, duracion, codec negociado y metricas de calidad. Estos registros permiten identificar patrones de falla (por ruta, horario, destino) sin necesidad de capturar paquetes en la red.

Homer / SIPCAPTURE: captura en produccion con integracion SipPulse

Para ambientes de produccion con alto volumen de llamadas, capturar con tcpdump o Wireshark no escala. Homer (SIPCAPTURE) resuelve este problema con una arquitectura distribuida basada en el protocolo HEP (Homer Encapsulation Protocol).

Como funciona

  1. El softswitch, SBC o proxy SIP envia copias de los mensajes SIP a Homer via HEP (UDP, puerto 9060 por defecto).
  2. Homer almacena los mensajes en una base de datos (PostgreSQL o MySQL).
  3. La interfaz web permite buscar llamadas por numero, Call-ID, fecha/hora y visualizar el call flow.

Integracion nativa SipPulse + Homer via HEP

El SipPulse SBC y el SipPulse SoftSwitch estan construidos sobre OpenSIPS, que soporta el protocolo HEP nativamente. Esto significa que la integracion con Homer es directa y no requiere agentes o probes adicionales en la red. Basta configurar el envio de HEP en los productos SipPulse para que todos los mensajes SIP sean automaticamente replicados hacia Homer.

En la practica, la configuracion involucra solo habilitar el modulo proto_hep de OpenSIPS y definir la direccion del servidor Homer. El SipPulse SBC y el SoftSwitch ya incluyen esta capacidad, haciendo que la implantacion de Homer sea significativamente mas simple que con plataformas que requieren captura externa via port mirroring o agentes separados.

Ventajas de Homer con SipPulse

  • Sin impacto en el trafico de produccion: HEP envia copias, no intercepta el trafico original.
  • Busqueda retroactiva: como todos los mensajes se almacenan, es posible investigar problemas que ocurrieron horas o dias atras.
  • Correlacion de sesiones: Homer correlaciona mensajes del SipPulse SBC y SoftSwitch en una unica visualizacion de call flow, mostrando la llamada de extremo a extremo.
  • Integracion nativa: OpenSIPS (el motor detras de los productos SipPulse) soporta HEP nativamente, sin necesidad de probes o agentes adicionales.
  • Visibilidad completa: combinando los logs integrados de los productos SipPulse con la captura de Homer, las operadoras tienen visibilidad total sobre la senalizacion SIP en toda la infraestructura.

tcpdump: captura remota

Cuando necesita capturar trafico en un servidor remoto para analizar localmente en Wireshark, use tcpdump:

tcpdump -i eth0 -w /tmp/captura.pcap port 5060 or portrange 10000-20000

Este comando captura todo el trafico SIP (puerto 5060) y RTP (puertos 10000-20000). Transfiera el archivo pcap a su estacion de trabajo y abralo en Wireshark.

Para capturas largas, limite el tamano del archivo con -c (numero de paquetes) o -G (rotacion por tiempo):

tcpdump -i eth0 -w /tmp/captura_%Y%m%d_%H%M%S.pcap -G 3600 -c 100000 port 5060

Problemas comunes visibles en trazas

401/407 - Falla de autenticacion

Secuencia: INVITE > 407 Proxy Authentication Required > ACK > INVITE (con credenciales) > 401 Unauthorized. Indica contrasena incorrecta o usuario no registrado. Verifique las credenciales en el softswitch. En el SipPulse SoftSwitch, los logs detallan el motivo exacto del rechazo de autenticacion.

503 - Service Unavailable

El softswitch o SBC retorna 503 cuando no puede procesar la llamada (sobrecarga, rutas no disponibles, licencias agotadas). En el SipPulse SBC, verifique el nivel de utilizacion (el equipo soporta hasta 4000 llamadas simultaneas) y la disponibilidad de las rutas configuradas.

Audio unidireccional (one-way audio)

En la traza, observe el SDP del INVITE y del 200 OK. Si las direcciones IP en el campo c= del SDP son direcciones privadas (10.x, 172.16-31.x, 192.168.x), el problema es de NAT. El RTP se esta enviando a una IP que no es alcanzable por el otro lado. El SipPulse SBC resuelve este problema de forma nativa, realizando NAT traversal automatico para senalizacion y media. El soporte a WebRTC y STIR/SHAKEN en el SBC tambien aborda escenarios modernos de travesia de NAT.

Codec mismatch

Compare la lista de codecs en el SDP del INVITE con la respuesta en el 200 OK. Si no hay codec en comun, la llamada sera rechazada con 488 Not Acceptable Here. El SipPulse SBC puede configurarse para realizar transcodificacion entre codecs, eliminando problemas de incompatibilidad entre diferentes redes.

Timeout y llamadas sin respuesta

Si el INVITE se envia pero no hay respuesta (ni 100 Trying), el problema puede ser de conectividad de red, firewall bloqueando el puerto SIP o el servidor de destino fuera de servicio. Use ping y traceroute para verificar la conectividad. Los logs del SipPulse SBC muestran claramente cuales INVITEs no recibieron respuesta y a cual destino fueron enviados.

Buenas practicas de captura

  1. Capture siempre con timestamp preciso (-tt en tcpdump).
  2. Incluya tanto el trafico SIP como el RTP en las capturas de troubleshooting.
  3. Etiquete y almacene capturas con fecha, hora y descripcion del problema.
  4. En produccion, implemente Homer con HEP integrado al SipPulse SBC y SoftSwitch para captura continua sin impacto en el rendimiento.
  5. Proteja los archivos de captura, ya que pueden contener datos sensibles (contrasenas en REGISTER, por ejemplo).
  6. Use los logs integrados de SipPulse como primera linea de investigacion antes de recurrir a la captura de paquetes en la red.

Referencias

#SIP#Wireshark#Homer#troubleshooting#VoIP

Artículos Relacionados