Files
webrtc/examples/ice-proxy
Pion cda9130802 Update CI configs to v0.11.25
Update lint scripts and CI configs.
2025-08-31 23:04:59 -04:00
..
2025-08-17 19:19:00 +03:00
2025-08-17 19:19:00 +03:00
2025-08-17 19:19:00 +03:00
2025-08-31 23:04:59 -04:00
2025-08-17 19:19:00 +03:00
2025-08-31 23:04:59 -04:00

ICE Proxy

ice-proxy demonstrates Pion WebRTC's capabilities for utilizing a proxy in WebRTC connections.

This proxy functionality is particularly useful when direct peer-to-peer communication is restricted, such as in environments with strict firewalls. It primarily leverages TURN (Traversal Using Relays around NAT) with TCP connections to enable communication with the outside world.

Instructions

Download ice-proxy

The example is self-contained and requires no input.

go install github.com/pion/webrtc/v4/examples/ice-proxy@latest

Run ice-proxy

ice-proxy

Upon execution, four distinct entities will be launched:

  • TURN Server: This server facilitates relaying media traffic when direct communication between agents is not possible, simulating a scenario where peers are behind restrictive NATs.
  • Proxy HTTP Server: A straightforward HTTP proxy designed to forward all TCP traffic to a specified target.
  • Offering Agent: In a typical WebRTC setup, this would be a web browser. In this example, it's a simplified Pion client that initiates the WebRTC connection. This agent attempts direct communication with the answering agent.
  • Answering Agent: This typically represents a web server. In this demonstration, it's configured to use the TURN server, simulating a scenario where the agent is not directly reachable. This agent exclusively uses a relay connection via the TURN server, with a proxy acting as an intermediary between the agent and the TURN server.