Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
0.0 means complete silence, 1.0 loudest
AudioLevelChanged is sent by the SFU to notify about audio levels by user
Used in:
Used in:
CallEnded is sent by the SFU to the client to signal that the call has ended. The reason may specify why the call has ended.
Used in:
CallGrants is sent to users when there is a change in the call permissions to publish audio, video or share the screen for a user or a role. This is idempotent and can be sent at any time. Only the current_grants in the latest message should be considered. In other words, this is not dependent on any other message (including previous call_grants_updated message) When this message is received, the client (say, React component) should mute the tracks which are not allowed anymore. For example, if the message has grants {audio:true, video:false} while the user is publishing video, then the client component should mute the video track and gray out the video button. This way, the user will not be able to publish video until the permissions are granted again. Also, muting the track on the client side will prevent the SFU from receiving the video track and will save bandwidth. In simple words, this is exactly the same as muting a track on the client. Here, instead of the user instructing the client, SFU would be doing it.
Used in:
Used in:
(message has no fields)
sent to users when they need to change the quality of their video
Used in:
ConnectionQuality is sent to inform about connection quality changes eg. thierry's connection is not good -> render a red icon Zoom style
Used in:
Used in:
DominantSpeakerChanged is sent by the SFU to notify when there is a new dominant speaker in the call
Used in:
Used in:
returns the reconnect strategy to be used by the client
Go away is sent by the SFU to the client to signal to migrate away from the SFU. The evict reason may specify why the user is being evicted.
Used in:
Used in:
(message has no fields)
Used in:
Used in:
Used in:
dumb SDP that allow us to extract subscriber's decode codecs
Deprecated: use ReconnectDetails instead
Fast reconnect flag explicitly indicates that if the participant session and the associated state is still present in the SFU, the client is ready to restore the PeerConnection with an ICE restart. If the SFU replies with "reconnected: true" in its JoinResponse, then it is safe to perform an ICE restart or else the existing PeerConnections must be cleaned up. For the SFU, fast_reconnect:false indicates that even if it has the state cached, the client state is not in sync and hence it must be cleaned up before proceeding further.
Used in:
Used in:
Used in:
ParticipantJoined is fired when a user joins a call
Used in:
ParticipantJoined is fired when a user leaves a call
Used in:
Used in:
(message has no fields)
ParticipantUpdated is fired when user data is updated
Used in:
Used in:
the list of pins in the call. Pins are ordered in descending order (most important first).
Used in:
Used in:
only set in case of rejoin
SFUEvent is a message that is sent from the SFU to the client.
SubscriberOffer sends the SDP offer for establishing the subscriber PeerConnection.
PublisherAnswer sends the SDP answer to the offer sent by the client for establishing the Publisher PeerConnection.
ConnectionQualityChanged is sent to inform the connection quality of the participants in the call. It does not have to contain the full list of call participants in it.
AudioLevelChanged is sent for change in audio levels of the participants.
ICETrickle contains the ICE candidate required to establish the ICE transport: part of establishing the PeerConnection and also for ICE restarts.
ChangePublishQuality advises the publisher to switch on/off various qualities of their video stream based on the subscription. This is done to save the bandwidth and the CPU of the publisher.
ParticipantJoined notifies the client that a new participant has joined the call. This is not sent for anonymous users.
ParticipantLeft notifies the client that a call participant has left the call. This is not sent for anonymous users.
DominantSpeakerChanged notifies the client about the current dominant speaker. This is required for certain use cases like the spotlight view.
JoinResponse acknowledges a participant successfully joining the call. This is sent in response to the JoinRequest.
HealthCheckResponse is sent in response to the HealthCheckRequest. It contains the participant count in the call.
TrackPublished is sent when a new track (like audio, video, screenshare) is published by a participant in the call. It is also sent on mute/unmute.
TrackUnpublished is sent when a track (like audio, video, screenshare) is no longer published. It is sent on muting a track or when the participant is leaving the call.
Error is used to communicate any error related to the participant. The error code and the message explain what went wrong. Whether the participant can retry is also indicated.
CallGrantsUpdated tells what tracks a participant is allowed to publish.
GoAway tells the client to migrate away from the SFU it is connected to. The reason field indicates why this message was sent.
ICERestart tells the client to perform ICE restart.
PinsChanged is sent the list of pins in the call changes. This event contains the entire list of pins.
CallEnded is sent by the SFU to the client to signal that the call has ended. The reason may specify why the call has ended.
ParticipantUpdated is sent when user data is updated
ParticipantMigrationComplete is sent when the participant migration is complete
ChangePublishOptions is sent to signal the change in publish options such as a new codec or simulcast layers
SfuRequest is a message that is sent from the client to the SFU.
SubscriberOffer is sent when the SFU adds tracks to a subscription
Used in:
Used in:
Participant information here is included as an optimisation for large calls where broadcasting on every participant join is expensive. You should **NOT** assume that this will always be available though you can use it to update the participant list when it is there.
Used in:
Participant information here is included as an optimisation for large calls where broadcasting on every participant join is expensive. You should **NOT** assume that this will always be available though you can use it to update the participant list when it is there.
VideoLayerSetting is used to specify various parameters of a particular encoding in simulcast. The parameters are specified here - https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpEncodingParameters SDKs use these parameters sent from the server to dynamically adjust these parameters to save CPU, bandwidth
Used in:
Used in: