Skip to content
Platform docs
Auth, users, webhooks & more

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 Event Description
General Call Events
StreamCallCreatedEvent Triggered when a call is created.
StreamCallJoinedEvent Triggered when a user joins a call.
StreamCallEndedEvent Triggered when the call ends.
StreamCallUpdatedEvent Triggered when the call metadata are updated.
StreamCallMissedEvent Triggered when a call is missed.
StreamCallLiveStartedEvent Triggered when a call goes live.
Participant Events
StreamCallParticipantJoinedEvent Triggered when a participant joins the call.
StreamCallParticipantLeftEvent Triggered when a participant leaves the call.
StreamCallDominantSpeakerChangedEvent Triggered when the dominant speaker changes.
Quality and Control Events
StreamCallConnectionQualityChangedEvent Triggered when connection quality changes for participants.
StreamCallAudioLevelChangedEvent Triggered when audio levels change for participants.
StreamCallPermissionRequestEvent Triggered when there is a permission request for a call.
StreamCallPermissionsUpdatedEvent Triggered when permissions for a call are updated.
Call Ringing Events
StreamCallRingingEvent Triggered when the call is ringing.
StreamCallAcceptedEvent Triggered when the call is accepted.
StreamCallRejectedEvent Triggered when the call is rejected.
Recording Events
StreamCallRecordingStartedEvent Triggered when recording starts for a call.
StreamCallRecordingStoppedEvent Triggered when recording stops for a call.
StreamCallRecordingFailedEvent Triggered when recording fails for a call.
StreamCallRecordingReadyEvent Triggered when a recording is ready for download.
Broadcasting Events
StreamCallBroadcastingStartedEvent Triggered when broadcasting starts for a call.
StreamCallBroadcastingStoppedEvent Triggered when broadcasting stops for a call.
StreamCallBroadcastingFailedEvent Triggered when broadcasting fails for a call.
Transcription Events
StreamCallTranscriptionStartedEvent Triggered when transcription starts for a call.
StreamCallTranscriptionStoppedEvent Triggered when transcription stops for a call.
StreamCallTranscriptionFailedEvent Triggered when transcription fails for a call.
Closed Caption Events
StreamCallClosedCaptionsStartedEvent Triggered when closed captions start for a call.
StreamCallClosedCaptionsStoppedEvent Triggered when closed captions stop for a call.
StreamCallClosedCaptionsFailedEvent Triggered when closed captions fail for a call.
StreamCallClosedCaptionsEvent Triggered when a closed caption is received.
Session Events
StreamCallSessionStartedEvent Triggered when a new session starts for a call.
StreamCallSessionEndedEvent Triggered when a session ends for a call.
StreamCallSessionParticipantJoinedEvent Triggered when a participant joins the call session.
StreamCallSessionParticipantLeftEvent Triggered when a participant leaves the call session.
StreamCallSessionParticipantCountUpdatedEvent Triggered when session participant count is updated.
Member Events
StreamCallMemberAddedEvent Triggered when members are added to a call.
StreamCallMemberRemovedEvent Triggered when members are removed from a call.
StreamCallMemberUpdatedEvent Triggered when members are updated in a call.
StreamCallMemberUpdatedPermissionEvent Triggered when member permissions are updated.
Other Events
StreamCallUserBlockedEvent Triggered when a user is blocked in a call.
StreamCallUserUnblockedEvent Triggered when a user is unblocked in a call.
StreamCallReactionEvent Triggered when someone sends a reaction during a call.
StreamCallUserMutedEvent Triggered when users are muted in a call.
StreamCallCustomEvent Triggered 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) { });
Add Chat to my app: getstream.io/SKILL.md

The fastest way to build with Stream. Start a new project or improve an existing one. Full CLI and documentation integration out of the box.


Ask your agent:

/stream Build me a Social App with Feeds and Moderation.
/stream Any livestream calls running?
/stream Video Flutter v1: <Your Question>