Hoy proponemos una breve introducción a dos herramientas esenciales para el diagnóstico de llamadas VoIP, que se ejecutan en un sistema Linux, en este mini tutorial sobre un sistema CentOS. Nosotros en nuestro servicio y centralitas de telefonía IP, lo usamos como si fuera nuestra navaja Suiza.
Uno de los problemas típicos que nos encontramos en la telefonía IP es la baja calidad de la llamada o las llamadas entrecortadas, ecos… Con el paso del tiempo y de la experiencia vamos superando obstáculos, los cuales en un futuro luego ya tenemos en cuenta, y aplicamos las correcciones necesarias para evitarlos.
Cuando nos encontramos con estas casuísticas tenemos que a determinar de dónde proviene el problema, ya que hay muchas situaciones y puede venir desde diferentes puntos.
La primera herramienta que explicaremos es el conocido tcpdump, el cual nos permite analizar el tráfico que circula por la red. Con esta capturaremos el tráfico para posteriormente analizarlo con Wireshark, también muy conocida. Esta herramienta nos permite visualizar gráficamente los resultados, además contiene otras características muy interesantes para el análisis y diagnóstico de llamadas VoIP.
Capturando paquetes con tcpdump
Para capturar los paquetes ejecutamos el siguiente comando:
tcpdump -i any -s0 -w test_captura.pcap
-i any: realtzamos la captura para todas las interfícies
-s0: con el que estamos diciendo que no queremos límite de medida en los paquetes a capturar.
-w: indicamos que la captura se guarde en un fichero determinado.
-i any : vamos a realizar la captura para todas las interfaces.
-s0 : con el 0 estamos diciendo que no queremos ningún límite de tamaño de paquete a capturar.
-w : indicamos que la captura se va a guardar en un fichero en concreto.
Cuando queramos parar la captura pulsamos “CLTR+C”
Dependiendo de la infraestructura y de la cantidad de paquetes que tengamos, nos va a interesar más acotar la captura para no tener tantos paquetes. Podéis hacer la prueba para ver la diferencias entre las dos opciones cuando vayáis a abrir el archivo con Wireshark.
Como en el ejemplo teórico estamos queriendo hacer un diagnóstico de una llamada, vamos a capturarla, así nos será mucho más liviano su posterior análisis. En este caso, suponemos que la extensión son paquetes SIP e introducimos el puerto en cuestión:
tcpdump -i eth0 -s0 -w test_captura.pcap UDP port 5060 and host XXX.XXX.XXX.XXX
Una vez realizada la captura, la importamos con Wireshak. File/Open y seleccionamos “test_captura.pcap”
Podemos observar todos los paquetes capturados por tcpdump. Nos dirigimos a la pestaña del menú Telephony/VoIP Calls:
Vemos la llamada capturada desde la extensión 1002 a la 1001, para escuchar la calidad de la llamada es tan sencillo como seleccionarla y clicar en Play Streams.
El Flow Sequence nos puede proporcionar información muy interesante: en este apartado podemos ver toda la trazabilidad de la llamada secuencialmente. Incluso si seleccionamos cualquier etapa podemos ver en el panel general todo el detalle del paquete capturado.
Como podéis ver en el apartado Telephony, tenemos herramientas muy interesantes para el estudio y diagnóstico de nuestras llamadas. No obstante, con las que hemos comentado con anterioridad y la de transmisiones de RTP (RTP Streams), podemos hacer un buen estudio y diagnóstico de posibles problemáticas que se nos presenten.