Persistent video rooms — create, re-open, embed
A persistent video room is a long-lived room on Orbit Media that you create once and reuse indefinitely. Unlike a standard scheduled room, which expires four hours after creation unless it is extended, a persistent room carries a 10-year expiry and re-opens automatically when the next participant joins. Use a persistent room for fixed destinations such as:- an embedded “video call us” button on your website
- a permanent sales or support queue
- a department drop-in room that agents and visitors reuse throughout the day
What makes a room persistent
A room becomes persistent whensettings.persistent is set to true. This happens in two places:
- the Create Room toggle in the dashboard under Voice → Video → Rooms
POST /api/v1/video/rooms-scheduledwithpersistent: true
The 10-year expiry keeps the
expires_at column non-NULL, which the re-open gate requires. The sweeper does not treat the room as abandoned when it empties; it marks the room ended with reason room_finished, which the join route recognizes as reversible.
Create a persistent room from the dashboard
- Open Voice → Video → Rooms.
- Click New room.
- Fill in the room name and any other settings — waiting room, recording, participant cap.
- Toggle Persistent room.
- Save the room.
Create a persistent room over the API
expires_at set 10 years in the future. You cannot set max_duration_minutes or recurrence_rule on the same request; the API returns a 422 if either is present.
Re-open after the room empties
When the last participant leaves a persistent room, the SFU closes the media room after five minutes of emptiness. The platform expiry sweeper may also mark the database rowended with reason room_finished.
Either way, the next call to POST /api/v1/video/rooms-scheduled/:id/join re-opens the room lazily. The join route checks endedRoomIsReopenable and, when the room is persistent and within its expires_at headroom, recreates the media room and admits the participant. Existing guest invites and the widget continue to work across re-opens.
Wire the room into the consultation widget
The Voice → Video → Widget builder only lists persistent rooms. This is intentional: a drop-in “video call us” button needs a room that survives between calls.- Open Voice → Video → Widget.
- Pick a preset — queued visitor for a waiting-room flow, or direct drop-in for immediate join.
- Under Room, select one of your persistent rooms.
- Copy the generated iframe or script snippet and paste it into your site.
Lifecycle on the SFU
- While participants are present, the media room stays live.
- When the room becomes empty, the SFU reclaims the media room after a 5 min empty timeout.
- The database row may become
endedwith reasonroom_finished. - The next join regenerates the access token, lazily recreates the media room, and places the participant according to the room’s waiting-room and tier settings.
API reference
POST /api/v1/video/rooms-scheduled— create a persistent room withpersistent: truePOST /api/v1/video/rooms-scheduled/:id/join— join or re-open a persistent room- Video API reference — full scheduled-room endpoint surface
Related
- Video meetings and conferences — scheduled rooms, invites, and registration
- Video room consoles — Sessions, Widget, Templates, and Live
- Embed a video consultation button — end-to-end widget walkthrough
- Video room access tokens — what the join token grants