Isaac Sim Version
4.2.0
Operating System
Ubuntu 22.04
Topic Description
Problem Description
I’m trying to deploy both Isaac Sim and Coturn TURN server on the same cloud NAT server to reduce resource usage. While the distributed deployment (Isaac Sim and Coturn on separate servers) works perfectly, the integrated deployment fails to establish WebRTC connections.
Environment Setup:
- Isaac Sim 4.2
- Coturn 4.6
- Cloud NAT server with public IP: 101.126.xxx.xx, internal IP: 172.28.xxx.xx
- Client browser accessing via:
http://101.126.xxx.xx:8211/streaming/webrtc-client/?server=101.126.xxx.xx
Root Cause Analysis:
The issue occurs because Isaac Sim doesn’t use the TURN server when deployed on the same machine. From the logs and WebRTC internals, I found:
- TURN server logs: Only show browser connections, no Isaac Sim connections
- WebRTC Internals: Isaac Sim generates only
hostcandidates (127.0.0.1:1024, 172.28.xxx.xx:1024), norelaycandidates - Network connectivity: Verified that Isaac Sim can connect to TURN server (
telnet 101.126.xxx.xx 3478succeeds)
This suggests Isaac Sim has built-in logic that skips TURN when the server is on the same machine, which causes connection failure in NAT environments.
Attempted Solutions
- Verified network connectivity: Both internal and external access to TURN server works
- Confirmed TURN server configuration: Coturn is properly configured and listening on all interfaces
- Tested with turnutils_uclient: TURN allocation and media relay work correctly
- Modified Isaac Sim WebRTC configuration in
isaacsim_webrtc.toml:ice_servers = [{ urls = ["turn:101.126.xxx.xx:3478?transport=udp","turn:101.126.xxx.xx:3478?transport=tcp"], username = "user", credential = "pass" }] # Attempted to force relay mode iceTransportPolicy = "relay" force_relay = true disable_host_candidates = true
Current Result
Despite adding the relay enforcement configurations, the WebRTC internals still show:
iceTransportPolicy: all, bundlePolicy: balanced, rtcpMuxPolicy: require
The iceTransportPolicy remains “all” instead of “relay”, indicating the configuration is not being applied.
Question
How can I properly configure Isaac Sim WebRTC to force relay mode and disable host candidates for same-machine TURN deployment?
Is there a documented way to:
- Set
iceTransportPolicyto “relay” - Force Isaac Sim to use TURN server even when co-located
- Disable host candidate generation
This would enable resource-efficient single-server deployments while maintaining WebRTC connectivity.