AyGR 2024 - TP VoIP

Fecha de entrega: Chivilcoy 20/10/2024

Objetivo: Comprender la interrelación y el funcionamiento de los componentes y protocolos que permiten brindar un servicio de comunicación de voz y video sobre redes IP a través de la implementación de una solución clásica de PBX y dispositivos VoIP. Categorías ISO: FCAPS.

Bibliografía recomendada

Experiencia de Laboratorio

  1. Determinar en qué dirección IP y puerto se encuentra el servidor de telefonía IP en el laboratorio.

  2. Acceder a la interfaz (web) administrativa de la central telefónica por software.

  3. Crear una nueva extensión personal (número interno) para usted. Para ello, dirigirse a la pestaña PBX » PBX Configuration. De la lista a la izquierda, hacer click en Extensions, seleccionar Generic SIP Device y hacer click en Submit.

  4. Completar el formulario como sigue:

    • User Extension: elegir un número de extensión de tres a seis dígitos a su elección, que no esté definido previamente, por ej su número de legajo.
    • Display Name: copiar lo mismo que en Extension Number.
    • Secret: esta será la clave de la extensión, copiar el valor existente o definir una nueva.
    • Dejar el resto de los campos tal como figuran en el formulario.
    • Hacer clic en Submit y luego en Apply Changes.
  5. Estando desconectado de la red, configurar un teléfono IP. Documentar lo efectuado.

  6. Iniciar una captura de tráfico uno de los dispositivos intermedios. Aplicar el siguiente filtro de visualización sip or rtp or rtcp.

  7. Mientras la captura está en curso, conectar el teléfono o iniciar la aplicación de telefonía IP (según corresponda). Debería ver los mensajes de registro en la captura. Detener y guardar la misma como tp_voip_register.pcap

  8. Iniciar una nueva captura, llamar desde el teléfono al número de devolución de extensión *65, escuchar el audio y colgar al finalizar. Detener y guardar la captura como tp_voip_65.pcap

  9. Iniciar una nueva captura y, en acuerdo con un compañero, realizar una llamada desde su interno al número de extensión de su compañero. Capturar la llamada con Wireshark desde el inicio hasta su fin (diálogo incluido) y guardar sólo los paquetes correspondientes al filtro sip or rtp or rtcp con el nombre tp_voip_call.pcap. Determinar los codecs soportados por cada terminal VoIP e indicar cuál o cuales se utilizaron en la transmisión RTP.

  10. Determinar si el flujo de datos RTP se produce entre los extremos directamente o bien entre los UA. ¿Qué configuración se debe cambiar para lograr intervenir en la forma que el tráfico RTP circula?

