stringtranslate.com

WebRTC

WebRTC ( Web Real-Time Communication ) es un proyecto gratuito y de código abierto que proporciona a los navegadores web y aplicaciones móviles comunicación en tiempo real (RTC) a través de interfaces de programación de aplicaciones (API). Permite que la comunicación de audio y video funcione dentro de las páginas web al permitir la comunicación directa de igual a igual , eliminando la necesidad de instalar complementos o descargar aplicaciones nativas. [3]

Con el respaldo de Apple , Google , Microsoft , Mozilla y Opera , las especificaciones WebRTC han sido publicadas por el World Wide Web Consortium (W3C) y el Internet Engineering Task Force (IETF). [4] [5]

Según el sitio web webrtc.org, el objetivo del proyecto es "permitir el desarrollo de aplicaciones RTC ricas y de alta calidad para el navegador, las plataformas móviles y los dispositivos IoT , y permitir que todos se comuniquen a través de un conjunto común de protocolos" . ". [6]

Historia

En mayo de 2010, Google compró Global IP Solutions o GIPS, una empresa de software de videoconferencia y VoIP que había desarrollado muchos componentes necesarios para RTC, como códecs y técnicas de cancelación de eco. Google abrió la tecnología GIPS y se comprometió con los organismos de normalización pertinentes en el IETF y el W3C para garantizar el consenso de la industria. [7] [8] En mayo de 2011, Google lanzó un proyecto de código abierto para comunicación en tiempo real basado en navegador conocido como WebRTC. [9] A esto le siguió un trabajo continuo para estandarizar los protocolos relevantes en el IETF [10] y las API del navegador en el W3C. [11]

En enero de 2011, Ericsson Labs creó la primera implementación de WebRTC utilizando una biblioteca WebKit modificada . [12] [13] En octubre de 2011, el W3C publicó su primer borrador para la especificación. [14] Los hitos de WebRTC incluyen la primera videollamada entre navegadores (febrero de 2013), las primeras transferencias de datos entre navegadores (febrero de 2014) y, en julio de 2014, Google Hangouts "estaba usando" WebRTC. [15]

El borrador de la API del W3C se basó en el trabajo preliminar realizado en WHATWG . [16] Se la conoció como ConnectionPeer API y en Ericsson Labs se creó una implementación de concepto previo a los estándares. [12] El grupo de trabajo WebRTC espera que esta especificación evolucione significativamente en función de:

En noviembre de 2017, la especificación WebRTC 1.0 pasó de borrador de trabajo a recomendación candidata. [20]

En enero de 2021, la especificación WebRTC 1.0 pasó de Recomendación candidata a Recomendación . [4]

Diseño

Los componentes principales de WebRTC incluyen varias API de JavaScript :

La API WebRTC también incluye una función de estadísticas:

La API WebRTC no incluye disposiciones para la señalización , es decir, descubrir pares a los que conectarse y determinar cómo establecer conexiones entre ellos. Las aplicaciones utilizan el establecimiento de conectividad interactiva para las conexiones y son responsables de administrar las sesiones, posiblemente confiando en cualquiera de los protocolos de inicio de sesión , mensajería extensible y presencia ( XMPP ), transporte de telemetría de colas de mensajes , matriz u otro protocolo. La señalización puede depender de uno o más servidores. [26] [27]

RFC  7478 requiere implementaciones para proporcionar códecs de audio PCMA / PCMU ( RFC  3551), evento telefónico como DTMF ( RFC  4733) y Opus ( RFC  6716) como capacidades mínimas. Las API del navegador de captura de medios, canal de datos y PeerConnection se detallan en la especificación W3C.

W3C está desarrollando ORTC (Object Real-Time Communications) para WebRTC. [28]

Aplicaciones

WebRTC permite a los navegadores transmitir archivos directamente entre sí, reduciendo o eliminando por completo la necesidad de alojamiento de archivos en el lado del servidor. WebTorrent utiliza un transporte WebRTC para permitir el intercambio de archivos de igual a igual utilizando el protocolo BitTorrent en el navegador. [29] Algunos sitios web para compartir archivos lo utilizan para permitir a los usuarios enviarse archivos directamente entre sí en sus navegadores, aunque esto requiere que quien los carga mantenga la pestaña abierta hasta que se haya descargado el archivo. [30] [31] [32] Algunas CDN , como Peer5, propiedad de Microsoft, utilizan el ancho de banda del cliente para cargar medios a otros pares conectados, lo que permite que cada par actúe como un servidor perimetral. [33] [34]

