I'm trying to get a WebRTC service running, through a corporate firewall. The service works on the local network, but it appears that the firewall is stopping it from working globally.
I'm using a code example from the Python aiortc package, found here, with the minor addition of a STUN server URL on both the the client- and server-side.
The client-side appears to be working as it should, and correctly sends its external IP as an ICE candidate.
The server-side, however, only sends candidates with local addresses. It appears that STUN is blocked.stunclient
returns the following:
$ stunclient --verbosity 9 --mode full --localaddr eno1
stun.stunprotocol.org
Resolved stun.stunprotocol.org to 52.15.67.208:0
config.fBehaviorTest = true
config.fFilteringTest = true
config.timeoutSeconds = 0
config.uMaxAttempts = 0
config.addrServer = 52.15.67.208:3478
socketconfig.addrLocal = <MyLocalIp>:0
Sending message to 52.15.67.208:3478
Continuing to wait for response...
...
Continuing to wait for response...
Sending message to 52.15.67.208:3478
Continuing to wait for response...
...
Continuing to wait for response...
Binding test: fail
Behavior test: fail
Filtering test: fail
Other STUN servers fail as well.
I think this is caused by the firewall blocking anything other than TCP on the port that I use for HTTPS.
How should the firewall be configured in order to allow STUN and WebRTC?
Thanks!