Welcome to the new Daily Docs. Please let us know what you think.

Configuration

You can configure Daily rooms with three different parameters: name, privacy, and a properties object.

name

string

Defaults to a randomly generated string A room name can include only the uppercase and lowercase ascii letters, numbers, dash and underscore. In other words, this regexp detects an invalid room name: /[^A-Za-z0-9_-]/.

Together, the domain name and the room name cannot exceed 41 characters. You'll get an error if you try to create a room with a name that's too long.

If you supply a name for the room, the room will (if possible) be created with that name. Otherwise a random room name — something like w2pp2cf4kltgFACPKXmX — will be generated.

Human-readable room names are great for lots of applications! The room's name is part of the room's URL, and anyone you send the URL to, or who opens the URL in a new browser tab, will see the name.

If you don't care about having a human-readable room name, just don't supply a name parameter.

privacy

string
Determines who can access the room.
Options: "public","private"
Default: "public"

properties

Most properties determine what features appear when using the Daily prebuilt UI.

integer

"Not before". This is a unix timestamp (seconds since the epoch.) Users cannot join a meeting in this room before this time.

Default: <not set>
integer

"Expires". This is a unix timestamp (seconds since the epoch.) Users cannot join a meeting in this room after this time.

More resources:

Default: <not set>

How many people are allowed in a room at the same time.

⚠️ Contact us if you need to set the limit above 200.

Default: 200
boolean

Skip the initial meeting join page and go straight into the call.

❗️ autojoin will soon be deprecated, and is only supported when using the old prebuilt interface. To future proof your calls, use Daily Prebuilt and set enable_prejoin_ui to false for the same effect.

Default: true

Sets whether the room uses Daily Prebuilt or the previous video chat interface.

default: false for existing customers; true for new signups

⚠️ This property will eventually be deprecated, once Daily Prebuilt is the only available interface experience.

Default: false

Determines whether participants enter a waiting room with a camera, mic, and browser check before joining a call.

⚠️ You must be using Daily Prebuilt to use enable_prejoin_ui. You must also have signaling_impl set to "ws".

Default: NULL

Determines whether the network button, and the network panel it reveals on click, appears in this room.

⚠️ You must be using Daily Prebuilt to use enable_network_ui.

Default: false

Turns on a lobby experience for private rooms. A participant without a corresponding meeting token can request to be admitted to the meeting with a "knock", and wait for the meeting owner to admit them.

Requires the signaling_impl room or domain property set to "ws".

Default: false
Default: true

Determines whether Daily Prebuilt displays background blur controls. When set to true, a participant can enable blur during a Daily Prebuilt call.

⚠️ This flag only applies to Daily Prebuilt. It has no effect when building custom video applications with the Daily call object.

Default: true
Default: false

When a participant first joins a meeting in a room, keep their camera off.

Default: false

When a participant first joins a meeting in a room, keep their microphone muted.

Default: false

In Daily Prebuilt, only the meeting owners will be able to turn on camera, unmute mic, and share screen

See setting up calls.

Default: false

Jump to recording docs.

For more on rtp-tracks, see our blog post about server-side recording.

Note: If you’re planning to use output-byte-stream, you must monitor recording-data events.

Options: "cloud","local","rtp-tracks","output-byte-stream","<not set>"
Default: <not set>

If there's a meeting going on at room exp time, end the meeting by kicking everyone out. This behavior can be overridden by setting eject properties of a meeting token.

Default: false

Eject a meeting participant this many seconds after the participant joins the meeting. You can use this is a default length limit to prevent long meetings. This can be overridden by setting eject properties of a meeting token.

string

The default language of the Daily prebuilt video call UI, for this room.

Setting the language at the room level will override any domain-level language settings you have.

Read more about changing prebuilt UI language settings.

* Norwegian "no" and Russian "ru" are only available in the new Daily Prebuilt.

Options: "de","en","es","fi","fr","it","jp","ka","nl","no","pt","pl","ru","sv","tr","user"
Default: "en"

Sets a URL that will receive a webhook when a user joins a room. Default is NULL. Character limit for webhook URL is 255.

More resources:

Default: NULL

Sets the signaling type.

Options: "ws"
Default: "ws"
string

Daily calls use signaling servers to manage all of the participants in a given call session. In an SFU/server mode call, that same server will also send and receive all the audio and video from each participant. In a peer-to-peer call, each participant sends media directly to and from each other peer, but a signaling server still manages call state.

Daily runs servers in several different AWS regions to minimize latency for users around the world. The job of 'picking' a call server is handled when the first participant joins a room. Their browser connects to a call server using Amazon's Route 53 DNS resolution, which chooses a server in the region closest to them.

This isn't always optimal. For example, if one person joins in London, and then ten more people join from Cape Town, the call will still be hosted out of eu-west-2 . The majority of the participants will have higher latency to the server than if one of them had joined first and the call was being hosted in af-south-1. In cases like this, you may want to configure your domain (or a specific room) to always choose a call server in a specific AWS region.

Available regions:

  • "af-south-1" (Cape Town)
  • "ap-northeast-2" (Seoul)
  • "ap-southeast-1" (Singapore)
  • "ap-southeast-2" (Sydney)
  • "ap-south-1" (Mumbai)
  • "eu-west-2" (London)
  • "sa-east-1" (São Paulo)
  • "us-east-1" (N. Virginia)
  • "us-west-2" (Oregon)
Default: NULL