Skip to main content
The SessionSettingsBuilder is a powerful configuration tool that 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, this builder gives you complete control over the call experience. Proper session configuration is crucial for creating a seamless user experience tailored to your application’s specific needs.
These are pre-session configurations that must be set before joining a call. Once configured, pass the SessionSettings 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.
val sessionSettings = CometChatCalls.SessionSettingsBuilder()
    .setTitle("Team Meeting")
    .setDisplayName("John Doe")
    .setType(SessionType.VIDEO)
    .setLayout(LayoutType.TILE)
    .startAudioMuted(false)
    .startVideoPaused(false)
    .build()

Session Settings

Title

Method: setTitle(String) Sets the title that appears in the call header. This helps participants identify the purpose or name of the call session. The title is displayed prominently at the top of the call interface.
.setTitle("Team Meeting")
ParameterTypeDefault
titleStringnull

Display Name

Method: setDisplayName(String) Sets the display name that will be shown to other participants in the call. This name appears on your video tile and in the participant list, helping others identify you during the session.
.setDisplayName("John Doe")
ParameterTypeDefault
displayNameStringnull

Session Type

Method: setType(SessionType) Defines the type of call session. Choose VIDEO for video calls with camera enabled, or AUDIO for audio-only calls. This setting determines whether video streaming is enabled by default.
.setType(SessionType.VIDEO)
ParameterTypeDefault
typeSessionTypeVIDEO
ValueDescription
VIDEOVideo call with camera enabled
AUDIOAudio-only call

Layout Mode

Method: setLayout(LayoutType) Sets the initial layout mode for displaying participants. TILE shows all participants in a grid, SPOTLIGHT focuses on the active speaker with others in a sidebar, and SIDEBAR displays the main speaker with participants in a side panel.
.setLayout(LayoutType.TILE)
ParameterTypeDefault
layoutLayoutTypeTILE
ValueDescription
TILEGrid layout showing all participants equally
SPOTLIGHTFocus on active speaker with others in sidebar
SIDEBARMain speaker with participants in a sidebar

Idle Timeout Period

Method: setIdleTimeoutPeriod(int) Configures the timeout duration in seconds before automatically ending the session when you’re the only participant. This prevents sessions from running indefinitely when others have left.
.setIdleTimeoutPeriod(300)
ParameterTypeDefault
secondsint300

Start Audio Muted

Method: startAudioMuted(boolean) Determines whether the microphone is muted when joining the session. Set to true to join with audio muted, requiring users to manually unmute. Useful for large meetings to prevent background noise.
.startAudioMuted(true)
ParameterTypeDefault
mutedbooleanfalse

Start Video Paused

Method: startVideoPaused(boolean) Controls whether the camera is turned off when joining the session. Set to true to join with video disabled, allowing users to enable it when ready. Helpful for privacy or bandwidth considerations.
.startVideoPaused(true)
ParameterTypeDefault
pausedbooleanfalse

Audio Mode

Method: setAudioMode(AudioMode) Sets the initial audio output device for the call. Options include SPEAKER for loudspeaker, EARPIECE for phone earpiece, BLUETOOTH for connected Bluetooth devices, or HEADPHONES for wired headphones.
.setAudioMode(AudioMode.SPEAKER)
ParameterTypeDefault
audioModeAudioModeSPEAKER
ValueDescription
SPEAKERDevice loudspeaker
EARPIECEPhone earpiece
BLUETOOTHConnected Bluetooth device
HEADPHONESWired headphones

Initial Camera Facing

Method: setInitialCameraFacing(CameraFacing) Specifies which camera to use when starting the session. Choose FRONT for the front-facing camera (selfie mode) or BACK for the rear camera. Users can switch cameras during the call.
.setInitialCameraFacing(CameraFacing.FRONT)
ParameterTypeDefault
cameraFacingCameraFacingFRONT
ValueDescription
FRONTFront-facing camera
BACKRear camera

Low Bandwidth Mode

Method: enableLowBandwidthMode(boolean) Enables optimization for poor network conditions. When enabled, the SDK reduces video quality and adjusts streaming parameters to maintain call stability on slow or unstable connections.
.enableLowBandwidthMode(true)
ParameterTypeDefault
enabledbooleanfalse

Auto Start Recording

Method: enableAutoStartRecording(boolean) Automatically starts recording the session as soon as it begins. When enabled, recording starts without manual intervention, ensuring the entire session is captured from the start.
.enableAutoStartRecording(true)
ParameterTypeDefault
enabledbooleanfalse

Hide Control Panel

Method: hideControlPanel(boolean) Hides the bottom control bar that contains call action buttons. Set to true to remove the control panel entirely, useful for custom UI implementations or view-only modes.
.hideControlPanel(true)
ParameterTypeDefault
hidebooleanfalse

Hide Header Panel

Method: hideHeaderPanel(boolean) Hides the top header bar that displays the call title and session information. Set to true to maximize the video viewing area or implement a custom header.
.hideHeaderPanel(true)
ParameterTypeDefault
hidebooleanfalse

Hide Session Timer

Method: hideSessionTimer(boolean) Hides the session duration timer that shows how long the call has been active. Set to true to remove the timer display from the interface.
.hideSessionTimer(true)
ParameterTypeDefault
hidebooleanfalse

Hide Leave Session Button

Method: hideLeaveSessionButton(boolean) Hides the button that allows users to leave or end the call. Set to true to remove this button, requiring an alternative method to exit the session.
.hideLeaveSessionButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Toggle Audio Button

Method: hideToggleAudioButton(boolean) Hides the microphone mute/unmute button from the control panel. Set to true to remove audio controls, useful when audio control should be managed programmatically.
.hideToggleAudioButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Toggle Video Button

Method: hideToggleVideoButton(boolean) Hides the camera on/off button from the control panel. Set to true to remove video controls, useful for audio-only calls or custom video control implementations.
.hideToggleVideoButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Switch Camera Button

Method: hideSwitchCameraButton(boolean) Hides the button that allows switching between front and rear cameras. Set to true to remove this control, useful for devices with single cameras or fixed camera requirements.
.hideSwitchCameraButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Recording Button

Method: hideRecordingButton(boolean) Hides the recording start/stop button from the control panel. Set to false to show the recording button, allowing users to manually control session recording.
.hideRecordingButton(false)
ParameterTypeDefault
hidebooleantrue

Hide Screen Sharing Button

Method: hideScreenSharingButton(boolean) Hides the screen sharing button from the control panel. Set to true to remove screen sharing controls, useful when screen sharing is not needed or managed separately.
.hideScreenSharingButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Audio Mode Button

Method: hideAudioModeButton(boolean) Hides the button that toggles between speaker, earpiece, and other audio output modes. Set to true to remove audio mode controls from the interface.
.hideAudioModeButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Raise Hand Button

Method: hideRaiseHandButton(boolean) Hides the raise hand button that participants use to signal they want to speak. Set to true to remove this feature from the interface.
.hideRaiseHandButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Share Invite Button

Method: hideShareInviteButton(boolean) Hides the button that allows sharing session invite links with others. Set to false to show the invite button, enabling easy participant invitation.
.hideShareInviteButton(false)
ParameterTypeDefault
hidebooleantrue

Hide Participant List Button

Method: hideParticipantListButton(boolean) Hides the button that opens the participant list view. Set to true to remove access to the participant list, useful for simplified interfaces.
.hideParticipantListButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Change Layout Button

Method: hideChangeLayoutButton(boolean) Hides the button that allows switching between different layout modes (tile, spotlight, sidebar). Set to true to lock the layout to the initial setting.
.hideChangeLayoutButton(true)
ParameterTypeDefault
hidebooleanfalse

Hide Chat Button

Method: hideChatButton(boolean) Hides the button that opens the in-call chat interface. Set to false to show the chat button, enabling text communication during calls.
.hideChatButton(false)
ParameterTypeDefault
hidebooleantrue
EnumValueDescription
SessionTypeVIDEOVideo call with camera enabled
AUDIOAudio-only call
LayoutTypeTILEGrid layout showing all participants equally
SPOTLIGHTFocus on active speaker with others in sidebar
SIDEBARMain speaker with participants in a sidebar
AudioModeSPEAKERDevice loudspeaker
EARPIECEPhone earpiece
BLUETOOTHConnected Bluetooth device
HEADPHONESWired headphones
CameraFacingFRONTFront-facing camera
BACKRear camera