# CallControlResult

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/CallControlResult.kt+class:androidx.core.telecom.CallControlResult) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

*** ** * ** ***


```
public sealed class CallControlResult
```

<br />

Known direct subclasses [CallControlResult.Error](https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Error), [CallControlResult.Success](https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Success)

|---|---|
| `https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Error` | The associated `https://developer.android.com/reference/androidx/core/telecom/CallControlScope` method failed. |
| `https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Success` | The associated `https://developer.android.com/reference/androidx/core/telecom/CallControlScope` method was successful. |

*** ** * ** ***

CallControlResult is a return value that represents the result of one of the following `https://developer.android.com/reference/androidx/core/telecom/CallControlScope` methods:

- `https://developer.android.com/reference/androidx/core/telecom/CallControlScope#setActive()`

- `https://developer.android.com/reference/androidx/core/telecom/CallControlScope#answer(kotlin.Int)`

- `https://developer.android.com/reference/androidx/core/telecom/CallControlScope#disconnect(android.telecom.DisconnectCause)`

- `https://developer.android.com/reference/androidx/core/telecom/CallControlScope#setInactive()`

- `https://developer.android.com/reference/androidx/core/telecom/CallControlScope#requestEndpointChange(androidx.core.telecom.CallEndpointCompat)`

Each of the above listed methods has the ability to fail and if it does, this will be represented by a `https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Error` (e.g. Telecom was not able to change the call route via requestEndpointChange). Otherwise, `https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Success` is returned to represent the operation succeeded (e.g Telecom was able to set the call active).

Example usage:

```
launch {
    when(val result = setActive()) {
      is CallControlResult.Success -> {
          Log.d(TAG, "onSetActive - ${result}")
          // move call to active state locally
      }
      is CallControlResult.Failure -> {
          Log.w(TAG, "onSetActive - ${result}")
         // surface error to user if required
      }
}
```

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Error extends https://developer.android.com/reference/androidx/core/telecom/CallControlResult` The associated `https://developer.android.com/reference/androidx/core/telecom/CallControlScope` method failed. |
| `public final class https://developer.android.com/reference/androidx/core/telecom/CallControlResult.Success extends https://developer.android.com/reference/androidx/core/telecom/CallControlResult` The associated `https://developer.android.com/reference/androidx/core/telecom/CallControlScope` method was successful. |

| ### Protected constructors |
|---|
| `https://developer.android.com/reference/androidx/core/telecom/CallControlResult#CallControlResult()()` |

## Protected constructors

### CallControlResult

```
protected CallControlResult()
```