-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
RFC8843 : Accept offer with a=group:BUNDLE
line even if it has conflicting ice-ufrag values
#2621
Comments
For anyone interested in a workaround for this for the moment : If you're sure the originator of the offer supports Bundling and an attribute 1/ Copy the same values of if you need proper ice-lite functionality in the answer, setting it to true in the Settings Engine is not enough. You need to also hack the resulting answer to : And you're set ! Your peer connection should be connected and ice connectivity should be properly established as mine did. |
Hey guys! Any chance this may be reviewed and merged on to v3 any time soon? We've implemented an SFU fully based on pion and this has became a blocker |
+1 Please merge |
@Odinvt @diegomoreira001 @hernanliendo Anyway you can help me verify this change resolves your issue? I tested this with the SDP description provided in the example and it seems to be working |
Hopefully #2950 will fix this soon. |
The way currently DTLS fingerprints and ICE credentials are picked is causing interop issues as described in pion#2621 Peers which don't use Bundle can use different fingerprints and credentials in each media section. Even though is not (yet) supported by Pion, receiving an SDP offer from such a peer is valid. Additionally if Bundle is being used the group attribute determines which media section is the master bundle section, which establishes the transport. Currently Pion always just uses the first credentials/fingerprint it can find in the SDP, which results in not spec compliant behavior. This PR attempts to fix the above issues and make Pion more spec compliant and interoperable. Fixes pion#2621
The way currently DTLS fingerprints and ICE credentials are picked is causing interop issues as described in pion#2621 Peers which don't use Bundle can use different fingerprints and credentials in each media section. Even though is not (yet) supported by Pion, receiving an SDP offer from such a peer is valid. Additionally if Bundle is being used the group attribute determines which media section is the master bundle section, which establishes the transport. Currently Pion always just uses the first credentials/fingerprint it can find in the SDP, which results in not spec compliant behavior. This PR attempts to fix the above issues and make Pion more spec compliant and interoperable. Fixes pion#2621
Your environment.
What did you do?
Pion receives an SDP as offer which is then provided to SetRemoteDescription :
What did you expect?
I expect Pion to follow the RFC8843 and accept that offer even if it has conflicting ice-ufrag values because it has the
a=group:BUNDLE
line. Then choose which stream's transport it wants to use (typically the first one but the RFC allows to choose any one). And respond with an answer with bundling enabled for the chosen transport.What happened?
Error : SetRemoteDescription called with multiple conflicting ice-ufrag values
The text was updated successfully, but these errors were encountered: