Predicción del estado de la red VoIP basada en archivos de registro de texto del servidor de aplicaciones SIP

Monitorear el estado de la red de señalización de VoIP es una de las condiciones importantes que permiten al proveedor de UCaaS proporcionar a los clientes un nivel garantizado de calidad de servicios como llamadas de audio y video, recepción y transmisión de fax. Típicamente, dicho control se lleva a cabo utilizando varios sistemas de monitoreo, recolección y análisis de tráfico, análisis CDR. Algunos de los parámetros de la red de señales son bastante difíciles y, a menudo, imposibles de evaluar utilizando los métodos indicados.


Una posible fuente de información importante sobre el estado de una red de señalización VoIP es el Servidor de aplicaciones SIP (SIP AS), uno de los principales elementos involucrados en el procesamiento de llamadas en una red VoIP. Los archivos de registro SIP AS le permiten, entre otras cosas, evaluar los siguientes parámetros de una red de señalización VoIP:


  • Longitud de diálogo SIP
  • El intervalo de tiempo entre enviar una solicitud y recibir una respuesta final (tiempo de solicitud-respuesta, RRT) para varios tipos de solicitudes SIP
  • El número de retransmisiones de mensajes (retransmisiones, RTR) para diferentes tipos de mensajes SIP

No solo los valores de estos parámetros son importantes, sino también la distribución de estos parámetros, así como sus cambios a lo largo del tiempo. La información sobre el cambio en los valores de los parámetros a lo largo del tiempo permite predecir posibles problemas en una red VoIP. Esta información también puede servir como una de las fuentes de datos para varios algoritmos de aprendizaje automático (machine learning, ML), lo que permitirá predecir cambios en los parámetros no solo en función del tiempo, sino también de otros factores.


Dependiendo de la carga de la señal, SIP AS puede generar archivos de registro en formato de texto de hasta varias decenas de GB por día. El análisis de los archivos de texto de dicho volumen es una tarea que requiere muchos recursos. Como una de las opciones posibles, se pueden usar varias herramientas de Python para este análisis. Por ejemplo, la biblioteca Pandas proporciona herramientas bastante convenientes para procesar y analizar diversos datos, en particular, marcos de datos (DF). El código utilizado en este artículo está disponible aquí .
Se sugieren los siguientes pasos para analizar los archivos de registro SIP AS:


  1. Abra el archivo de registro para leer. Si SIP AS creó varios archivos de registro, entonces deberían abrirse en el mismo orden en que fueron creados.
  2. Leer datos línea por línea. Esto es necesario para ahorrar RAM en el caso de trabajar con archivos de unidades de decenas de GB
  3. Resalte los mensajes SIP ubicados entre secuencias específicas de caracteres - delimitadores
  4. Crea una lista de diccionarios. Cada uno de los diccionarios, a su vez, consta de una marca de tiempo (clave) y el mensaje SIP real (valor) en forma de una lista
  5. Guarde esta lista en el disco o en el almacenamiento de red como, por ejemplo, un archivo pickle. Este archivo luego se usará para crear varios DF.
  6. Cree un DF a partir de un archivo pickle guardado que contenga la información necesaria para un análisis posterior (SIP DF)

En este caso particular, se creó un SIP DF que contiene las siguientes columnas:


  • Marca de tiempo: marca de tiempo agregada por SIP AS
  • Call-ID - Call-ID de la conversación SIP
  • CSeq_num, CSeq_meth: datos del encabezado SIP 'CSeq'
  • Dirección: mensaje recibido (Rx <-) o enviado (Tx->), se agrega SIP AS
  • Método SIP: método SIP de SIP Request-Line
  • Src Dst IP: dirección IP desde la que se envió o recibió el mensaje

imagen


Fig. 1. Parámetros de SIP DF obtenidos de un archivo pickle de aproximadamente 3 GB


imagen


Fig. 2. Contenido de SIP DF


Con un SIP DF similar, puede evaluar varios parámetros de una red VoIP de señalización. Todos los ejemplos a continuación se toman de una red VoIP válida. Se han cambiado las direcciones IP y otros datos que pueden proporcionar información sobre la red especificada.


1. La duración del diálogo SIP


imagen
imagen
Fig. 3. Longitud del diálogo DF y SIP


Para cada caso de un diálogo SIP largo, puede encontrar la llamada por el valor de ID de llamada y luego, por registros de texto, analizar el escenario de esta llamada. A pesar del número relativamente pequeño de llamadas cuya duración de la conversación SIP es de decenas a cientos de mensajes, se deben investigar los escenarios de estas llamadas. El estudio de tales llamadas reveló las siguientes fuentes de largos diálogos SIP:


  • Transmisión de varias docenas de grupos de una determinada estructura, que consisten en caracteres DTMF, después del establecimiento de una sesión de voz. Este es un escenario de llamada de voz durante el cual se lleva a cabo la autenticación, autorización e intercambio de información entre los abonados que llaman y los que llaman.
  • Videollamadas durante las cuales se notó una gran cantidad de solicitudes de Solicitud Completa Intra-Frame ( FIR ). Esto, en particular, indica un problema de software del teléfono o pérdida de paquetes RTP durante las videollamadas.

También pueden aparecer cuadros de diálogo SIP largos debido a un mal funcionamiento del equipo VoIP, intentos de seleccionar códigos PIN a través de un menú IVR (enviando una gran cantidad de secuencias DTMF). En cualquier caso, es necesario monitorear el número de largas conversaciones SIP, porque con un aumento en el número de dichos diálogos, puede aparecer una carga de señal inútil adicional en los elementos de la red VoIP.


2. RRT


Se calcula por separado para las solicitudes INFO e INVITE recibidas y enviadas. Tenga en cuenta que al procesar una gran cantidad de llamadas, pueden aparecer los mismos valores CSeq para diferentes diálogos. Se puede suponer que la distribución de los valores RRT debe ser aproximadamente la misma para las solicitudes enviadas, los valores absolutos deben diferir debido al diferente tamaño y contenido de las solicitudes INFO e INVITE y, como resultado, los diferentes tiempos de procesamiento de estas solicitudes por elementos de red.


imagen
Fig. 3. RRT para solicitudes de información recibidas por SIP AS
El aumento en los valores de RRT en este caso indica posibles problemas con la virtualización, un aumento en la carga en SIP AS. Call-ID y CSeq_num le permiten examinar los valores RRT para cada caso.


imagen
Fig. 4. RRT para solicitudes de información enviadas por SIP AS. El RRT en el gráfico está limitado a 500 ms, que es el valor predeterminado para el temporizador SIP T1 .


imagen
Fig. 5. RRT para solicitudes INVITE enviadas por SIP AS. Como se esperaba, la distribución es aproximadamente la misma que para las consultas INFO.


3. RTR


Un parámetro importante que caracteriza el estado de una red de señalización VoIP.


imagen
Fig. 6. El porcentaje de retransmisión de solicitudes INFO e INVITE, respectivamente. Las RTR que ocurren una o más veces se tienen en cuenta.


Además de los ejemplos descritos, se pueden obtener otros datos utilizando DF, por ejemplo:


  • Corregir el equilibrio de carga SIP AS para mensajes salientes. Para hacer esto, debe contar el número de mensajes enviados (Tx) a diferentes direcciones IP (SrcDst IP) usando groupby (). Count () - similar a la función retransmits_counter_tx (). La diferencia en la cantidad de mensajes superiores al 15-20% indica un reparto de carga incorrecto
  • El número de transferencias de llamadas fallidas. Para hacer esto, puede crear un DF separado que contenga solo cuadros de diálogo REFER, así como los encabezados y campos necesarios de los mensajes de estos cuadros de diálogo
  • La dependencia de los parámetros en el tiempo. Si recopila el valor promedio de uno de los parámetros, por ejemplo, RRT, durante varios meses, luego, en función de los datos, puede construir una serie temporal (series temporales, TS). Usando varias bibliotecas para el análisis de TS, por ejemplo, statsmodels, puede determinar la tendencia, la estacionalidad y otros parámetros de TS. Los datos de este pronóstico se pueden usar para ajustar la arquitectura de la red VoIP.

Conclusión


Los archivos de registro de texto SIP AS son una fuente importante de información sobre el estado actual de una red VoIP. Además, los datos obtenidos después del procesamiento apropiado de esta información se pueden usar para predecir el estado de una red VoIP, en particular, utilizando métodos ML.

Source: https://habr.com/ru/post/440458/


All Articles