Estoy tratando de establecer una conexión WebRTC entre el usuario A (en WiFi) y el usuario B (en el punto de acceso del teléfono). La conexión es exitosa si el usuario B envía una oferta al usuario A, pero falla cuando el usuario A envía una oferta al usuario B.
En chrome://webrtc-internals
puedo ver que si el usuario B envía la oferta, se selecciona un par de candidatos ICE usando la IP externa para el usuario A y un relé de servidor TURN para el usuario B. La conexión funciona correctamente.
Si el usuario A envía la oferta, puedo ver el mismo tipo de candidatos de ICE (anfitrión, srflx y retransmisión), pero no se selecciona ningún par de candidatos y el estado de conexión de iCE cambia a disconnected
después de unos 15 segundos.
La única diferencia en los pares de candidatos de ICE disponibles que pude ver fue que el orden de los candidatos de ICE es diferente según el usuario que envía la oferta, pero esto no debería tener ningún efecto sobre qué par de candidatos se selecciona, ¿verdad?
chrome://webrtc-internals
(todas las capturas de pantalla tomadas por el usuario B)Conexión exitosa: (el usuario B envió la oferta):
Conexión fallida: (el usuario A envió la oferta):
Esta es una continuación de mi pregunta anterior , pero dado que tengo una idea (ligeramente) mejor de lo que está sucediendo, pensé que era mejor hacer una nueva pregunta en lugar de seguir actualizando la anterior.