- Add Gitea Actions workflow; point README to gitea.d-bis.org/Sankofa_Phoenix/SMOA - Expand .gitignore for Spring H2 data, secrets, Kotlin .kotlin/, tooling - Track docs/api/generated ReDoc bundle; refresh api docs README - Android: network/auth/sync, UI shell, tests; backend credentials/integrity APIs - Docs, scripts (generate-api-docs), modules and core updates Made-with: Cursor
30 lines
954 B
Markdown
30 lines
954 B
Markdown
# TURN and signaling for WebRTC
|
||
|
||
For meetings and communications beyond STUN-only NAT traversal:
|
||
|
||
## Coturn (TURN/STUN)
|
||
|
||
Example `turnserver.conf`:
|
||
|
||
```conf
|
||
listening-port=3478
|
||
tls-listening-port=5349
|
||
realm=smoa.example.com
|
||
server-name=smoa.example.com
|
||
use-auth-secret
|
||
static-auth-secret=YOUR_LONG_SECRET
|
||
cert=/etc/letsencrypt/live/smoa.example.com/fullchain.pem
|
||
pkey=/etc/letsencrypt/live/smoa.example.com/privkey.pem
|
||
```
|
||
|
||
Issue **time-limited credentials** (HMAC) from your backend; Android app passes them via `InfrastructureManager.setTurnEndpoints`.
|
||
|
||
## Signaling
|
||
|
||
Use **WebSocket** or **HTTPS long-poll** between clients and a small Node/Go/Java service that maps room IDs to SDP/ICE relay. Set `SMOA_SIGNALING_URLS` (comma-separated) in the Android build for `InfrastructureManager`.
|
||
|
||
## Related
|
||
|
||
- [nginx-smoa.conf.example](./nginx-smoa.conf.example) – TLS termination
|
||
- [docker-compose.yml](../../docker-compose.yml) – backend container
|