Icono del sitio Sinologic

Cómo medir la calidad de una llamada

altispace-main-screen-3
Cuando trabajamos con VoIP, somos conscientes de que estamos trabajando con una tecnología digital, formada por un flujo de datos dedicado a señalización, y otro flujo de datos dedicado a media esto es: audio, vídeo, archivos, etc. Todo es digital por lo que el ruido electromagnético que suele afectar a la información transmitida por líneas analógicas no nos afecta en este caso, y además es IP, de manera que en cada dispositivo inteligente routers, switches, etc, existen herramientas de verificación de datos que comprueban que lo que entra por un puerto, sale por otro exactamente igual y en el menor tiempo posible. No obstante, hay motivos por los que, durante una conversación, nos interesa conocer la calidad de audio a fin de descubrir fallos, problemas y ponerles solución.

El 80% de las veces, los errores de audio suelen ser debido a problemas de calidad de servicio o ancho de banda insuficiente. Generalmente esto se soluciona configurando QoS en el router, separando las redes de VoIP y la de datos a fin de que «las actualizaciones de windows no se coman el ancho de banda de una llamada». un 5% de las veces suele ser por problemas con auriculares de mala calidad (micrófonos demasiado cerca de la boca, lo que provoca un volumen excesivo y ruidos propios del movimiento de la boca que son capturados por el micrófono).

Imagina que estás trabajando, haces una llamada y esta se escucha entrecortado… ¿por qué ocurre? ¿cómo se puede solucionar? seguramente diremos que es por falta de ancho de banda, o algún cuello de botella pero, ¿ y si no es eso?.

Necesitamos medir la calidad de una llamada a fin de garantizar que las conversaciones tienen la calidad mínima exigible. Esa medición debe ser objetiva y comprobable, de ahí que tengamos que adentrarnos en un tema nuevo.

Para medir la calidad de una llamada tenemos que conocer algunos conceptos clave en el mundo de las comunicaciones VoIP:

Una vez aclarados estos conceptos y problemas, tenemos que ver cómo medir la calidad de una conversación VoIP y para ello haremos uso del «Protocolo RTCP»

Protocolo RTCP

El protocolo RTCP (RealTime Control Protocol) lleva, como su nombre indica, un control sobre el tráfico Realtime, de manera que analizando el tráfico RTCP podemos ver muchos factores que afectan a la calidad de audio. En Asterisk podemos obtener esta información de cada llamada habilitando el debug del RTCP:

rtcp set debug on

Tras este comando, empezaremos a ver paquetes de este tipo:

SSRC of sender: 698304002
NTP timestamp: 2085979081.0338186240
RTP timestamp: 2072023812
SPC: 29242 SOC: 4678720
Fraction lost: 0
Packets lost so far: 0
Highest sequence number: 25818
Sequence number cycles: 1
Interarrival jitter: 0.0032
Last SR(our NTP): 0.0000000000
DLSR: 0.0000 (sec)
RTT: 0.3180(sec)

Para entender algunos datos, hay que saber qué significan algunos campos:

Packets lost: Son los paquetes perdidos. Si está a cero significa que no hay paquetes perdidos por lo tanto, el audio es correcto: Todos los paquetes enviados han sido recibidos.

RTT (Round Trip Time): Viene a ser la latencia. Esto suele tener un valor constante (entre el timestamp del emisor y el timestamp del receptor). Si esta latencia varía, se transforma en el Jitter que hemos comentado antes.

Interarrival Jitter: La variación de la latencia utilizando para ellos los últimos paquetes enviados y recibidos. El jitter se mide en tiempo. Para entenderlo: si todos los paquetes enviados en el segundo 1, son recibidos en el segundo 4, la latencia es (4-1) 3, y el jitter es 0. Ahora bien, si la latencia es 3, la siguiente es 4, la siguiente es 5, la siguiente es 6,… el jitter es 1. Por suerte, el jitter suele ocurrir porque hay variación entre la latencia de un paquete y del siguiente, pero no siempre va a aumentar la latencia: si la latencia es 3, la siguiente es 4, la siguiente es 2, la siguiente es 3, etc… el Interarrival jitter es una media entre los valores jitter, por lo que suele estar entre 0 y 1 y puede solucionarse utilizando «jitter buffer» en el teléfono o en el Asterisk. ¿Qué valores debemos configurar el jitter buffer para que sea óptimo? Este es un tema que ya lo trataremos otro día.

Si queréis conocer el significado del resto de información del RTCP, podéis verlo aquí.

Valores de medición

Ya han sido explicados los conceptos básicos de la calidad de audio, pero claro, no es interesante tratar valores puntuales para analizar todo el audio de una conversación, ya que pueden ocurrir problemas en 1 segundo de la conversación pero ser perfecta el resto del tiempo. Por lo que analizando los valores puntuales durante toda la conversación, podemos obtener medidas más prácticas e interesantes:

Class of Service (CoS): Mide el % de los paquetes que llegan a ambos extremos durante toda la conversación. Lo ideal es que llegue el 100% de los paquetes (CoS = 100%) pero si tenemos valores similares tampoco es un drama (>95%).

Mean Opinion Score (MOS): Es una de las medidas más utilizadas para conocer la calidad de una conversación. Mide los valores de paquetes perdidos, jitter y latencia y genera un valor promedio que oscila entre 1 y 5. Un valor por debajo de 3.5 se considera problemático mientras que un valor superior a 4.5 se considera una llamada normal con buena calidad.

R-Factor: Es una medida similar al MOS, utilizada como recomendación de la ITU y basada en los mismos factores que puntúan la calidad entre 0 y 100 tal y como se puede ver en la tabla siguiente:

Herramientas de análisis y medición

Existen herramientas que analizan el tráfico y muestran, no solo la «traza SIP» de la conversación, si no también los valores de medida de la calidad de esta, datos detallados de la llamada (paquetes perdidos, tiempos de respuesta, latencia, jitter, etc…)

Existía uno bastante bueno aunque comercial, llamado VQManager. Por desgracia, como ocurre con el software comercial, el software se descontinúa, abandona y desaparece en lugar de ser liberado.

Por suerte, existe más herramientas que analizan esta información y ofrecen resultados muy interesantes:

Salir de la versión móvil