Configuration

Property that gives end users a richer chat experience. This includes:

  • Emoji reactions to chat messages
  • Emoji picker in the chat input form
  • Ability to send a Giphy chat message

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

Default: false

Determines if Daily Prebuilt displays the People UI. When set to true, a People button in the call tray reveals a People tab in the call sidebar. The tab lists all participants, and next to each name indicates audio status and an option to pin the participant. When enable_people_ui is set to false, the button and tab are hidden.

⚠️ Has no effect on custom calls built on the Daily call object.

Default: true

Sets whether rooms for this domain can use Daily Prebuilt's Picture in Picture controls. When set to true, an additional button will be available in Daily Prebuilt's UI to toggle the Picture in Picture feature.

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

⚠️ This property is in beta as of daily-js 0.24.0.

Default: false

Determines if Daily Prebuilt displays the Emoji Reactions UI. When set to true, a Reactions button appears in the call tray. This button allows users to select and send a reaction into the call. When set to false, the Reactions button is hidden and the feature is disabled.

Usage: This feature is a good fit for meetings when a host or presenter would benefit from receiving nonverbal cues from the audience. It's also great to keep meetings fun.

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

Default: false

Sets whether the participants in the room can use Daily Prebuilt's hand raising controls. When set to true, an additional button will be available in Daily Prebuilt's UI to toggle a hand raise.

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

Default: false

Determines whether participants enter a waiting room with a camera, mic, and browser check before joining a call in any room under this domain.

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

Default: true

Determines whether the network button, and the network panel it reveals on click, appears across all rooms belonging to this domain.

default: false

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

Default: false

This field expects a lowercase string formatted with your transcription provider, a colon, and the API key for use of their service. (e.g. "deepgram:YOUR_API_KEY_HERE")

Supported provider fields:

When this field is configured, the startTranscription() and stopTranscription() instance methods may be used in any room by room owners.

Example:

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

Whether "Powered by Daily" displays in the in-call UI.

Default: false

(For meetings that open in a separate browser tab.) When a user clicks on the in-call menu bar's "leave meeting" button, the browser loads this URL. A query string that includes a parameter of the form recent-call=<domain>/<room> is appended to the URL. On mobile, you can redirect to a deep link to bring a user back into your app.

Email us at help@daily.co to turn on HIPAA. Learn more about our HIPAA compliance.

Default: false

Whether to automatically start recording when an Intercom support agent joins an Intercom-created call. Please see our Intercom Messenger App page for more information.

⚠️This method is read-only; please contact us if you'd like to enable intercom call auto-recording.

string

The default language for the video call UI, for all calls.

If you set the language at this domain level, you can still override the setting for specific rooms in a room's configuration properties, or for a specific participant in a meeting token.

You can also set the language dynamically using the front-end library setDailyLang() method.

* 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: NULL
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-central-1" (Frankfurt)
  • "eu-west-2" (London)
  • "sa-east-1" (São Paulo)
  • "us-east-1" (N. Virginia)
  • "us-west-2" (Oregon)
Default: NULL
string

Used to select the region where an RTMP stream should originate. In cases where RTMP streaming services aren't available in the desired region, we'll attempt to fall back to the default region based on the SFU being used for the meeting.

Available regions:

  • "us-west-2" (Oregon)
  • "eu-central-1" (Frankfurt)
  • "ap-southeast-1" (Singapore)

The default regions are grouped based on the SFU region like so:

  • RTMP region "us-west-2" includes SFU regions: "us-west-2", "us-east-1", "sa-east-1"
  • RTMP region "eu-central-1" includes SFU regions: "eu-central-1", "eu-west-2", "af-south-1"
  • RTMP region "ap-southeast-1" includes SFU regions: "ap-southeast-1", "ap-southeast-2", "ap-northeast-2", "ap-south-1"
Default: The closest available region to the SFU region used by the meeting.

Reduces the volume of log messages. This feature should be enabled when there are more than 200 participants in a meeting to help improve performance.

See our guide for supporting large calls for additional instruction.

Default: false

Configures a room to use multiple SFUs for a call's media. This feature enables calls to scale to large sizes and to reduce latency between participants. It is recommended specifically for interactive live streaming.

See our guide for supporting large calls for additional instruction.

Default: NULL

Configures an S3 bucket in which to store recordings.

Properties:

The name of the Amazon S3 bucket to use for recording storage.

The region which the specified S3 bucket is located in.

The Amazon Resource Name (ARN) of the role Daily should assume when storing the recording in the specified bucket.

Whether the recording should be accessible using Daily's API.

Specifies the initial default permissions for a non-meeting-owner participant joining a call.

Each permission (i.e. each of the properties listed below) can be configured in the meeting token, the room, and/or the domain, in decreasing order of precedence.

Meeting owners can also change participants' permissions on the fly during a call using updateParticipant() or updateParticipants().

Whether the participant appears as "present" in the call, i.e. whether they appear in participants().

boolean | array

Which types of media a participant should be permitted to send.

Can be:

  • An Array containing any of 'video', 'audio', 'screenVideo', and 'screenAudio'
  • true (meaning "all")
  • false (meaning "none")
Default: { canSend: true, hasPresence: true }