Hi,
I encounter a big trouble that the server speed is slow at different country. For example:
American turn client -> Turn Server -> China turn client.
Any idea about this issue? Thank you so much.
Sincerely
Xiemin
I use iptables to forward the udp packets and then it seems to work, thanks for all.
Could you elaborate on this solution? I'm facing a similar issue where the speed of setting up a webRTC connection is painfully slow between two clients via TURN.
IMHO the only right solution to use a closest server to the client.
So your webRTC App need to be smart and setup the closest TURN servers.
You could setup an app that make a lookup for coTURN credential and also the closest server, based on geoip and turn/signaling client IP.
See an example on my Ansible playbooks:
You could setup using the ansible playbook a service like I operate for the NREN community.
See for the REST API doc page: https://api.turn.geant.org/doc/index.html
If you have eduGAIN access then you could use the service so get an api_key/token front https://turn.geant.org
Agree with misi. Set up an signaling server api, and then check the area of clients and return the suggested TURN to that client app.
Ah, I can certainly implement a geo-IP lookup to determine the closest TURN server and return results accordingly.
Just for the same of completeness, in case of webRTC, since this is typically used by _two_ clients, would the answer be to return the closest TURN servers to _each_ of the clients? How then do we handle communication between the TURN servers? The OP seems to suggest that the problem was solved using iptables. Could you kindly give me a bare-minimum rundown of what that would entail?
I also don't understand the solution that @chenxiemin mentioned above.
Two TURN server could relay traffic if needed. It is not an issue,
but in most cases only one TURN server is enough. ICE agent would use two relay in the very least / worst case.
So confused..
How's the title related to anything discussed in this thread?
Most helpful comment
IMHO the only right solution to use a closest server to the client.
So your webRTC App need to be smart and setup the closest TURN servers.
You could setup an app that make a lookup for coTURN credential and also the closest server, based on geoip and turn/signaling client IP.
See an example on my Ansible playbooks:
See the coturn-rest.yml
You could setup using the ansible playbook a service like I operate for the NREN community.
See for the REST API doc page: https://api.turn.geant.org/doc/index.html
If you have eduGAIN access then you could use the service so get an api_key/token front https://turn.geant.org