-
-
Notifications
You must be signed in to change notification settings - Fork 81
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
Relayed connection is used although direct connection is possible #78
Comments
The behavior is indeed incorrect. Thank you for the logs, I'm looking into it! |
I haven't been able to reproduce this, I think there might be some timing involved. Could you please post the verbose log or code triggering the issue? |
Thanks for looking into this. I will try to get those logs this week. |
Here are the verbose logs: |
The problems seems to revolve around the usage of peer reflexive candidates in your setup. It appears the computation of the priority of these candidates was wrong as I didn't understand the RFC correctly at the time. Could you please check if #81 fixes the issue for you? |
Unfortunately no.
It uses the correct pair at first but later switches to a relayed connection. |
Actually, I missed it before somehow, but in your use case there is a role conflict:
The priorities must be recalculated after the conflict is resolved, and it appears that it wasn't done properly. It should be fixed with #82 Still, you might want to avoid the conflict. It probably comes from the answerer calling I should add tests for the code path for conflict as it is not tested a lot... |
Thanks for the hint with the controlling agent. Now that I don't get the role conflict anymore everything works as expected. After the role conflict has been resolved it seems like the controlled agent just ignores the nominated pair. |
I think I found the final issue! It appears the controlled side wrongly matches the nominated pair. It should be fixed with #84 |
Hi,
i have two clients in different networks (both using libjuice).
They are behind EIM-NATs and establishing a direct connection with libjuice always works with the help of a STUN server.
However; If I add a TURN server they will sometimes use the relayed connection instead of the direct connection.
I'm not an ICE expert but I think they should use the direct connection right?
Log from one of the clients when direct connection is used:
direct.log
Log from one of the clients when turn connection is used:
turn.log
Unfortunately I can't tell from the log why the relayed connection is chosen over the direct connection.
The text was updated successfully, but these errors were encountered: