Call Events

There are multiple events that you can listen to during a call. You can use them to update the UI, show notifications, or log the call events. You can listen to them via callEvents stream in the Call object.

Here are some of the events you can listen to:

Call EventDescription
General Call Events
StreamCallCreatedEventTriggered when a call is created.
StreamCallJoinedEventTriggered when a user joins a call.
StreamCallEndedEventTriggered when the call ends.
StreamCallUpdatedEventTriggered when the call metadata are updated.
StreamCallMissedEventTriggered when a call is missed.
StreamCallLiveStartedEventTriggered when a call goes live.
Participant Events
StreamCallParticipantJoinedEventTriggered when a participant joins the call.
StreamCallParticipantLeftEventTriggered when a participant leaves the call.
StreamCallDominantSpeakerChangedEventTriggered when the dominant speaker changes.
Quality and Control Events
StreamCallConnectionQualityChangedEventTriggered when connection quality changes for participants.
StreamCallAudioLevelChangedEventTriggered when audio levels change for participants.
StreamCallPermissionRequestEventTriggered when there is a permission request for a call.
StreamCallPermissionsUpdatedEventTriggered when permissions for a call are updated.
Call Ringing Events
StreamCallRingingEventTriggered when the call is ringing.
StreamCallAcceptedEventTriggered when the call is accepted.
StreamCallRejectedEventTriggered when the call is rejected.
Recording Events
StreamCallRecordingStartedEventTriggered when recording starts for a call.
StreamCallRecordingStoppedEventTriggered when recording stops for a call.
StreamCallRecordingFailedEventTriggered when recording fails for a call.
StreamCallRecordingReadyEventTriggered when a recording is ready for download.
Broadcasting Events
StreamCallBroadcastingStartedEventTriggered when broadcasting starts for a call.
StreamCallBroadcastingStoppedEventTriggered when broadcasting stops for a call.
StreamCallBroadcastingFailedEventTriggered when broadcasting fails for a call.
Transcription Events
StreamCallTranscriptionStartedEventTriggered when transcription starts for a call.
StreamCallTranscriptionStoppedEventTriggered when transcription stops for a call.
StreamCallTranscriptionFailedEventTriggered when transcription fails for a call.
Closed Caption Events
StreamCallClosedCaptionsStartedEventTriggered when closed captions start for a call.
StreamCallClosedCaptionsStoppedEventTriggered when closed captions stop for a call.
StreamCallClosedCaptionsFailedEventTriggered when closed captions fail for a call.
StreamCallClosedCaptionsEventTriggered when a closed caption is received.
Session Events
StreamCallSessionStartedEventTriggered when a new session starts for a call.
StreamCallSessionEndedEventTriggered when a session ends for a call.
StreamCallSessionParticipantJoinedEventTriggered when a participant joins the call session.
StreamCallSessionParticipantLeftEventTriggered when a participant leaves the call session.
StreamCallSessionParticipantCountUpdatedEventTriggered when session participant count is updated.
Member Events
StreamCallMemberAddedEventTriggered when members are added to a call.
StreamCallMemberRemovedEventTriggered when members are removed from a call.
StreamCallMemberUpdatedEventTriggered when members are updated in a call.
StreamCallMemberUpdatedPermissionEventTriggered when member permissions are updated.
Other Events
StreamCallUserBlockedEventTriggered when a user is blocked in a call.
StreamCallUserUnblockedEventTriggered when a user is unblocked in a call.
StreamCallReactionEventTriggered when someone sends a reaction during a call.
StreamCallUserMutedEventTriggered when users are muted in a call.
StreamCallCustomEventTriggered for custom events.

Custom event

Stream Video also supports custom events. This is a real-time layer that you can broadcast your own events to.

Sending custom events

You can use the sendCustomEvent method of the Call instance to send custom events:

call.sendCustomEvent(
    eventType: 'my-custom-event',
    custom: {
      'key': 'value',
    },
);

Receiving custom events

​ You can listen to custom events by listening to the StreamCallCustomEvent event via the same callEvents stream:

call.callEvents.on<StreamCallCustomEvent>((event) { });
© Getstream.io, Inc. All Rights Reserved.