Skip to main content
The session settings object allows you to customize every aspect of your call session before participants join. From controlling the initial audio/video state to customizing the UI layout and hiding specific controls, these settings give you complete control over the call experience.
These are pre-session configurations that must be set before joining a call. Once configured, pass the settings object to the joinSession() method. Settings cannot be changed after the session has started, though many features can be controlled dynamically during the call using call actions.
const callSettings = {
  sessionType: "VIDEO",
  layout: "TILE",
  startAudioMuted: false,
  startVideoPaused: false,
  hideControlPanel: false,
  hideLeaveSessionButton: false,
  hideToggleAudioButton: false,
  hideToggleVideoButton: false,
};

Session Settings

Session Type

Property: sessionType Defines the type of call session. Choose VIDEO for video calls with camera enabled, or VOICE for audio-only calls.
sessionType: "VIDEO"
ValueDescription
VIDEOVideo call with camera enabled
VOICEAudio-only call
Default: VIDEO

Layout Mode

Property: layout Sets the initial layout mode for displaying participants.
layout: "TILE"
ValueDescription
TILEGrid layout showing all participants equally
SIDEBARMain speaker with participants in a sidebar
SPOTLIGHTFocus on active speaker with others in sidebar
Default: TILE

Start Audio Muted

Property: startAudioMuted Determines whether the microphone is muted when joining the session.
startAudioMuted: true
Default: false

Start Video Paused

Property: startVideoPaused Controls whether the camera is turned off when joining the session.
startVideoPaused: true
Default: false

Auto Start Recording

Property: autoStartRecording Automatically starts recording the session as soon as it begins.
autoStartRecording: true
Default: false

Idle Timeout Period Before Prompt

Property: idleTimeoutPeriodBeforePrompt Time in milliseconds before showing the idle timeout prompt when you’re the only participant.
idleTimeoutPeriodBeforePrompt: 60000 // 60 seconds
Default: 60000 (60 seconds)

Idle Timeout Period After Prompt

Property: idleTimeoutPeriodAfterPrompt Time in milliseconds after the prompt before automatically ending the session.
idleTimeoutPeriodAfterPrompt: 120000 // 120 seconds
Default: 120000 (120 seconds)

UI Visibility Settings

Hide Control Panel

Property: hideControlPanel Hides the bottom control bar that contains call action buttons.
hideControlPanel: true
Default: false

Hide Leave Session Button

Property: hideLeaveSessionButton Hides the button that allows users to leave or end the call.
hideLeaveSessionButton: true
Default: false

Hide Toggle Audio Button

Property: hideToggleAudioButton Hides the microphone mute/unmute button from the control panel.
hideToggleAudioButton: true
Default: false

Hide Toggle Video Button

Property: hideToggleVideoButton Hides the camera on/off button from the control panel.
hideToggleVideoButton: true
Default: false

Hide Recording Button

Property: hideRecordingButton Hides the recording start/stop button from the control panel.
hideRecordingButton: false
Default: true

Hide Screen Sharing Button

Property: hideScreenSharingButton Hides the screen sharing button from the control panel.
hideScreenSharingButton: true
Default: false

Hide Change Layout Button

Property: hideChangeLayoutButton Hides the button that allows switching between different layout modes.
hideChangeLayoutButton: true
Default: false

Hide Switch Layout Button

Property: hideSwitchLayoutButton Hides the layout switch button.
hideSwitchLayoutButton: true
Default: false

Hide Virtual Background Button

Property: hideVirtualBackgroundButton Hides the virtual background settings button.
hideVirtualBackgroundButton: true
Default: false

Hide Network Indicator

Property: hideNetworkIndicator Hides the network quality indicator.
hideNetworkIndicator: true
Default: false

Complete Example

const callSettings = {
  // Session configuration
  sessionType: "VIDEO",
  layout: "TILE",
  startAudioMuted: false,
  startVideoPaused: false,
  autoStartRecording: false,
  
  // Timeout settings
  idleTimeoutPeriodBeforePrompt: 60000,
  idleTimeoutPeriodAfterPrompt: 120000,
  
  // UI visibility
  hideControlPanel: false,
  hideLeaveSessionButton: false,
  hideToggleAudioButton: false,
  hideToggleVideoButton: false,
  hideRecordingButton: true,
  hideScreenSharingButton: false,
  hideChangeLayoutButton: false,
  hideVirtualBackgroundButton: false,
  hideNetworkIndicator: false,
};
PropertyTypeDefaultDescription
sessionTypeStringVIDEOCall type: VIDEO or VOICE
layoutStringTILELayout: TILE, SIDEBAR, or SPOTLIGHT
startAudioMutedBooleanfalseStart with microphone muted
startVideoPausedBooleanfalseStart with camera off
autoStartRecordingBooleanfalseAuto-start recording
idleTimeoutPeriodBeforePromptNumber60000Idle timeout before prompt (ms)
idleTimeoutPeriodAfterPromptNumber120000Idle timeout after prompt (ms)
hideControlPanelBooleanfalseHide control panel
hideLeaveSessionButtonBooleanfalseHide leave button
hideToggleAudioButtonBooleanfalseHide audio toggle
hideToggleVideoButtonBooleanfalseHide video toggle
hideRecordingButtonBooleantrueHide recording button
hideScreenSharingButtonBooleanfalseHide screen share button
hideChangeLayoutButtonBooleanfalseHide layout change button
hideSwitchLayoutButtonBooleanfalseHide layout switch button
hideVirtualBackgroundButtonBooleanfalseHide virtual background button
hideNetworkIndicatorBooleanfalseHide network indicator