# CallExtensions

Artifact: [androidx.core:core-telecom](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/telecom/extensions/CallExtensions.kt+class:androidx.core.telecom.extensions.CallExtensions) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

*** ** * ** ***


```
interface CallExtensions
```

<br />

Known direct subclasses [InCallServiceCompat](https://developer.android.com/reference/kotlin/androidx/core/telecom/InCallServiceCompat)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/telecom/InCallServiceCompat` | This class defines the Jetpack InCallService with the additional ability of defining a `https://developer.android.com/reference/kotlin/androidx/lifecycle/LifecycleOwner` |

*** ** * ** ***

Provides the capability for a remote surface (automotive, watch, etc...) to connect to extensions provided by calling applications.

Extensions allow a calling application to support additional optional features beyond the Android platform provided features defined in `https://developer.android.com/reference/android/telecom/Call.html`. When a new `https://developer.android.com/reference/android/telecom/Call.html` has been created, this interface allows the remote surface to also define which extensions that it supports in its UI. If the calling application providing the `https://developer.android.com/reference/android/telecom/Call.html` also supports the extension, the extension will be marked as supported. At that point, the remote surface can receive state updates and send action requests to the calling application to change state.

## Summary

| ### Public functions |
|---|---|
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 26) https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensions#connectExtensions(android.telecom.Call,kotlin.Function1)(call: https://developer.android.com/reference/android/telecom/Call.html, init: https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Connects extensions to the provided `https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensions#connectExtensions(android.telecom.Call,kotlin.Function1)`, allowing the `https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensions#connectExtensions(android.telecom.Call,kotlin.Function1)` to support additional optional behaviors beyond the traditional call state management provided by `https://developer.android.com/reference/android/telecom/Call.html`. |

## Public functions

### connectExtensions

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
@RequiresApi(value = 26)
suspend fun connectExtensions(call: Call, init: CallExtensionScope.() -> Unit): Unit
```

Connects extensions to the provided `https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensions#connectExtensions(android.telecom.Call,kotlin.Function1)`, allowing the `https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensions#connectExtensions(android.telecom.Call,kotlin.Function1)` to support additional optional behaviors beyond the traditional call state management provided by `https://developer.android.com/reference/android/telecom/Call.html`.

| Parameters |
|---|---|
| `call: https://developer.android.com/reference/android/telecom/Call.html` | The `https://developer.android.com/reference/android/telecom/Call.html` to connect extensions on. |
| `init: https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The scope used to initialize and manage extensions in the scope of the `https://developer.android.com/reference/android/telecom/Call.html`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/core/telecom/extensions/CallExtensionScope` |   |