34
iQoS Pruebas de calidad de servicio en VoIP con Python y Linux Pycon Medellín 2018

iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

iQoS

Pruebas de calidad de servicio en VoIP con Python y Linux

Pycon Medellín 2018

Page 2: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

ACERCA DE MI ...Oscar Maestre Sanmiguel

Ingeniero de sistemas e informáticaEstudiante de Máster en Data Science - UOCAmante de tecnologías Open Source, Python y Linux

[email protected]

2

Page 3: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

¿QUÉ ES IQOS?

Page 4: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

▪ Software Open Source escrito en Python▪▪ Integra múltiples herramientas de GNU/Linux▪▪ Realiza pruebas de QoS en tiempo real▪▪ Emula llamadas telefónicas de VoIP▪▪ Evalúa métricas de QoS▪

4

Page 5: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

¿PROBLEMA?

Page 6: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

▪ VoIP es sensible a las distorsiones en la voz, retardos y fluctuaciones

▪ Comparte el tráfico con otros protocolos y servicios

▪ La calidad del servicio depende de ciertos parámetros que deben ser evaluados en la infraestructura de red y en el canal de comunicación.

▪ Software especializado para realizar mediciones costoso y en muchas ocasiones complicados de usar.

6

Page 7: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

VENTAJAS

Page 8: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

▪ Viabilidad para implementar VoIP ▪▪ Integración de diversas herramientas de redes▪▪ Apoyo en el análisis de métricas▪▪ Herramienta de software libre ▪▪ Interfaz Web de fácil uso

8

Page 9: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

CONCEPTOS

9

Page 10: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

CALIDAD DE SERVICIO EN VOIP

10

Page 11: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

RTPDesarrollado por la IETF.RFC 3550 [2].

Transmisión y recepción de contenido de audio y video en tiempo real.Facilita las mediciones de métricas de QoS.Permite la creación de perfiles y la extensión de las cabeceras en los paquetes

ESTÁNDARES

CODEC G.711Recomendación ITU-T G.711Frecuencia de muestreo: 8000 HzNúmero de bits: 8Usado en la red de telefonía conmutadaLa utilización de un códec determinado va a tener repercusiones que afectan directamente el ancho de banda y la calidad de la voz

11

Page 12: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

“ La utilización de un códec determinado va a tener repercusiones que afectan directamente el ancho de banda y la calidad de la voz

12

Page 13: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

ARQUITECTURA

13

Page 14: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

14

Page 15: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

MÓDULOS Y HERRAMIENTAS

15

Tshark - Extraer métricasShapy[3] - Emulacion de métricasIperf - Medición de BWTC - Emular perdida paquetestcpdump - Captura de paquetesRtpbreak - Detectar sesiones RTPFlask - Microframework WebSocketIO - Websockets en PythonGstreamer - Transmision de RTPPico2wave - TTS LinuxgTTS - Google TTSSox - Conversión de audiosLAME - Codificador mp3Json - Intercambio de datos

Page 16: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

SHAPY

16

Page 17: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

gTTS

17

Page 18: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

GENERACIÓN DE AUDIO

18

Page 19: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

19

Page 20: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

TRANSMISIÓN

20

Page 21: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

21

Page 22: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

CONTROL

22

Page 23: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

23

Page 24: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

RECEPCIÓN

24

Page 25: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

25

Page 26: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

PROCESAMIENTO

26

Page 27: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

27

Page 28: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

DEMO

28

Page 29: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

29

Page 30: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

30

Page 31: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

31

Page 32: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

32

Page 33: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

GRACIAS !Any questions?

33

Page 34: iQoS - PyCon Colombia · 2019. 3. 10. · Flask - Microframework Web SocketIO - Websockets en Python Gstreamer - Transmision de RTP Pico2wave - TTS Linux gTTS - Google TTS Sox - Conversión

REFERENCIAS[1]Unión Internacional de las Telecomunicaciones. Recomendación Y.1540 En línea. Disponible en: https://www.itu.int/rec/dologin_pub.asp?lang=s&id=T-REC-Y.1540-201103-I!!PDF-E&type=items

[2] RFC 3550. RTP: A Transport Protocol for Real-Time Applications. Julio de 2005

[3] Shapy . Disponible en: https://github.com/praus/shapy

34