diff --git a/Llamadas.md b/Llamadas.md index 6d6ec5a..a2766a4 100644 --- a/Llamadas.md +++ b/Llamadas.md @@ -108,12 +108,30 @@ servidor web. Sin esa línea, tu TURN es una puerta a tus propios servicios. Compruébalo con `turnutils_uclient` contra una IP privada y contra la IP pública del servidor: **las dos deben fallar**. +## Probado entre dos participantes + +![Llamada entre dos participantes](img/10-llamada-dos.png) + +Dos navegadores distintos en la misma sala, cada uno con su cámara. A la derecha, el +vídeo que llega del otro participante, con su reloj corriendo. + +Lo que ocurre por debajo, leído de la señalización de la sala: + +1. Los dos anuncian su presencia (`hello`). +2. Se abre primero un **canal de datos**, y el indicador pasa de *server relay* (punto + gris) a **🔒 P2P (WebRTC)** en verde: desde ahí, los mensajes de la sala van + directos entre navegadores sin tocar el servidor. +3. Al pulsar **Llamar** se renegocia añadiendo `audio` y `video`, y el otro lado + responde. Comprobado en el SDP intercambiado. + +Los participantes se identifican por navegador, no por identidad de SSB: dos +navegadores del mismo nodo también se enlazan entre sí, que es como está hecha esta +prueba. + ## Limitaciones honestas -- **Un participante = un nodo.** Dos pestañas del mismo Oasis comparten identidad y no - se enlazan entre sí. Para probar de verdad hacen falta dos nodos distintos. - **Sin TURN, con datos móviles casi nunca conectará.** El CGNAT de los operadores lo - impide. + impide, y por eso hace falta el TURN del pub. - La señalización pasa por el servidor de la sala: un servidor comprometido podría colocarse en medio. La media va cifrada extremo a extremo, pero **quien controla la señalización controla con quién crees que hablas**. diff --git a/Roadmap.md b/Roadmap.md index 89c33cc..712e062 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -37,9 +37,10 @@ Sin fechas: esto se hace cuando se puede. **Probado**: arranque con cuenta aislada, crear salas, mensajes, respuesta citada, `/modules`, los cuatro temas, y el panel de llamada en su sitio. -**No probado**: una llamada real entre dos equipos distintos con TURN de por medio. -Lo que está verificado es que el panel se dibuja bien y que el navegador pide los -permisos; la negociación entre dos nodos separados por NAT está pendiente. +**No probado**: una llamada entre dos equipos separados por NAT, con TURN de por +medio. Lo que sí está comprobado es la llamada entre dos participantes en la misma +red, con el vídeo del otro llegando y el SDP negociando audio y vídeo. Ver +[Llamadas](Llamadas). ## Diferencias con la versión para móvil diff --git a/img/10-llamada-dos.png b/img/10-llamada-dos.png new file mode 100644 index 0000000..f3cb55e Binary files /dev/null and b/img/10-llamada-dos.png differ