Build a live guest queue
A host is live. Viewers ask to come on, the host picks who joins the stage, talks with them, then sends them back to the audience. The format behind live shopping, creator Q&As and call-in shows.

- Approval
- setting turns every mic or camera into a request
- Host decides
- who goes live, from the request list
- HLS
- carries the show to viewers outside the room
How it fits together
- HostGoes liveJoins the room your server created.
- ViewerAsks to joinTurning on the mic or camera sends a request instead.
- MediaSFUQueues the requestThe host sees who is waiting and what they asked for.
- HostBrings them onAccepts, talks, then mutes or removes the guest.
What MediaSFU handles
| You need | MediaSFU gives you | Read |
|---|---|---|
| Viewers who must ask before going live | Mic, camera and screen-share set to approval | Rooms API |
| A queue the host can act on | The request list, with accept and reject for each request | Large rooms and moderation |
| A waiting area before people enter | The waiting room, where the host admits each person | Large rooms and moderation |
| Sending a guest back | Muting or removing a participant from the host controls | Large rooms and moderation |
| Chat alongside the stage | Room chat, which you can turn off per room | Rooms API |
| Viewers outside the room | HLS output of the stage | HLS broadcast |
Set it up
-
Create the room from your server with every media type on approval:
curl -X POST https://mediasfu.com/v1/rooms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MEDIASFU_API_USERNAME:$MEDIASFU_API_KEY" \
-d '{"action":"create","userName":"host","duration":60,"capacity":200,"eventType":"webinar","meetingRoomParams":{"audioSetting":"approval","videoSetting":"approval","screenshareSetting":"approval","chatSetting":"allow"}}' -
For an audience larger than the room, add
"recordingParams":{"recordingHLSSupport":true}and play the stream with the HLS guide. -
Let the host and viewers join from your app (below). Your server hands out the room details; the API key stays there (Secure backend).
Build it in your SDK
- ReactJSComplete tutorial
- AngularComplete tutorial
- VueComplete tutorial
- React NativeComplete tutorial
- ExpoComplete tutorial
- FlutterComplete tutorial
- AndroidComplete tutorial
- Kotlin MultiplatformStart from the SDK starter
- Swift / AppleStart from the SDK starter
- UnityComplete tutorial
- Shared coreComplete tutorial
Check it works
- Join as the host, then as two viewers on other devices.
- Each viewer turns on their microphone. Two requests appear for the host; neither viewer is heard yet.
- Accept one: that viewer is now on stage and audible. Reject the other: they stay in the audience.
- Remove the guest from the stage, then end the session as the host.
Go further
- Hybrid stage and audience: keep the stage small and the audience on HLS.
- Live auction and shopping: bids and products beside the stage.
- Live host dashboard: the full set of host controls.