Configure self-hosted STUN for remote WebRTC

This commit is contained in:
Xin Wang
2026-08-05 14:05:22 +08:00
parent 16156028c9
commit 0456d2b4ae
7 changed files with 53 additions and 36 deletions
+2 -4
View File
@@ -9,8 +9,6 @@ import time
import settings
STUN_URL = "stun:stun.l.google.com:19302"
def _turn_credentials() -> tuple[str, str] | None:
"""Return (username, credential) for TURN, or None when TURN is not configured."""
@@ -34,7 +32,7 @@ def _turn_credentials() -> tuple[str, str] | None:
def client_ice_servers() -> list[dict]:
"""ICE servers for browser RTCPeerConnection (JSON-serializable)."""
servers: list[dict] = [{"urls": STUN_URL}]
servers: list[dict] = [{"urls": settings.STUN_URL}]
creds = _turn_credentials()
if not creds:
return servers
@@ -48,7 +46,7 @@ def aiortc_ice_servers() -> list:
"""ICE servers for backend SmallWebRTCConnection / aiortc."""
from aiortc import RTCIceServer
servers = [RTCIceServer(urls=STUN_URL)]
servers = [RTCIceServer(urls=settings.STUN_URL)]
creds = _turn_credentials()
if not creds:
return servers