Server: GET /voip/turnServer, configured under client_api.turn. A shared
secret (coturn use-auth-secret) gives each user expiring TURN REST API
credentials; static credentials are the fallback; with nothing configured
it answers {} so clients still try a direct connection.
Web client: 1:1 calls (Matrix VoIP via matrix-js-sdk) in rooms with one
other person. Voice and video buttons in the room header, a ringing card
with answer, answer without video and decline, and a call panel that
stays up across rooms: mute, camera, screen sharing, expand, hang up,
ring tones. Call events show in the timeline and room list. Works around
the SDK keeping a failed microphone request forever.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Documentation
| Document | What |
|---|---|
| configuration.md | every setting, and its environment variable |
| development.md | building, testing, Complement, adding a migration |
| event-core.md | internal/matrix: canonical JSON, events, auth rules, state resolution |
| rooms.md | internal/roomserver: the input pipeline, room storage, known gaps |
| sync.md | internal/syncapi: stream tokens, long polling, filters, the ephemeral streams, Simplified Sliding Sync |
| relations.md | threads, edits, reactions and references: /relations, /threads and unsigned.m.relations |
| spaces.md | /hierarchy across servers, and room_summary |
| search.md | /search on FTS5 and tsvector |
| federation.md | the Server-Server API: discovery, keys, taking in events, joins across servers, the outbound queue, the switch |
| media.md | internal/mediaapi: uploads, downloads, thumbnails, other servers' media, where the files go |
| e2ee.md | internal/keyserver: device and one-time keys, cross-signing, device list tracking, key backup |
| push.md | internal/pushrules and internal/pushserver: push rules, notification counts, pushers, the push gateway client |
| appservices.md | internal/appservice: registration files, namespaces, acting as users, delivering events to bridges |
| admin-api.md | /_warp/admin/v1: the operator API behind the admin panel |
| deployment.md | storage drivers, the image, Compose, Helm, metrics and the dashboard, tracing, load testing |
The design and roadmap are in PLAN.md at the repository root.