Creates a JitsiConference object with the given name and properties. Note: this constructor is not a part of the public API (objects should be created using JitsiConnection.createConference).
Flag set to true when Jicofo sends a presence message indicating that the max audio sender limit has been reached for the call. Once this is set, unmuting audio will be disabled from the client until it gets reset again by Jicofo.
Number of times ICE restarts that have been attempted after ICE connectivity with the JVB was lost.
Flag set to true when Jicofo sends a presence message indicating that the max video sender limit has been reached for the call. Once this is set, unmuting video will be disabled from the client until it gets reset again by Jicofo.
Reports average RTP statistics to the analytics module.
A delay given in seconds, before the conference switches back to P2P after the 3rd participant has left.
The object which monitors local and remote connection statistics (e.g. sending bitrate) and calculates a number which represents the connection quality.
Stores reference to deferred start P2P task. It's created when 3rd participant leaves the room in order to avoid ping pong effect (it could be just a page reload).
Indicates whether the connection is interrupted or not.
If set to true it means the P2P ICE is no longer connected. When false it means that P2P ICE (media) connection is up and running.
Jingle session instance for the JVB connection.
Flag set to true when P2P session has been established (ICE has been connected) and this conference is currently in the peer to peer mode (P2P connection is the active one).
A JingleSession for the direct peer to peer connection.
List of all the participants in the conference.
The object which tracks active speaker times
Accepts an incoming call event for the JVB jingle session.
Method called by the JitsiLocalTrack in order to add the underlying MediaStream to the RTCPeerConnection.
the local track that will be added to the pc.
resolved when the process is done or rejected with a string which describes the error.
Fires TRACK_AUDIO_LEVEL_CHANGED change conference event (for local tracks).
the audio level
Optional
tpc: TraceablePeerConnectionFires CONFERENCE_FAILED event with INCOMPATIBLE_SERVER_VERSIONS parameter
Fires TRACK_MUTE_CHANGED change conference event.
the JitsiTrack object related to the event.
Returns the list of local tracks that need to be added to the peerconnection on join. This takes the startAudioMuted/startVideoMuted flags into consideration since we do not want to add the tracks if the user joins the call audio/video muted. The tracks will be added when the user unmutes for the first time.
Initializes the conference object properties
{object}
{JitsiConnection} overrides this.connection
Handles an incoming call event for the P2P jingle session.
Method called by the JitsiLocalTrack in order to remove the underlying MediaStream from the RTCPeerConnection.
the local track that will be removed.
resolved when the process is done or rejected with a string which describes the error.
Restarts all active media sessions.
Sets the BridgeChannel.
a jQuery selector pointing to the jingle element of the offer IQ which may carry the WebSocket URL for the 'websocket' BridgeChannel mode.
the peer connection which will be used to listen for new WebRTC Data Channels (in the 'datachannel' mode).
Operations related to creating a new track
the new track being created
Stops the current JVB jingle session.
options for stopping JVB session.
One of the Jingle "reason" element names as defined by https://xmpp.org/extensions/xep-0166.html#def-reason
Text description that will be included in the session terminate message.
Whether this is due to a session restart, in which case, session will be set to null.
Whether session-terminate needs to be sent to Jicofo.
Updates conference startMuted policy if needed and fires an event.
if audio should be muted.
if video should be muted.
Receives notifications from other participants about commands / custom events (sent by sendCommand or sendCommandOnce methods).
{String} the name of the command
{Function} handler for the command
Adds a message listener to the lobby room
The listener function, called when a new message is received in the lobby room.
Handler returned to be able to remove it later.
Authenticates and upgrades the role of the local participant/user.
A thenable which (1) settles when the process of authenticating and upgrading the role of the local participant/user finishes and (2) has a cancel method that allows the caller to interrupt the process.
Approve participant access to certain media, allows unmuting audio or video.
"audio" or "video"
the id of the participant.
Reject participant access to certain media, blocks unmuting audio or video.
"audio" or "video"
the id of the participant.
Creates a video SIP GW session and returns it if service is enabled. Before creating a session one need to check whether video SIP GW service is available in the system JitsiConference.isVideoSIPGWAvailable. Even if there are available nodes to serve this request, after creating the session those nodes can be taken and the request about using the created session can fail.
The sip address to be used.
The display name to be used for this session.
Returns null if conference is not initialised and there is no room.
Dials a number.
the number
Disables AV Moderation.
"audio" or "video"
Disabled lobby by moderators
Enables AV Moderation.
"audio" or "video"
Enables lobby by moderators
resolves when lobby room is joined or rejects with the error.
Ends the conference.
Returns the currently active media session if any.
Will return P2P or JVB TraceablePeerConnection depending on which connection is currently active.
null if there isn't any active TraceablePeerConnection currently available. (FIXME how to make package local ?)
Get authorized login.
Returns the breakout rooms manager object.
the breakout rooms manager.
Returns the JitsiConnection used by this this conference.
Returns the connection state for the current room. Its ice connection state for its session. NOTE that "completed" ICE state which can appear on the P2P connection will be converted to "connected".
ICE state name or null if there is no active peer connection at this time.
Returns measured connectionTimes.
Obtains the forwarded sources list in this conference.
Obtains the current value for "lastN". See setLastN for more info.
Obtains local audio track.
Gets a local participant property.
value of the local participant property if the tagName exists in the list of properties, otherwise returns undefined.
Returns the local tracks of the given media type, or all local tracks if no specific type is given.
Optional
mediaType: MediaTypeOptional media type (audio or video).
Obtains local video track.
Returns all the local video tracks.
Returns an array containing all media sessions existing in this conference.
Returns the meeting unique ID if any.
Returns the metadata handler object.
the room metadata handler.
Returns name of this conference.
Returns the current ICE state of the P2P connection. NOTE: method is used by the jitsi-meet-torture tests.
an ICE state or null if there's currently no P2P connection.
the id of the participant.
the participant in this conference with the specified id (or undefined if there isn't one).
Returns the number of participants in the conference, including the local participant.
{boolean} Whether or not to include hidden participants in the count. Default: false.
Array
Obtains the performance statistics.
Returns the phone number for joining the conference.
Returns the pin for joining the conference with phone.
Gets a conference property with a given key.
The key.
The value
Get role of the local user.
user role: 'moderator' or 'none'
Get a summary of how long current participants have been the dominant speaker
Finds the SSRC of a given track
the SSRC of the specificed track, otherwise undefined.
Returns current start muted policy
with 2 properties - audio and video.
Returns the transcription status.
"on" or "off".
Grant owner rights to the participant.
id of the participant to grant owner rights to.
Hangup an existing call
Check if authentication is enabled for this conference.
Returns true if AV Moderation support is enabled in the backend.
whether AV Moderation is supported in the backend.
Allows to check if there is at least one user in the conference that supports DTMF.
true if somebody supports DTMF, false otherwise
Returns whether End-To-End encryption is enabled.
Returns whether End-To-End encryption is supported. Note that not all participants in the conference may support it.
Returns true if end conference support is enabled in the backend.
whether end conference is supported in the backend.
Checks if the user identified by given mucJid is the conference focus.
the full MUC address of the user to be checked.
true if MUC user is the conference focus, false when is not. null if we're not in the MUC anymore and are unable to figure out the status or if given mucJid is invalid.
Returns whether or not the current conference has been joined as a hidden user.
True if hidden, false otherwise. Will return null if no connection is active.
Check if joined to the conference.
Returns true if lobby support is enabled in the backend.
whether lobby is supported in the backend.
Check if user is logged in.
Returns true if the room has members only enabled.
whether conference room is members only.
Check if local user is moderator.
true if local user is moderator, false otherwise. If we're no longer in the conference room then null is returned.
Checks whether or not the conference is currently in the peer to peer mode. Being in peer to peer mode means that the direct connection has been established and the P2P connection is being used for media transmission.
true if in P2P mode or false otherwise.
Tells whether or not the P2P mode is enabled in the configuration.
When in P2P test mode, the conference will not automatically switch to P2P when there 2 participants.
Returns true if the SIP calls are supported and false otherwise
Check if audio is muted on join.
Check if video is muted on join.
Returns true if the room supports visitors feature.
whether conference room has visitors support.
Joins the conference.
{string} the password
{boolean} whether the current join replaces an existing participant with same jwt from the meeting.
Joins the lobby room with display name and optional email or with a shared password to skip waiting.
Display name should be set to show it to moderators.
Optional email is used to present avatar to the moderator.
Kick participant from this conference.
id of the participant to kick
reason of the participant to kick
Leaves the conference.
{string|undefined} The reason for leaving the conference.
Approves the request to join the conference to a participant waiting in the lobby.
The participant id or an array of ids.
Denies an occupant in the lobby room access to the conference.
The participant id.
Set password for the room.
new password for the room.
Marks the given participant as verified. After this is done, MAC verification will be performed and an event will be emitted with the result.
The participant which will be marked as verified.
whether the verification was succesfull.
Mutes a participant.
The id of the participant to mute.
Gets the local id for a participant in a lobby room. Returns undefined when current participant is not in the lobby room. This is used for lobby room private chat messages.
Returns the local user's ID
local user's ID
Removes event listener
the event ID.
Optional
handler: anyoptional, the specific handler to unbind
Note: consider adding eventing functionality by extending an EventEmitter impl, instead of rolling ourselves
Attaches a handler for events(For example - "participant joined".) in the conference. All possible event are defined in JitsiConferenceEvents.
the event ID.
handler for the event.
Note: consider adding eventing functionality by extending an EventEmitter impl, instead of rolling ourselves
Callback called by the Jingle plugin when 'session-answer' is received.
the Jingle session for which an answer was received.
a jQuery selector pointing to 'jingle' IQ element
Handles the call ended event. XXX is this due to the remote side terminating the Jingle session?
the jingle session which has been terminated.
the Jingle reason condition.
human readable reason text which may provide more details about why the call has been terminated.
Adds a one-timelistener
function for the event.
the event ID.
handler for the event.
Handles an incoming call event.
Method called on local MUC role change.
the name of new user's role as defined by XMPP MUC.
Clear JitsiLocalTrack properties and listeners.
the JitsiLocalTrack object.
Notifies this JitsiConference that a new member has joined its chat room.
FIXME This should NOT be exposed!
the jid of the participant in the MUC
the display name of the participant
the role of the participant in the MUC
indicates if this is a hidden participant (system participant for example a recorder).
the participant statsID (optional)
the initial status if any
the member identity, if any
the member botType, if any
the member full jid, if any
the member botType, if any
whether this join replaces a participant with the same jwt.
Designates an event indicating that we were kicked from the XMPP MUC.
whether it is for local participant or another participant.
the id of the participant who was initiator of the kick.
when it is not a kick for local participant, this is the id of the participant which was kicked.
reason of the participant to kick
whether this is a server initiated kick in order to replace it with a participant with same jwt.
Notifies this JitsiConference that a JitsiRemoteTrack was added to the conference.
the JitsiRemoteTrack which was added to this JitsiConference.
Notifies this JitsiConference that a JitsiRemoteTrack was removed from the conference.
Handles the suspend detected event. Leaves the room and fires suspended.
Callback called by the Jingle plugin when 'transport-info' is received.
the Jingle session for which the IQ was received
a jQuery selector pointing to 'jingle' IQ element
Removes presence command.
{String} the name of the command.
Removes command listener
{String} the name of the command
{Function} handler to remove for the command
Removes a message handler from the lobby room
The handler function to remove.
Removes a property for the local participant and sends the updated presence.
Removes JitsiLocalTrack from the conference and performs a new offer/answer cycle.
Replaces oldTrack with newTrack and performs a single offer/answer cycle after both operations are done. Either oldTrack or newTrack can be null; replacing a valid 'oldTrack' with a null 'newTrack' effectively just removes 'oldTrack'
the current stream in use to be replaced
the new stream to use
resolves when the replacement is finished
Revoke owner rights to the participant or local Participant as the user might want to refuse to be a moderator.
id of the participant to revoke owner rights to.
This is a no-op since callstats is no longer supported.
Send presence command.
{String} the name of the command.
{Object} with keys and values that will be sent.
Send presence command one time.
{String} the name of the command.
{Object} with keys and values that will be sent.
Sends a message via the data channel.
{string} the id of the endpoint that should receive the message. If "" the message will be sent to all participants.
{object} the payload of the message.
Sends a face landmarks object to the xmpp server.
Sends the given feedback if enabled.
an integer between 1 and 5 indicating the user feedback
detailed feedback from the user. Not yet used
Resolves if feedback is submitted successfully.
Sends a message to a lobby room. When id is specified it sends a private message. Otherwise it sends the message to all moderators.
The participant id.
Sends a message to a given endpoint (if 'to' is a non-empty string), or broadcasts it to all endpoints in the conference.
the message to send. If this is of type 'string' it will be sent as a chat message. If it is of type 'object', it will be encapsulated in a format recognized by jitsi-meet and converted to JSON before being sent.
The ID of the endpoint/participant which is to receive the message, or '' to broadcast the message to all endpoints in the conference.
Whether to send the message through jitsi-videobridge (via the COLIBRI data channel or web socket), or through the XMPP MUC. Currently only objects can be sent through jitsi-videobridge.
Send private text message to another participant of the conference
the id of the participant to send a private message.
the text message.
the element name to encapsulate the message.
Sends a reaction to the other participants in the conference
the reaction.
the ID of the message to attach the reaction to.
the intended recipient, if the message is private.
Sets the assumed bandwidth bps for the video that is requested from the bridge.
The bandwidth value expressed in bits per second.
Configures the peerconnection so that a given framre rate can be achieved for desktop share.
The capture framerate to be used for desktop tracks.
true if the operation is successful, false otherwise.
Sets the display name for this conference.
the display name to set
Set join without audio
whether user joined without audio
Selects a new value for "lastN". The requested amount of videos are going to be delivered after the value is in effect. Set to -1 for unlimited or all available videos.
the new number of videos the user would like to receive.
Sets a property for the local participant.
Sets the key and index for End-to-End encryption.
Sets the constraints for the video that is requested from the bridge.
The constraints which are specified in the following format. The message updates the fields that are present and leaves the rest unchanged on the bridge. Therefore, any field that is not applicable anymore should be cleared by passing an empty object or list (whatever is applicable). { 'lastN': 20, 'selectedSources': ['A', 'B', 'C'], 'onStageSources': ['A'], 'defaultConstraints': { 'maxHeight': 180 }, 'constraints': { 'A': { 'maxHeight': 720 } } } Where A, B and C are source-names of the remote tracks that are being requested from the bridge.
Sets the maximum video size the local participant should receive from remote participants.
the maximum frame height, in pixels, this receiver is willing to receive.
Sets the maximum video size the local participant should send to remote participants.
The user preferred max frame height.
promise that will be resolved when the operation is successful and rejected otherwise.
Make all new participants mute their audio/video on join.
{Object} object with 2 boolean properties for video and audio:
Set new subject for this conference. (available only for moderator)
new subject
Sets the transcription language. NB: Unlike init here we don't check for the default value since we want to allow the value to be reset.
the new transcription language to be used.
Manually starts new P2P session (should be used only in the tests).
Starts recording the current conference.
Configuration for the recording. See Chatroom#startRecording for more info.
See Chatroom#startRecording for more info.
Starts the participant verification process.
The participant which will be marked as verified.
Manually stops the current P2P session (should be used only in the tests).
Stop a recording session.
The ID of the recording session that should be stopped.
See Chatroom#stopRecording for more info.
Enables / disables End-to-End encryption.
whether to enable E2EE or not.
Remove password from the room.
Static
resourceCreate a resource for the a jid. We use the room nickname (the resource part of the occupant JID, see XEP-0045) as the endpoint ID in colibri. We require endpoint IDs to be 8 hex digits because in some cases they get serialized into a 32bit field.
The id set onto the XMPP connection.
Whether or not the user has connected to the XMPP service with a password.
Creates a JitsiConference object with the given name and properties. Note: this constructor is not a part of the public API (objects should be created using JitsiConnection.createConference).
Param: options.config
properties / settings related to the conference that will be created.
Param: options.name
the name of the conference
Param: options.connection
the JitsiConnection object for this JitsiConference.
Param: options.config.avgRtpStatsN
how many samples are to be collected by AvgRTPStatsReporter, before arithmetic mean is calculated and submitted to the analytics module.
Param: options.config.p2p.enabled
when set to true the peer to peer mode will be enabled. It means that when there are only 2 participants in the conference an attempt to make direct connection will be made. If the connection succeeds the conference will stop sending data through the JVB connection and will use the direct one instead.
Param: options.config.p2p.backToP2PDelay
a delay given in seconds, before the conference switches back to P2P, after the 3rd participant has left the room.
Param: options.config.channelLastN
The requested amount of videos are going to be delivered after the value is in effect. Set to -1 for unlimited or all available videos.