Trabajo Práctico

  1. Conversión Analógico-Digital. Descargar e instalar el programa Audacity.

    1. Generar una onda de sonido sinusoidal cuya frecuencia se inicie en 20 hz y suba hasta 20000 hz durante un período de 20 segundos (menú Generate » Chirp). Luego reproducir dicho fragmento. Teniendo en cuenta la duración del sonido, ¿hasta qué segundo fue capaz de escucharlo?

    2. Dirigirse al menú Edit » Preferences… » Quality y en el selector High-quality Conversion establecer Sample Rate Converter en Low Quality (Fastest). Luego, utilizar la opción de menú Tracks » Resample para reducir la cantidad de muestras por segundo a 20000 hz y escuchar nuevamente todo el sonido. ¿Qué sucede con el tono? Deshacer y repetir la operación, pero esta vez reduciendo la tasa de muestreo a 8000 hz. ¿Qué sucede con el tono ahora? Finalmente, reconvertir el fragmento a 4000 hz.
      Si el sonido original es el mismo, ¿por qué suceden estos cambios?
      Nota: luego de realizar este ejercicio, vuelva a establecer la opción Sample Rate Converter en Best Quality (Slower).

    3. Utilizando el analizador de espectro disponible en https://academo.org/demos/spectrum-analyzer/ visualice las frecuencias que mayor energía tienen en las diferentes muestras de sonido (seleccione en Sound sample y luego haga clic en ▶).
      ¿En qué rango se ubican las frecuencias con mayor energía para cada muestra?

    4. Busque un archivo de música en formato MP3, OGG o WAV y utilice la opción Upload your own para analizar el espectro de frecuencias de unos segundos de la canción. Según las frecuencias que se ven en el espectrograma, ¿con qué frecuencia de muestreo mínima debería digitalizarse la muestra si uno deseara grabarla mediante un micrófono?

    5. Ahora, utilice el analizador de espectro disponible en https://auditoryneuroscience.com/acoustics/spectrogram para analizar el sonido de su voz mientras canta su canción favorita. ¿Qué rango de frecuencias tiene mayor energía? ¿Puede hacer un sonido cuya frecuencia supere los 4 khz (silbando, por ejemplo)?

    6. En la telefonía tradicional (Plain-Old Telephone Service o “POTS”) parte de la señalización se realizaba “en banda” utilizando tonos conocidos como DTMF. Hoy en día se siguen utilizando estos tonos para interactuar con las opciones de los call-centers o llamar mediante teléfonos antiguos. Utilizando Audacity, generar mediante DTMF (menú Generate » DTFM tones) el sonido necesario para llamar a la Universidad Nacional de Luján. En caso de contar con un teléfono analógico, reproducir este sonido al micrófono del teléfono. ¿Qué sucede? ¿Por qué?

  2. Señalización y Transporte. Analizar las capturas realizadas durante la práctica de laboratorio (tp_voip_register.pcap, tp_voip_65.pcap, tp_voip_call.pcap) y realizar un gráfico de intercambio donde se identifiquen los protocolos, los flujos de datos, y los actores involucrados y sus roles. Representar la operación de los protocolos intervinientes mediante gráficos de secuencia de mensajes. Para ello puede utilizar la herramienta de diagramación MSCGen. El flujo RTP lo puede sintetizar a fines de facilitar la lectura y escritura del mismo.

  3. Calidad de Servicio. A partir de la captura tp_voip_call.pcap de la experiencia de laboratorio, analizar dos tramas de cada protocolo (SIP, RTP, RTCP, seis tramas en total), revisando los campos ToS (IP) y 802.1q (Ethernet) en relación con calidad de servicio. Documentar qué valores, prioridades y opciones lleva cada tipo de PDU.

  4. Transporte. Abrir la captura tp_voip_call.pcap con Wireshark e intentar obtener un archivo de audio que contenga toda la conversación. Documentar los pasos efectuados. Importante: el análisis del flujo de audio está disponible en el menú Telephony » SIP Flows.
    Si no es posible obtener el audio en dicha pantalla, ejecutar

     apt-get install wireshark-qt

    para instalar una interfaz mas moderna de Wireshark.

  5. H.323. Descargar y analizar la captura de tráfico rtp_example.raw.gz e identificar:

    1. Los equipos intervinientes (dirección IP, fabricante, modelo y lugar de fabricación del dispositivo), el Caller ID, el CODEC utilizado en la conversación.
    2. Representar en un diagrama de secuencia los mensajes H.323 intercambiados entre los nodos.
    3. Analizar el audio que se puede recuperar de la captura ¿Qué sucede aproximadamente en el segundo 6.55?
    4. DESAFÍO: Determinar el idioma hablado por los interlocutores en esta captura.
  6. Codecs. Descargar los fragmentos de audio https://bit.ly/369Seew (diálogo, 95 segundos) y https://bit.ly/2Tgd1YA (música, 80 segundos). Utilizando Audacity u otro software de conversión de audio (opus-tools/opusenc), convertir los fragmentos a codec OPUS con los bitrates indicados más abajo, partiendo siempre del archivo original.

    Para el último codec (G.711), abrir cada archivo original con Audacity, cambiar el valor de Project Rate (Hz) (esquina inferior izquierda de la ventana) a 8000 hz y exportarlo mediante File » Export » Export audio … » Other uncompressed files, seleccionando header WAV (Microsoft) y encoding A-law.

    Completar la tabla siguiente con los tamaños finales de archivo. Escuchar todos los archivos mediante un reproductor de audio (vlc, mpv, …) e indicar un valor de calidad subjetiva entre 1 y 5, y un comentario sobre cómo considera Ud la calidad del audio respecto al fragmento original. La primera línea es un ejemplo.

    Archivo CODEC Bitrate Tamaño Calidad Subj. Comentario
    diálogo PCM Audio CD 1411 kbit/s 16438 KB 5/5 audio original
    OPUS 96 kbit/s      
    OPUS 16 kbit/s      
    G.711 (A-law) 64 kbit/s      
    música PCM Audio CD 1411 kbit/s 13745 KB 5/5 audio original
    OPUS 96 kbit/s      
    OPUS 16 kbit/s      
    G.711 (A-law) 64 kbit/s      

Guía de Lectura

  1. ¿Cuáles son los dos tipos de protocolos que intervienen en una comunicación VoIP? ¿Cuántos protocolos de VoIP intervienen en un escenario de SIP y SDP?

  2. ¿Cuáles protocolos no relacionados a VoIP intervienen en una comunicación VoIP?

  3. ¿Qué otros protocolos de señalización existen además de SIP?

  4. ¿Cuál es el intercambio típico de mensajes SIP y RTP que se produce en la tríada UAC-UAS-UAC?

  5. ¿Cuál es el escenario típico y qué intercambio de mensajes se produce al encender un telefóno IP conectado una Red?

  6. ¿Qué características de red son las que más perjudican una comunicación VoIP?

  7. ¿Qué es un CODEC? ¿Cuáles son los más habituales en una comunicación VoIP?

  8. ¿Qué es un PBX? ¿Existe solamente en el contexto de la comunicación VoIP o existía ya en el contexto de las comunicaciones telefónicas tradicionales?

  9. Hoy en día muchas de las comunicaciones de voz y video se realizan sobre la web, utilizando como User-Agent el mismo software que para navegar la red: el web browser. ¿Cómo se denomina el marco de tecnologías abiertas que incorpora Comunicación en Tiempo Real a la web? ¿qué protocolo utiliza para transmisión? ¿qué códecs utiliza para los flujos de voz?

  10. DESAFÍO

    • ¿Cuál es el nombre y versión del codec de audio publicado como open source por Google en Septiembre de 2022?
    • ¿Qué calidades o tasas de transferencia dispone?
    • ¿Si se graba una entrevista de 1 hora con este nuevo codec en su calidad más alta, cuántos MBytes ocupará?
    • ¿Qué avance (en porcentaje de compresión) representa respecto de los codecs de telefonía existentes?

Referencias