Esta web utiliza cookies, puedes ver nuestra la política de cookies, aquí Si continuas navegando estás aceptándola
Política de cookies +

Diagnóstico de Problemas en Asterisk con sngrep: Una Odisea Humorística

Si alguna vez has sentido que diagnosticar problemas en Asterisk es como buscar las llaves en una piscina olímpica llena de pirañas, te presentamos sngrep: el visor de trazas SIP que hará que tu vida sea (ligeramente) menos miserable y mucho más entretenida.

¿Qué demonios es sngrep?

sngrep es la navaja suiza de los administradores de VoIP: te permite ver, en tiempo real o desde capturas, todo el tráfico SIP que pasa por tu servidor, con diagramas de flujo tan bonitos que dan ganas de imprimirlos y pegarlos en la nevera. Sirve para:

Instalación exprés (sin dolor)

Instalar sngrep es tan fácil que hasta tu cuñado podría hacerlo:

yum install sngrep
# o en Debian/Ubuntu
apt install sngrep
    

Si necesitas el repo extra, consulta la documentación oficial. No queremos que este artículo se convierta en un tutorial de 500 páginas.

¡A capturar se ha dicho!

Para ver la magia en acción, simplemente ejecuta:

sngrep

Verás aparecer una lista de llamadas SIP como si fueran Pokémon esperando ser atrapados. Cada fila es un diálogo SIP, con información útil como origen, destino, y método usado. Para centrarte solo en llamadas (y no en registros aburridos), puedes usar:

sngrep -c

¿Quieres guardar lo que ves para torturarte después? Usa:

sngrep -O captura.pcap

Filtrando el caos

Si tu red es tan ruidosa como una fiesta de cumpleaños infantil, filtra por puerto SIP:

sngrep port 5060 and udp

Dentro de sngrep, pulsa / para buscar cadenas, o f para aplicar filtros avanzados. Si te pierdes, h siempre muestra la ayuda contextual.

Ejemplo de uso: Diagnóstico de una llamada fallida por negociación de codec

Imagina que tu jefe te llama, furioso, porque "no se oye nada" al marcar a la extensión 101. Tú, con cara de póker, abres sngrep y ves el siguiente flujo SIP:

INVITE sip:101@asterisk.local SIP/2.0
  ...
  m=audio 12345 RTP/AVP 18 0 8
  a=rtpmap:18 G729/8000
  a=rtpmap:0 PCMU/8000
  a=rtpmap:8 PCMA/8000
...
200 OK
  ...
  m=audio 54321 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
    

¿Qué ha pasado aquí? El INVITE ofrece varios códecs (G729, PCMU, PCMA), pero el 200 OK solo responde con PCMU. Si tu teléfono solo soporta G729 y Asterisk responde con PCMU, la llamada se establece, pero el audio es como el silencio de una biblioteca a las 3 de la mañana.

Diagnóstico: Negociación de códec fallida. ¡A revisar los códecs permitidos en sip.conf y en el endpoint!

Debug de RTP: ¿Dónde está mi voz?

sngrep no solo muestra la señalización SIP, sino que también te ayuda a identificar problemas de RTP (la voz en sí). Si ves que la llamada se establece pero nadie escucha nada, probablemente el RTP esté perdido en el Triángulo de las Bermudas digital.

En el flujo SIP, busca las líneas m=audio y los puertos asignados. Si el INVITE dice:

m=audio 12345 RTP/AVP 0
    

Y el ACK responde con otro puerto, pero no ves tráfico RTP entre esos puertos (puedes comprobarlo con tcpdump udp port 12345), tienes un problema de NAT o de firewall. A veces, el audio va en una sola dirección, o simplemente no va.

Solución: Revisa la configuración de NAT en Asterisk y en los endpoints. Y recuerda abrir los puertos correctos en el firewall, a menos que quieras seguir jugando al escondite con los paquetes RTP.

Consejos de supervivencia con sngrep

Conclusión

sngrep es tu mejor aliado para diagnosticar problemas en Asterisk: desde negociaciones de códecs fallidas hasta misterios de RTP. Y si todo falla, siempre puedes usarlo para impresionar a tus colegas con diagramas de flujo que parecen arte moderno.

¡Feliz caza de bugs y que el SIP esté siempre de tu lado!

Capa Tres Soluciones Tecnológicas es una empresa registrada en la CNMC como operador de telecomunicaciones.

Capa Tres Soluciones Tecnológicas S.L. CIF B63846984. Avda Dolça de Provença, 117. 08629 Torrelles de Llobregat (Barcelona). Teléfono 935605424. Email comercial@capatres.com. Colloquor es una marca comercial registrada.