DailyIframe properties

Configure the DailyIframe

You can pass a properties object that configures the DailyIframe to any of the factory methods. (You can also set these properties when you call the load() or join() methods).

More sample code

See how we used configuration properties in our fullscreen Daily Prebuilt demo app.

Properties

* after a property name indicates that property is only supported when using Daily Prebuilt.

string

Optional as a DailyIframe property if a url is passed to the join() method. Otherwise, required.

string

Optional meeting token

(Used with the join() method).

Optional: set to true to keep your camera muted when you join() or startCamera().

This can also be done with token or room properties.

Optional: set to true to keep your microphone muted when you join() or startCamera().

This can also be done with token or room properties.

string

Optional: the default language of Daily Prebuilt

Currently suppported languages are:

  • "de": German

  • "en": English

  • "es": Spanish

  • "fi": Finnish

  • "fr": French

  • "it": Italian

  • "jp": Japanese

  • "ka": Georgian

  • "nl": Dutch

  • "no": Norwegian

  • "pt": Portuguese

  • "pl": Polish

  • "ru": Russian

  • "sv": Swedish

  • "tr": Turkish

  • "user": Uses the browser's current language setting (defaults to English if the language is not one of the above supported language)

Optional

Defaults to false

Optional

Defaults to false

⚠️iOS 15.1 and greater does not support this feature

Optional: Display the user name change UI in Daily Prebuilt.

Default: true

⚠️Use a token to populate a user_name in the Daily Prebuilt UI when this property is disabled.

Optional: Used only by createFrame()

Example object:

object

Allows theme color customization, on either a global, or per sub-theme, basis (light and dark).

See setTheme() for detailed options.

boolean

This configuration property only applies when using daily-js's call object (custom) mode and when a CSP (Content Security Policy) is defined. As of daily-js v0.27.0, developers using a CSP can remove 'unsafe-eval' from their script-src directive but must pass 'https://*.daily.co' in its place. Must be passed as a property of a dailyConfig object. Learn more in our CSP guide.

Default: false

⚠️ This configuration property only applies when building on top of the Daily call object. Must be passed as property of a dailyConfig object.

Optional: Setting to true will disable hardware video light when participant camera is disabled.

Default: false

string

Optional: Sets the participant's userName

unknown

Optional: Sets custom userData on the participant. See setUserData() for more details and requirements.

Optional: Receive all audio, video, and screen tracks from all call participants

Default: true

⚠️This configuration property is not supported when using Daily Prebuilt.

It only applies to the previous prebuilt video chat UI or when building with the Daily call object. It also only works over an sfu network connection type.

Setting to false means no tracks will be received until they are explicitly subscribed to. Read more in our beta docs or on our blog.

boolean or MediaStreamTrack object

Optional: set the audio track, device, or initial state for the call.

Default: true

⚠️This configuration property is not supported when using Daily Prebuilt.

Pass false only if the participant's audio should remain muted the entire call.

Pass a device ID string (like you get back from enumerateDevices() to specify what audio input device to use.

Or pass a MediaStreamTrack object to use that audio/video track directly. If you pass a MediaStreamTrack, you're responsible for managing the lifecycle of that track. If you pass a Device ID string, the Daily API will manage the media track for that device.

boolean or MediaStreamTrack object

Optional: set the video track, device, or initial state for the call.

Default: true

⚠️This configuration property is not supported when using Daily Prebuilt.

Pass false only if the participant's video should remain muted the entire call.

Pass a device ID string (like you get back from enumerateDevices()) to specify what video input device to use.

Or pass a MediaStreamTrack object to use that audio/video track directly. If you pass a MediaStreamTrack, you're responsible for managing the lifecycle of that track. If you pass a Device ID string, the Daily API will manage the media track for that device.

Optional: Display the video of the local call participant in Daily Prebuilt.

Default: true

Useful for webinar-style applications.

Optional: Controls visibility of other participants' videos in Daily Prebuilt's speaker view.

Default: true

Useful for webinar-style applications.

Optional: Specifies whether to start the Daily Prebuilt call in active speaker mode. Defaults to true, but can be set to false to start the call in grid mode instead.

Default: true

Optional: Takes an object of the form: {grid: { minTilesPerPage: [number], maxTilesPerPage: [number] }}, which specifies how the grid of video tiles behave when the browser is resized when the call is in grid mode.

Default:

maxTilesPerPage defaults to 25, with a limit of 49*.

minTilesPerPage defaults to 1, with a minimum of 1.

*If you need more than 49 max tiles, please contact us.

Optional: Takes a media receive settings object (see updateReceiveSettings() for details). Specifies the receive settings to use right away upon joining the call.

Optional: Applies settings to alter local input media streams, making it possible to enable "background-blur", for example. See updateInputSettings() for details.

⚠️ You must be using daily-js 0.21.0 or higher to set this beta property.

Optional: Requests that a participant sends video spatial layers with specific simulcast encodings (maxBitrate, maxFramerate, and scaleResolutionDownBy) to the server. Must be passed as a property of a dailyConfig object. See a full explanation in the guide to scaling large calls.

string or object

Optional (Advanced): Configures the sender's audio tracks (audio or screenAudio) to be either music or speech. When set to music, a 256kbps stereo audio track will be sent to other participants. When set to speech, browser defaults will be applied.

Alternatively, an object can be provided in order to specify the audio bitrate and stereo mode. The bitrate is a number in bits per second and the stereo mode is a boolean, where true enables 2-channel stereo audio and false enables 1-channel mono audio.

Must be passed as a property of a dailyConfig object.

Example object:

Default: null

Optional (Advanced): Allows for audio media constraints to be defined. Must be passed as a property of a dailyConfig object. The value passed can be a MediaTrackConstraints object or true to get react-native-webrtc's default behavior, which may be different from Daily's defaults.

Constraints will be used when Daily invokes getUserMedia().

If micAudioMode is set to music, this property will be overwritten in favor of the music settings.

Optional (Advanced): Allows for video media constraints to be defined. Must be passed as a property of a dailyConfig object. The value passed can be a MediaTrackConstraints object or true to get react-native-webrtc's default behavior, which may be different from Daily's defaults.

Constraints will be used when Daily invokes getUserMedia().

Optional: Configures a set of custom buttons in your Daily Prebuilt call through the passed-in dictionary. You can pass multiple custom buttons in at once. Because Daily Prebuilt runs in an <iframe>, the iconPath and iconPathDarkMode values must each be a URL, complete with the https: protocol string.

Example object: