-
Notifications
You must be signed in to change notification settings - Fork 511
Unify stun and turn server urls #5582
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
Conversation
3ab98a8 to
5ce7aa7
Compare
|
Rebased on master and bumped API version instead of modifying the previous one. Tested with Firefox and Chromium; it should work with Safari too... but tests are welcome ;-) |
|
Could we add the capability "signaling-v3" here? :) |
|
Yes we should add that capability and at the same time (as said in the other PR) we can drop v1+v2 at the same time as all clients for nextcloud22 need to be updated for conversation-v4 already and there is no fallback possible. |
|
But if v1+v2 are dropped (I guess by replacing |
|
Exactly that was the plan? Make everything simple as you don't need to support the other things. |
|
But then what did you mean by |
|
Hmm maybe too many context switches 🤔 |
Try setting event loops :-P Capability added and previous endpoint versions dropped. |
nickvergessen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please update all signaling urls to v3
nickvergessen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed with a fixup commit
The "stunservers" parameter was a list of several elements each one with a "url" parameter, which was a string. Now the "stunservers" parameter is a list of several elements (although in practice there will be just one) each one with a "urls" parameter, which is a list of strings. The "turnservers" parameter was a list of several elements each one with a "url" parameter and a "urls" parameter, which were both a list of a single string. Now the "turnservers" parameter is a list of several elements each one with a "urls" parameter, which is a list of strings. Each element of "turnservers" contain too "username" and "credential" parameters that apply to all the elements in the "urls" parameter. The format resembles the RTCIceServer format, so the returned values can be directly used by the WebUI like done until now. Mobile clients will need to be adjusted, though. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
6141334 to
69c7a1d
Compare
|
Rebased after #5465 and did the fixups |
The only change between V2 and V3 is the "stunservers" and "turnservers" format, but both the old one and the new one are compatible with the RTCIceServer dictionary and no changes are needed. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The mobile apps will need to adjust to the new version (note that only the signaling settings endpoint actually changed), but they will not be compatible with Talk < 12 anyway due to the changes in the conversation endpoints. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
69c7a1d to
45c4226
Compare
|
Fixed a bug with the Edit: oh, and tested and works 👍 |
Requires #5491 and #5503
This is a breaking change for Talk 12. The settings endpoint version was initially just bumped, but then the old API versions were dropped.
The format resembles the
RTCIceServerformat, so the returned values can be directly used by the WebUI like done until now. Mobile clients will need to be adjusted, though.Important: The RTCIceServer MDN page states that
Avoid specifying an unnecessarily large number of URLs in the urls property; the startup time for your connection will go up substantially. Every server in the list will be contacted and tried out before one is selected to be used for negotiation.It should be verified whether that applies too when using trickle ICE or not; if it does then it might be needed to rethink the format before merging this.Update: I have not been able to reproduce the described behaviour (although I have not done any fancy test like delaying packets for a specific server or something like that; I just used real servers, real servers unreachable by a specific protocol and wrong addresses). Even with several servers the connection could be established before the gathering of candidates finished.
Internally both Firefox and Chromium just iterate through all the
urlsand add a separate server for each of them; in practice it seems that it does not make any difference to provide four server elements each with a single url or a single server element with four urls.So I guess that the statement above refers only to systems where trickle ICE is not being used 🤷
Before
After