Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

# CallEventCallback

*** ** * ** ***

` public interface CallEventCallback `   
` `

|---|
| android.telecom.CallEventCallback |

<br />

*** ** * ** ***

CallEventCallback relays call updates (that do not require any action) from the Telecom framework out to the application. This can include operations which the app must implement on a Call due to the presence of other calls on the device, requests relayed from a Bluetooth device, or from another calling surface.

## Summary

| ### Public methods ||
|---|---|
| ` abstract void` | ` https://developer.android.com/reference/android/telecom/CallEventCallback#onAvailableCallEndpointsChanged(java.util.List<android.telecom.CallEndpoint>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/telecom/CallEndpoint> availableEndpoints) ` Telecom is informing the client that the available `https://developer.android.com/reference/android/telecom/CallEndpoint`s have changed. |
| ` abstract void` | ` https://developer.android.com/reference/android/telecom/CallEventCallback#onCallEndpointChanged(android.telecom.CallEndpoint)(https://developer.android.com/reference/android/telecom/CallEndpoint newCallEndpoint) ` Telecom is informing the client the current `https://developer.android.com/reference/android/telecom/CallEndpoint` changed. |
| ` abstract void` | ` https://developer.android.com/reference/android/telecom/CallEventCallback#onCallStreamingFailed(int)(int reason) ` Telecom is informing the client user requested call streaming but the stream can't be started. |
| ` abstract void` | ` https://developer.android.com/reference/android/telecom/CallEventCallback#onEvent(java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/java/lang/String event, https://developer.android.com/reference/android/os/Bundle extras) ` Informs this `https://developer.android.com/reference/android/telecom/CallEventCallback` on events raised from a `https://developer.android.com/reference/android/telecom/InCallService` presenting this call. |
| ` abstract void` | ` https://developer.android.com/reference/android/telecom/CallEventCallback#onMuteStateChanged(boolean)(boolean isMuted) ` Called when the mute state changes. |
| ` default void` | ` https://developer.android.com/reference/android/telecom/CallEventCallback#onVideoStateChanged(int)(int videoState) ` Called when the video state changes. |

## Public methods

### onAvailableCallEndpointsChanged

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onAvailableCallEndpointsChanged (List<CallEndpoint> availableEndpoints)
```

Telecom is informing the client that the available `https://developer.android.com/reference/android/telecom/CallEndpoint`s have changed.

<br />

| Parameters ||
|---|---|
| `availableEndpoints` | `List`: The set of available `https://developer.android.com/reference/android/telecom/CallEndpoint`s reported by Telecom. This value cannot be `null`. <br /> |

### onCallEndpointChanged

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onCallEndpointChanged (CallEndpoint newCallEndpoint)
```

Telecom is informing the client the current `https://developer.android.com/reference/android/telecom/CallEndpoint` changed.

<br />

| Parameters ||
|---|---|
| `newCallEndpoint` | `CallEndpoint`: The new `https://developer.android.com/reference/android/telecom/CallEndpoint` through which call media flows (i.e. speaker, bluetooth, etc.). This value cannot be `null`. <br /> |

### onCallStreamingFailed

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onCallStreamingFailed (int reason)
```

Telecom is informing the client user requested call streaming but the stream can't be started.

<br />

| Parameters ||
|---|---|
| `reason` | `int`: Code to indicate the reason of this failure. Value is one of the following: |

### onEvent

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onEvent (String event, 
                Bundle extras)
```

Informs this `https://developer.android.com/reference/android/telecom/CallEventCallback` on events raised from a `https://developer.android.com/reference/android/telecom/InCallService` presenting this call. These events and the associated extra keys for the `Bundle` parameter are mutually defined by a VoIP application and `https://developer.android.com/reference/android/telecom/InCallService`. This enables alternative calling surfaces, such as an automotive UI, to relay requests to perform other non-standard call actions to the app. For example, an automotive calling solution may offer the ability for the user to raise their hand during a meeting.

<br />

| Parameters ||
|---|---|
| `event` | `String`: a string event identifier agreed upon between a VoIP application and an `https://developer.android.com/reference/android/telecom/InCallService` This value cannot be `null`. <br /> |
| `extras` | `Bundle`: a `https://developer.android.com/reference/android/os/Bundle` containing information about the event, as agreed upon between a VoIP application and `https://developer.android.com/reference/android/telecom/InCallService`. This value cannot be `null`. <br /> |

### onMuteStateChanged

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void onMuteStateChanged (boolean isMuted)
```

Called when the mute state changes.

<br />

| Parameters ||
|---|---|
| `isMuted` | `boolean`: The current mute state. <br /> |

### onVideoStateChanged

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onVideoStateChanged (int videoState)
```

Called when the video state changes.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The current video state. Value is one of the following: - `https://developer.android.com/reference/android/telecom/CallAttributes#AUDIO_CALL` - `https://developer.android.com/reference/android/telecom/CallAttributes#VIDEO_CALL` - `https://developer.android.com/reference/android/telecom/CallAttributes#MESSAGING` |