Unable to establish WebRTC connection with Membrane VideoRoom from different origin client

When attempting to connect to Membrane VideoRoom from a client on a different origin, the WebRTC connection fails to establish. The following error message is displayed in the console:

"ICE failed, your TURN server appears to be broken"

Steps to Reproduce:

  • Open the Membrane VideoRoom application on a server with a TURN server configured
  • Attempt to connect to the application from a client on a different origin
  • Observe that the WebRTC connection fails to establish and the error message "ICE failed, your TURN server appears to be broken" is displayed in the console.

Expected Result: The WebRTC connection should successfully establish, allowing the client to participate in the video conference.

Actual Result: The WebRTC connection fails to establish and the error message "ICE failed, your TURN server appears to be broken" is displayed in the console.

Workarounds: None found.

Additional Information:

  • The TURN server has been configured correctly and is operational.
  • The server's firewall has been configured to allow incoming traffic on the required ports.
  • The WebRTC connection is successfully established when connecting from a client on the same origin.
  • The issue only occurs when attempting to connect to the application from a client on a different origin.
  • I'm developing a frontend-only application to connect to the server using the React application from membrane_videoroom hosted on a different origin. I've used the Corsica plug to allow all origins.

Environment: Membrane VideoRoom version: 2.0.1 Server OS: Ubuntu 20.04 Client OS: Windows 10 Browser: Google Chrome 97.0.4692.99

Attachments: Log files from the server and client are attached for further investigation.

Request: Could you please provide a beginner-friendly explanation of the root cause of the issue and suggest any possible solutions that could help resolve it? Thank you in advance for your help!

4 responses