-
Notifications
You must be signed in to change notification settings - Fork 325
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
Feature request: proxy support #427
Comments
[Copying comment from Slack here for visibility] My understanding is that the TURN client should work on top of anything that is a |
I could be wrong, but I believe that it requires a
The goal is to be able to use a proxy with an application that uses pion/turn through pion/ice through pion/webrtc. |
[Update: removed silly idea]
Sure, but isn't it the case that But I agree that passing a
Given that we seem to be having a solid understanding of how to do what you want using the existing For the record, |
Summary
There appears to be no way to configure the TURN client to work through an HTTP or SOCKS5 proxy, nor even over an SSH tunnel.
Motivation
While working on galene-stt, I was given access to a server with a powerful GPU. Unfortunately, the server was firewalled away from the Internet: the only ways it could communicate with the outside world were an HTTP proxy and ssh access.
The obvious solution would have been to configure Pion to use TURN over TCP over HTTP CONNECT. The other solution would have been to use the built-in SOCKS proxy of ssh. Unfortunately, there's no way to tell our TURN client to use a proxy.
Describe alternatives you've considered
I ended up hacking the client code to speak TURN over TCP over an ssh tunnel. It wasn't pretty.
Additional context
I think the right way to do that would be to have an implementation of
transport.Net
that usesgolang.org/x/net/proxy
. Not sure how the client code would request that — should it be honouring some environment variable, or should there be an extra option topion.NewApi
?The text was updated successfully, but these errors were encountered: