MediaSFU Feature and Operation Directory
Find the outcome you need, then open the guide for your SDK. This directory describes MediaSFU operations in product language. Availability and public symbols differ by SDK, so the selected SDK page remains the installation and code entry point.
Use the generated API reference when you already know the component, class, function, or option type and need its exact signature.
- Choose devices, backgrounds, and translation by SDK
- Run large rooms, panelists, permissions, and breakouts by SDK
Setup, security, and room authority
| Operation | What success means | Start here |
|---|---|---|
| Choose Cloud, self-hosted, or backend-proxy deployment | The application has one named deployment mode and authority boundary. | SDK setup and authority |
| Install and configure an SDK | The application resolves the documented public package entry and configuration. | SDK setup and authority |
| Obtain a scoped room or session grant | The client receives only short-lived authority for the intended room action. | SDK setup and authority |
| Select a room shape and UI ownership mode | A room shape and prebuilt, override, custom, headless, or shared-core mode are selected. | SDK setup and authority |
| Configure media permissions and supported devices | Required permissions and supported input/output devices are known before joining. | SDK setup and authority |
Room lifecycle
| Operation | What success means | Start here |
|---|---|---|
| Create a room through a secure authority boundary | A room identifier and bounded join material are returned to the application. | Examples and recipes |
| Join an existing room | The participant reaches a validated joined state. | Examples and recipes |
| Share and redeem a room invitation | The invited user exchanges the invitation for appropriate join authority. | Examples and recipes |
| Leave as a participant | The participant disconnects without ending the room for others. | Examples and recipes |
| Leave as host without ending the room | The host disconnects while the room, remaining participants, and room duration continue so the host can rejoin. | Examples and recipes |
| End the room as the host | The semantic host-end action closes the room for participants. | Examples and recipes |
| Reconnect after a transient interruption | Socket, transports, participant state, and required media recover consistently. | Examples and recipes |
| Distinguish disconnect from host-ended room state | The UI presents reconnect for transient loss and final exit for host end. | Examples and recipes |
| Clean up room, grant, media, and evidence residue | Owned local and server resources are removed or allowed to expire as designed. | Examples and recipes |
Participants, roles, and moderation
| Operation | What success means | Start here |
|---|---|---|
| List and render participants | The application renders the current participant set and updates membership changes. | Large rooms and moderation |
| Request admission or permission to speak | An authorized moderator receives a bounded request with observable state. | Large rooms and moderation |
| Admit, reject, promote, or demote a participant | The target participant reaches the intended membership or speaking state. | Large rooms and moderation |
| Invite or add a person safely | The intended person receives bounded invitation material. | Large rooms and moderation |
| Remove a participant | The target is disconnected and membership/media state updates. | Large rooms and moderation |
| Mute or restrict a participant | The permitted media or interaction restriction is enforced and visible. | Large rooms and moderation |
| Assign room roles and responsibilities | Host, co-host, moderator, panelist, speaker, audience, or observer authority updates. | Large rooms and moderation |
Microphone, camera, streams, and rendering
| Operation | What success means | Start here |
|---|---|---|
| Acquire microphone and camera readiness | Requested local capture is ready or a recoverable denial state is shown. | Media rendering |
| Produce local microphone and camera media | Selected audio and video tracks are published with observable producer state. | Media rendering |
| Produce local microphone audio | The selected microphone track is published with observable audio-producer state. | Media rendering |
| Produce local camera video | The selected camera track is published with observable video-producer state. | Media rendering |
| Consume and render remote audio and video | Authorized remote media is consumed and rendered with observable playback state. | Media rendering |
| Switch input or output devices | The selected device replaces the prior route without orphaning media state. | Media rendering |
| Mute, unmute, pause, resume, or stop tracks | Track and producer state match the requested control action. | Media rendering |
| Start, stop, and render screen sharing | The screen producer and local/remote rendering state start and stop consistently. | Media rendering |
| Publish screenboard, canvas, or external media | The intended non-camera media source is synchronized and rendered. | Media rendering |
| Handle permission, device, autoplay, and media readiness failures | The user receives a specific recovery path and consistent media state. | Media rendering |
Chat and collaboration
| Operation | What success means | Start here |
|---|---|---|
| Send and receive public or direct chat | Messages reach the intended room or participant and render once. | Large rooms and moderation |
| Create, vote, close, and show poll results | Poll state, votes, visibility, and closure are consistent for authorized roles. | Large rooms and moderation |
| Create, collaborate on, capture, and stop a whiteboard | Authorized participants share consistent whiteboard state or capture. | Large rooms and moderation |
| Create, assign, move, return, and stop breakout rooms | Participants enter assigned rooms and return with consistent parent-room state. | Large rooms and moderation |
| Run Q&A, hand-raise, waiting-room, and panelist workflows | Requests, admissions, panelist changes, and speaking state are observable and authorized. | Large rooms and moderation |
| Share a file or collaboration artifact | Authorized recipients can access the intended artifact. | Large rooms and moderation |
Recording, captions, screenboard, and broadcast media
| Operation | What success means | Start here |
|---|---|---|
| Start, pause, resume, and stop recording | Recording state transitions are acknowledged and visible. | Advanced capabilities |
| Configure a declarative custom recording scene | The recording starts with a bounded scene whose logical sources are resolved from server-owned room state. | Advanced capabilities |
| Apply an ordered custom recording scene mutation | An allowed visibility, content, fill, or opacity change is accepted exactly once in sequence. | Advanced capabilities |
| Observe terminal recording completion | The final non-empty MP4 is published atomically and ordinary terminal completion is signaled once. | Advanced capabilities |
| Manage recording consent and storage ownership | Participants receive required notice and artifacts have a named owner and lifecycle. | Advanced capabilities |
| Retrieve or export recording metadata | Authorized metadata or export references are returned without exposing storage credentials. | Advanced capabilities |
| Provide transcription, captions, or translation | Timed text or translated media reaches the intended participant preference. | Advanced capabilities |
| Ingest or egress HLS, broadcast, or external media | External media enters or leaves the room with observable health and timing. | Advanced capabilities |
| Run a WebRTC stage with a synchronized HLS audience | Stage and audience states remain synchronized within declared latency bounds. | Advanced capabilities |
AI, telephony, protocols, and custom applications
| Operation | What success means | Start here |
|---|---|---|
| Start an AI agent session and hand off to a human | The agent joins with bounded authority and human handoff preserves session context safely. | HTTP, AI, and custom integrations |
| Transfer an agent interaction to an operator | The operator gains intended controls without duplicate or abandoned participants. | HTTP, AI, and custom integrations |
| Enter or leave a room through SIP or PSTN | The call is bridged with correct identity, media, and hangup semantics. | HTTP, AI, and custom integrations |
| Build a headless operator console | The app-owned console renders room state and invokes authorized semantic actions. | HTTP, AI, and custom integrations |
| Integrate a widget with public participant boundaries | The embedded participant receives only intended room UI, identity, and actions. | HTTP, AI, and custom integrations |
| Capture custom-application evidence and verify teardown | The custom flow has reproducible success/failure evidence and owned residue is cleared. | HTTP, AI, and custom integrations |
Turn an operation into working code
- Open Choose your SDK and select the package used by your app.
- Use that SDK page's operation table for create, join, participants, media, collaboration, recovery, and exit.
- Copy the complete example from the linked operation guide.
- Use API reference only when you need the exact option type or a lower-level public symbol.
- Run the guide's two-user or two-device release test.
An operation listed here is not a promise that every client SDK exposes the same direct method. Server-managed operations such as WHIP, WHEP, HLS, or AI call control may belong in your backend while an SDK remains connected for interactive WebRTC media.