Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jitsi/jitsi-meet/llms.txt

Use this file to discover all available pages before exploring further.

Complete reference for the JitsiMeeting component props (IAppProps), the imperative ref API (JitsiRefProps), and the event listener callbacks (IEventListeners). All types are exported directly from @jitsi/react-native-sdk and are written in TypeScript.

IAppProps — Component Props

These are the props accepted by the <JitsiMeeting /> component. Both room and config are required; all other props are optional.
room
string
required
The conference room to join. Accepts either a plain room name (e.g. "MyRoom") or a fully-qualified URL (e.g. "https://meet.jit.si/MyRoom"). When a full URL is provided, the serverURL prop is ignored.
config
object
required
An object of config.js overrides applied to the conference at join time. Use this to pre-configure conference behaviour — for example, { startWithAudioMuted: true } or { customToolbarButtons: [...] }. See the Jitsi Meet config.js documentation for all available keys.
serverURL
string
The base URL of the Jitsi Meet server to connect to, including the protocol (e.g. "https://meet.jit.si"). If omitted, the SDK defaults to the public meet.jit.si server. Has no effect when room contains a full URL.
flags
object
Feature flags that enable or disable specific conference features. Passed directly into the embedded app as rnSdkHandlers.flags. Consult the Jitsi Meet feature flags reference for the full list of supported keys and their default values.
token
string
A signed JWT authentication token used to authenticate the local user against your Jitsi server. Required when your server enforces token authentication. The token is passed to the conference URL as the jwt query parameter internally.
userInfo
IUserInfo
An object describing the local participant’s identity. See the IUserInfo type section below for the shape. When provided, this overrides whatever display name and avatar the server would otherwise assign.
userInfo={{
  displayName: 'Alice',
  email: 'alice@example.com',
  avatarURL: 'https://example.com/avatars/alice.png'
}}
eventListeners
IEventListeners
An object of optional callback functions that receive conference lifecycle and state-change events. All callbacks are optional — provide only the events you care about. See the IEventListeners section for the full list.
style
object
A React Native ViewStyle object applied to the outer container View that wraps the conference. Use { flex: 1 } to fill the available space, or provide explicit width and height values. The conference will not render visibly without defined dimensions.

JitsiRefProps — Imperative Ref API

Attach a ref typed as React.RefObject<JitsiRefProps> to <JitsiMeeting /> to access these imperative methods. They dispatch Redux actions into the conference’s internal store and take effect immediately on the running conference.
close
() => void
Navigates away from the active conference, ending it for the local participant. Equivalent to pressing the hang-up button in the UI. The component does not unmount itself — you are responsible for removing it from your component tree after calling close() (listen for onReadyToClose to know when it is safe to do so).
setAudioMuted
(muted: boolean) => void
Mutes (true) or unmutes (false) the local participant’s microphone. Triggers an onAudioMutedChanged event after the state changes. Has no effect if called before the conference is joined.
setVideoMuted
(muted: boolean) => void
Disables (true) or enables (false) the local participant’s camera. Triggers an onVideoMutedChanged event after the state changes. Has no effect if called before the conference is joined.
setAudioOnly
(value: boolean) => void
Enables (true) or disables (false) audio-only mode. In audio-only mode, no video is sent or received, reducing bandwidth usage significantly. Useful for low-connectivity scenarios.
getRoomsInfo
() => IRoomsInfo
Returns a snapshot of the current breakout room state, including the list of all rooms, their names, and the participants assigned to each. The return type is IRoomsInfo from react/features/breakout-rooms/types. Returns the current Redux state synchronously.

IEventListeners — Event Callbacks

All properties of IEventListeners are optional functions. Pass only the events you need to handle in the eventListeners prop. Callbacks are registered before the conference joins and remain active for the lifetime of the component.
onConferenceJoined
() => void
Fired when the local user has successfully joined the conference. This is the earliest point at which ref methods such as setAudioMuted are safe to call.
onConferenceLeft
() => void
Fired when the local user has fully left the conference — either by calling close(), pressing the hang-up button, or being removed by a moderator. Typically followed by onReadyToClose.
onConferenceWillJoin
() => void
Fired just before the local user joins the conference, after the connection is established but before the join completes. Use this to show a pre-join loading indicator.
onConferenceBlurred
() => void
Fired when the conference screen loses focus — for example, when the user navigates to another screen within the SDK’s internal navigation stack (such as the chat panel or settings). Use this to pause any overlay UI in your host app.
onConferenceFocused
() => void
Fired when the conference screen regains focus after previously being blurred. Pair with onConferenceBlurred to manage host-app overlays.
onAudioMutedChanged
Function
Fired whenever the local participant’s audio mute state changes — whether triggered programmatically via setAudioMuted() or by the user pressing the mute button in the UI.
onAudioMutedChanged: ({ muted }) => {
  setLocalAudioMuted(muted); // sync your own UI state
}
onVideoMutedChanged
Function
Fired whenever the local participant’s video mute state changes — whether triggered programmatically via setVideoMuted() or by the user pressing the camera button in the UI.
onParticipantJoined
Function
Fired when a remote participant joins the conference. The id field is the participant’s unique endpoint ID within the conference session.
onParticipantLeft
({ id: string }) => void
Fired when a remote participant leaves the conference. The id field matches the one provided in onParticipantJoined.
onEnterPictureInPicture
() => void
Fired when the conference enters Picture-in-Picture mode. Use this to adjust your app’s layout to accommodate the floating PiP window.
onEndpointMessageReceived
(message: any) => void
Fired when a data channel message is received from a remote endpoint. The message payload shape depends on what the sender transmitted. Used for custom in-conference messaging between participants.
onReadyToClose
() => void
Fired when the SDK has finished its teardown sequence and the JitsiMeeting component is safe to unmount. Listen for this event to remove the component from your render tree cleanly without risking resource leaks.
onReadyToClose: () => {
  navigation.goBack(); // safe to unmount now
}

IUserInfo Type

The userInfo prop accepts an object with the following shape. All three fields are strings and all are technically required by the TypeScript interface, though the SDK will fall back to server-side defaults for any that are empty.
FieldTypeDescription
displayNamestringThe display name shown to other participants in the conference UI.
emailstringThe participant’s email address. Used to fetch a Gravatar avatar if avatarURL is empty.
avatarURLstringA fully-qualified URL to the participant’s avatar image. Pass an empty string "" to fall back to the email-based Gravatar.
userInfo: IUserInfo = {
  displayName: 'Alice Smith',
  email: 'alice@example.com',
  avatarURL: 'https://example.com/avatars/alice.png'
}

Build docs developers (and LLMs) love