Lo primero que debemos hacer es decidir o acordar que necesitamos realizar automatización del navegador en términos de pruebas. ¿Por qué? Porque queremos poder repetir las pruebas todo el tiempo y con mucha frecuencia. Para hacer eso, vamos a utilizar Selenium o Puppeteer, que nos permiten probar, simular y automatizar los escenarios que tenemos utilizando navegadores reales.
En voz sobre IP, por ejemplo, la mayoría de las pruebas se realizan utilizando herramientas de pruebas que están diseñadas específicamente y son de naturaleza propietaria. La mayoría de las herramientas de pruebas disponibles en WebRTC son herramientas que en realidad se ejecutan sobre automatización del navegador como Selenium y Puppeteer.
Luego debemos hablar sobre las redes y las redes son complicadas. Esto es cierto para todo lo que se ejecuta en la Web, pero WebRTC es diferente porque las cosas suceden en tiempo real. Si envío medios, espero que se reciban en el otro lado con una latencia de menos de un segundo. Lo envío. Quiero que esté allí en el otro lado en 100 milisegundos, 200 milisegundos, como máximo 500 milisegundos. De lo contrario, no puede ser interactivo.
Hacerlo con una latencia tan baja y con tasas de bits altas, especialmente si es video, significa que hay cosas que me afectarán que no afectan tanto a las páginas web. Eso será el ancho de banda, la pérdida de paquetes y el jitter. Necesito entender cuánto ancho de banda tengo disponible y luego jugar con la tasa de bits que los códecs utilizan para codificar y enviar los medios para cumplir con estas limitaciones que tienen. Necesito poder lidiar con las pérdidas de paquetes que ocurren en la red.
Si envío la página web a alguien desde un servidor y él pierde algunos de los paquetes de esa página web, no es gran cosa porque de todos modos hay una retransmisión que está teniendo lugar. Es posible que obtenga la página web 200 milisegundos más tarde. Pero si estoy tratando de hablar realmente con alguien y hay pérdida de paquetes, ni siquiera puedo retransmitir. No hay tiempo suficiente para eso. Entonces, cómo lidiar con la pérdida de paquetes es muy diferente con WebRTC. Y luego está el jitter, la velocidad a la que llegan los paquetes en comparación con cómo se envían a través de la red. Cuanto más jitter haya, más difícil será reproducirlo en el otro extremo. Ahora, todas estas cosas que necesitamos manejar en la red deben tener en cuenta otros aspectos. El primero es la geografía. Si tengo dos personas en la llamada, una de ellas está en París y la otra está en Estados Unidos, sería prudente que el servidor que los conecta esté en algún lugar intermedio y no en India. Si comenzamos a jugar con la geografía, necesitamos entender dónde están nuestros usuarios y necesitamos probar dónde están nuestros usuarios.
Luego está la parte del último tramo y ya he aludido a eso brevemente en el pasado. Si el usuario está lejos del punto de acceso, habrá una reducción en la tasa de bits, un aumento en la pérdida de paquetes y en la latencia, y la calidad se degradará. Necesitamos probar eso y ver qué sucede allí.
Comments