# 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:

```dart
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:

```dart
call.callEvents.on<StreamCallCustomEvent>((event) { });
```


---

This page was last updated at 2026-03-13T13:17:59.631Z.

For the most recent version of this documentation, visit [https://getstream.io/video/docs/flutter/guides/call-events/](https://getstream.io/video/docs/flutter/guides/call-events/).