Aunque inicialmente se desarrolló para navegadores web, WebRTC tiene aplicaciones para dispositivos sin navegador, incluidas plataformas móviles y dispositivos IoT . Los ejemplos incluyen la telefonía VoIP basada en navegador , también llamada teléfonos en la nube o teléfonos web, que permiten realizar y recibir llamadas desde un navegador web, reemplazando el requisito de descargar e instalar un softphone. [35]

Apoyo

WebRTC es compatible con los siguientes navegadores (lista incompleta; se especifica la versión compatible más antigua):

GStreamer proporciona directamente una implementación WebRTC gratuita. [41]

Compatibilidad con códecs en todos los navegadores

WebRTC establece un conjunto estándar de códecs que todos los navegadores compatibles deben implementar. Algunos navegadores también pueden admitir otros códecs. [42]

Vulnerabilidad

En enero de 2017, TorrentFreak informó de una grave falla de seguridad en los navegadores que soportan WebRTC, que comprometía la seguridad de los túneles VPN al exponer la verdadera dirección IP de un usuario . [44] Las solicitudes de lectura de direcciones IP no son visibles en la consola de desarrollador del navegador y no están bloqueadas por la mayoría de los complementos de bloqueo de publicidad , privacidad y seguridad , lo que permite el seguimiento en línea a pesar de las precauciones. [45]

Se ha informado que la causa de la fuga de direcciones no es un error que pueda corregirse, sino que es fundamental para la forma en que opera WebRTC; sin embargo, existen varias soluciones para mitigar el problema. Se pueden probar fugas de WebRTC y se ofrecen soluciones para la mayoría de los navegadores. [46] WebRTC se puede desactivar, si no es necesario, en la mayoría de los navegadores. El complemento uBlock Origin puede solucionar este problema (como algunos navegadores ahora solucionan este problema por sí solos, desde uBlock Origin v1.38 en adelante esta opción se ha desactivado en estos navegadores [47] ).

Referencias

  1. ^ "WebRTC 1.0: comunicación en tiempo real entre navegadores". Consorcio Mundial de la red . 27 de septiembre de 2018. Archivado desde el original el 7 de abril de 2019 . Consultado el 25 de marzo de 2019 .
  2. ^ "Src/webrtc - Git en Google". Archivado desde el original el 23 de abril de 2018 . Consultado el 22 de abril de 2018 .
  3. Cómo WebRTC está revolucionando la telefonía Archivado el 7 de abril de 2014 en Wayback Machine . Blogs.trilogy-lte.com (21 de febrero de 2014). Recuperado el 11 de abril de 2014.
  4. ^ ab "Las comunicaciones web en tiempo real (WebRTC) transforman el panorama de las comunicaciones al convertirse en una recomendación del World Wide Web Consortium (W3C) y en los estándares del Internet Engineering Task Force (IETF)". Consorcio Mundial de la red . 26 de enero de 2021. Archivado desde el original el 27 de julio de 2022 . Consultado el 27 de enero de 2021 .
  5. ^ "Páginas de estado de Rtcweb". herramientas.ietf.org . Archivado desde el original el 2020-04-20 . Consultado el 18 de febrero de 2021 .
  6. ^ "WebRTC". WebRTC . Archivado desde el original el 28 de enero de 2018 . Consultado el 6 de febrero de 2018 .{{cite web}}: Mantenimiento CS1: bot: estado de la URL original desconocido ( enlace )
  7. ^ "¿Los componentes WebRTC provienen de la adquisición de Global IP Solutions por parte de Google?". WebRTC . Archivado desde el original el 7 de junio de 2011 . Consultado el 6 de febrero de 2018 .
  8. ^ Wauters, Robin (18 de mayo de 2010). "Google hace una oferta en efectivo de 68,2 millones de dólares por Global IP Solutions". TechCrunch . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  9. ^ Harald Alvestrand (31 de mayo de 2011). "Lanzamiento de Google del código fuente de WebRTC". [email protected]. Archivado desde el original el 27 de febrero de 2013 . Consultado el 12 de septiembre de 2012 .
  10. ^ "Carta del grupo de trabajo Comunicación en tiempo real en navegadores WEB (rtcweb)". Archivado desde el original el 11 de noviembre de 2013 . Consultado el 11 de noviembre de 2013 .
  11. ^ "WebRTC 1.0: comunicación en tiempo real entre navegadores". W3.org. Archivado desde el original el 5 de septiembre de 2012 . Consultado el 12 de septiembre de 2012 .
  12. ^ ab "Más allá de HTML5: vídeo conversacional entre pares". Blog de investigación de Ericsson . Labs.ericsson.com. 25 de enero de 2011. Archivado desde el original el 25 de febrero de 2017 . Consultado el 21 de marzo de 2021 .
  13. ^ Stefan Håkansson; Stefan Ålund (26 de mayo de 2011). "Más allá de HTML5: experimente con la comunicación en tiempo real en un navegador". Blog de investigación de Ericsson . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  14. ^ "WebRTC 1.0: comunicación en tiempo real entre navegadores (borrador de trabajo del W3C del 27 de octubre de 2011)". Consorcio Mundial de la red . 27 de octubre de 2011. Archivado desde el original el 29 de octubre de 2011 . Consultado el 6 de febrero de 2018 .
  15. ^ Ahora, Szymon. "WebRTC: mucho más que videoconferencia". GitHub . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  16. ^ "Introducción: estándar HTML". Whatwg.org. Archivado desde el original el 16 de agosto de 2014 . Consultado el 12 de septiembre de 2012 .
  17. ^ "Páginas de estado de Rtcweb". Herramientas.ietf.org. Archivado desde el original el 5 de septiembre de 2012 . Consultado el 12 de septiembre de 2012 .
  18. ^ SIP Trunking, MTPL (18 de julio de 2023). "SIP Trunking VoIP con WebRTC SDK". Tecnolabs lunares . Archivado desde el original el 5 de agosto de 2023 . Consultado el 18 de julio de 2023 .
  19. ^ "draft-jesup-rtcweb-data-protocol-00 - Protocolo de canal de datos WebRTC". Herramientas.ietf.org. Archivado desde el original el 31 de octubre de 2012 . Consultado el 12 de septiembre de 2012 .
  20. ^ "WebRTC 1.0: comunicación en tiempo real entre navegadores (recomendación del candidato del W3C del 2 de noviembre de 2017)". 2 de noviembre de 2017. Archivado desde el original el 2 de noviembre de 2017 . Consultado el 25 de marzo de 2019 .
  21. ^ "Transmisiones y captura de medios: getUserMedia". W3C. 2013-09-03. Archivado desde el original el 2 de enero de 2014 . Consultado el 15 de enero de 2014 .
  22. ^ "WebRTC: interfaz RTCPeerConnection". W3C. 2013-09-10. Archivado desde el original el 5 de septiembre de 2012 . Consultado el 15 de enero de 2014 .
  23. ^ "RFC 8831 - Canales de datos WebRTC". datatracker.ietf.org . Archivado desde el original el 10 de marzo de 2022 . Consultado el 10 de marzo de 2022 .
  24. ^ "WebRTC: RTCDataChannel". W3C. 2013-09-10. Archivado desde el original el 5 de septiembre de 2012 . Consultado el 15 de enero de 2014 .
  25. ^ "Identificadores de la API de estadísticas de WebRTC". W3C. 29 de septiembre de 2014. Archivado desde el original el 15 de julio de 2017 . Consultado el 2 de diciembre de 2017 .
  26. ^ Tsahi Levent-Levi (13 de abril de 2020). "Servidor WebRTC: ¿Qué es exactamente?". BlogGeek.me . Archivado desde el original el 11 de mayo de 2020 . Consultado el 10 de junio de 2020 .
  27. ^ Tsahi Levent-Levi (13 de noviembre de 2014). "Matrix.org y WebRTC: una entrevista con Matthew Hodgson". BlogGeek.me . Archivado desde el original el 25 de febrero de 2021 . Consultado el 10 de junio de 2020 .
  28. ^ "Grupo comunitario W3C ORTC (Comunicaciones de objetos en tiempo real)". Archivado desde el original el 29 de octubre de 2014 . Consultado el 29 de octubre de 2014 .
  29. ^ "Preguntas frecuentes sobre WebTorrent". webtorrent.io . Archivado desde el original el 11 de marzo de 2022 . Consultado el 10 de marzo de 2022 .
  30. ^ "Cómo transferir archivos entre Linux, Android e iOS usando Snapdrop". MUO . 2021-08-04. Archivado desde el original el 29 de enero de 2022 . Consultado el 10 de marzo de 2022 .
  31. ^ Pinola, Melanie (7 de abril de 2014). "La forma más fácil y rápida de transferir archivos entre dispositivos en la misma red". Mundo de la informática . Archivado desde el original el 28 de junio de 2022 . Consultado el 10 de marzo de 2022 .
  32. ^ "FilePizza: comparta archivos sin intermediarios en su navegador - gHacks Tech News". Noticias de tecnología de gHacks . 2015-05-12. Archivado desde el original el 23 de enero de 2022 . Consultado el 10 de marzo de 2022 .
  33. ^ Foley, Mary Jo. "Microsoft adquiere Peer5 para complementar la transmisión de vídeo en vivo de Teams". ZDNet . Archivado desde el original el 10 de marzo de 2022 . Consultado el 10 de marzo de 2022 .
  34. ^ "Descripción general: documentos P2P de Peer5". docs.peer5.com . Archivado desde el original el 16 de marzo de 2022 . Consultado el 10 de marzo de 2022 .
  35. ^ "Catch the Babelfish: la empresa de telecomunicaciones irlandesa diseña un nuevo tipo de teléfono en la nube". Noviembre de 2017. Archivado desde el original el 1 de noviembre de 2017 . Consultado el 20 de noviembre de 2017 .
  36. ^ "La API ORTC ahora está disponible en Microsoft Edge". Microsoft. 2015-09-18. Archivado desde el original el 9 de octubre de 2015 . Consultado el 20 de septiembre de 2015 .
  37. Firefox Notes - Escritorio Archivado el 21 de agosto de 2014 en Wayback Machine . Mozilla.org (25 de junio de 2013). Recuperado el 11 de abril de 2014.
  38. ^ "Safá 11.0". Apple Inc. Archivado desde el original el 14 de noviembre de 2017 . Consultado el 6 de junio de 2017 .
  39. Opera News Archivado el 7 de septiembre de 2015 en Wayback Machine . blogs.opera.com (19 de noviembre de 2013). Recuperado el 17 de septiembre de 2015.
  40. Firefox Notes - Escritorio Archivado el 1 de abril de 2021 en Wayback Machine . Mozilla.org (17 de septiembre de 2013). Recuperado el 4 de agosto de 2014.
  41. ^ "Notas de la versión de GStreamer 1.14". gstreamer.freedesktop.org . Archivado desde el original el 2018-03-20 . Consultado el 19 de diciembre de 2019 .desde la versión 1.15
  42. ^ "Códecs utilizados por WebRTC - Tecnologías de medios web | MDN". desarrollador.mozilla.org . Archivado desde el original el 27 de julio de 2021 . Consultado el 29 de julio de 2021 .
  43. ^ Fableta, Youenn (12 de marzo de 2019). "En el camino hacia WebRTC 1.0, incluido VP8". Kit web . Archivado desde el original el 29 de julio de 2021 . Consultado el 29 de julio de 2021 .
  44. ^ Una enorme falla de seguridad filtra las direcciones IP reales de los usuarios de VPN Archivado el 8 de enero de 2021 en Wayback Machine TorrentFreak.com (30 de enero de 2015). Recuperado el 21 de febrero de 2015.
  45. ^ Solicitudes de dirección IP STUN para WebRTC Archivado el 18 de febrero de 2015 en Wayback Machine. Consultado el 21 de febrero de 2015.
  46. ^ Timmerman, Crystal (28 de febrero de 2022). "WebRTC filtra direcciones IP reales (incluso con VPN)". IPVanish . Archivado desde el original el 13 de agosto de 2022 . Consultado el 12 de agosto de 2022 .
  47. ^ Raymond Hill (17 de septiembre de 2021). "Evitar que WebRTC filtre la dirección IP local". Documentación de uBlock Origin . Archivado desde el original el 21 de febrero de 2016 . Consultado el 18 de diciembre de 2021 .

Otras lecturas

enlaces externos