Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Firefox ICE-lite incompatibility with mediasoup #13746

Open
kepstin opened this issue Nov 23, 2021 · 3 comments
Open

Firefox ICE-lite incompatibility with mediasoup #13746

kepstin opened this issue Nov 23, 2021 · 3 comments

Comments

@kepstin
Copy link
Contributor

kepstin commented Nov 23, 2021

Describe the bug

After some period of time (unclear whether I must be in a session or not), Firefox stops being able to show remote webcams on my computer; instead I get a black square with the name of the participant.

Sharing my own webcam works (local preview shows up, and other people are able to see my webcam).

This seems to be difficult for other people to reproduce, so it might be related to local network conditions.

Screenshots

BBB version:
Seen on BBB 2.4 development builds with MediaSoup enabled for video
This is a regression from the situation with Kurento on 2.3 and 2.4.

Desktop (please complete the following information):

  • Linux
  • Firefox (Mozilla flatpak & Exherbo distribution build both affected)
  • 92 and later versions (earlier not tested)

Additional context
I can provide additional logs such as about:webrtc or JS console logs privately.

@prlanzarin
Copy link
Member

prlanzarin commented Nov 25, 2021

For the sake of documentation (from #12894):

Firefox doesn't always play nice with mediasoup. The latter is ICE-lite only, which implies, by RFC, that the browser must use regular nomination when running ICE. Firefox doesn't do that and sticks to aggressive nomination[1], which can be spotty with ICE-lite peers (mediasoup) if the client's network topology is complex enough/meets the right conditions. A few options:

  • A workaround that works most of the times: enable media.peerconnection.ice.default_address_only in about:config (hard to explain to end users)
  • The short-term countermeasure: we need to add a client-side flag that allows forcing relay-only peer negotiations in Firefox (we want to avoid this);
  • The medium-term countermeasure: adding a flag in mediasoup that allows ignoring aggressive nomination's trigger happy usage of the USE-CANDIDATE field in binding requests + coupling the server-side ICE state machine to the RTP packet flow when that flag is enabled (so we can get ICE to completed even when ignoring USE-CANDIDATE). This sounds like it would work and I prototyped it. There's no guarantee it'll always work (we want to avoid this);
  • The ideal countermeasure: working with Mozilla folks to try and patch nICEr to use regular nomination with ice-lite peers as stated by the standards (is this doable at all?)

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1034964

@kepstin
Copy link
Contributor Author

kepstin commented Nov 25, 2021

Mediasoup issue for the server-side countermeasure is versatica/mediasoup#650

@isAAAc
Copy link

isAAAc commented May 25, 2022

same issue with firefox_100.0.2-1_amd64.deb

@prlanzarin prlanzarin changed the title Remote webcams not visible in Firefox on Linux Firefox ICE-lite incompatibility with mediasoup Feb 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants