# Communications module WebRTC-based communications (voice, video, signaling) with infrastructure failover. ## Configurable endpoints **InfrastructureManager** manages STUN, TURN, and signaling URLs. The **app** configures them at startup from BuildConfig (when set): - **STUN:** `smoa.stun.urls` – comma-separated (e.g. `stun:stun.l.google.com:19302,stun:stun.example.com:3478`). Passed as `-Psmoa.stun.urls=...` when building the app. - **Signaling:** `smoa.signaling.urls` – comma-separated signaling server URLs for failover. Passed as `-Psmoa.signaling.urls=...`. TURN servers (with optional credentials) are set programmatically via `InfrastructureManager.setTurnEndpoints(List)` where needed. See **SMOAApplication.configureInfrastructure()** and **app/build.gradle.kts** (BuildConfig fields `SMOA_STUN_URLS`, `SMOA_SIGNALING_URLS`).