# Call.Callback

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

# Callback

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/telecom/Call.Callback "View this page in Java")  

```
abstract class Callback
```

|---|----------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                 ||
| ↳ | [android.telecom.Call.Callback](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#) |

Defines callbacks which inform the[InCallService](https://developer.android.com/reference/kotlin/android/telecom/InCallService)of changes to a[Call](https://developer.android.com/reference/kotlin/android/telecom/Call). These callbacks can originate from the Telecom framework, or a[ConnectionService](https://developer.android.com/reference/kotlin/android/telecom/ConnectionService)implementation.

You can handle these callbacks by extending the[Callback](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#)class and overriding the callbacks that your[InCallService](https://developer.android.com/reference/kotlin/android/telecom/InCallService)is interested in. The callback methods include the[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)for which the callback applies, allowing reuse of a single instance of your[Callback](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#)implementation, if desired.

Use[Call.registerCallback(Callback)](https://developer.android.com/reference/kotlin/android/telecom/Call#registerCallback(android.telecom.Call.Callback))to register your callback(s). Ensure[Call.unregisterCallback(Callback)](https://developer.android.com/reference/kotlin/android/telecom/Call#unregisterCallback(android.telecom.Call.Callback))is called when you no longer require callbacks (typically in[InCallService.onCallRemoved(Call)](https://developer.android.com/reference/kotlin/android/telecom/InCallService#onCallRemoved(android.telecom.Call))). Note: Callbacks which occur before you call[Call.registerCallback(Callback)](https://developer.android.com/reference/kotlin/android/telecom/Call#registerCallback(android.telecom.Call.Callback))will not reach your implementation of[Callback](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#), so it is important to register your callback as soon as your[InCallService](https://developer.android.com/reference/kotlin/android/telecom/InCallService)is notified of a new call via[InCallService.onCallAdded(Call)](https://developer.android.com/reference/kotlin/android/telecom/InCallService#onCallAdded(android.telecom.Call)).

## Summary

|                                                                                                                                                                                                                                                                        Constants                                                                                                                                                                                                                                                                        ||
|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [HANDOVER_FAILURE_DEST_APP_REJECTED](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_DEST_APP_REJECTED:kotlin.Int) Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when the app to handover the call to rejects the handover request.                |
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [HANDOVER_FAILURE_NOT_SUPPORTED](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_NOT_SUPPORTED:kotlin.Int) Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when a handover is initiated but the source or destination app does not support handover. |
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL:kotlin.Int) Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when there is ongoing emergency call.                                   |
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [HANDOVER_FAILURE_UNKNOWN](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_UNKNOWN:kotlin.Int) Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when a handover fails for an unknown reason.                                                          |
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [HANDOVER_FAILURE_USER_REJECTED](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_USER_REJECTED:kotlin.Int) Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when the remote user rejects the handover request.                                        |

|                                                Public constructors                                                ||
|----------------------------------------------------------------------------------------------------------------|---|
| [Callback](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#Callback())`()` <br /> |

|                                                                                                                                                                                                                                                                                                                                                                                                                              Public methods                                                                                                                                                                                                                                                                                                                                                                                                                              ||
|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onCallDestroyed](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onCallDestroyed(android.telecom.Call))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`)` Invoked when the`Call`is destroyed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onCannedTextResponsesLoaded](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onCannedTextResponsesLoaded(android.telecom.Call,%20kotlin.collections.MutableList))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `cannedTextResponses:` `[MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!>!`)` Invoked when the text messages that can be used as responses to the incoming`Call`are loaded from the relevant database.                                                                                                                                               |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onChildrenChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onChildrenChanged(android.telecom.Call,%20kotlin.collections.MutableList))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `children:` `[MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)<[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!>!`)` Invoked when the children of this`Call`have changed.                                                                                                                                                                                                                                                       |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onConferenceableCallsChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onConferenceableCallsChanged(android.telecom.Call,%20kotlin.collections.MutableList))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `conferenceableCalls:` `[MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)<[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!>!`)` Invoked upon changes to the set of`Call`s with which this`Call`can be conferenced.                                                                                                                                                                                        |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onConnectionEvent](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onConnectionEvent(android.telecom.Call,%20kotlin.String,%20android.os.Bundle))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `event:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!`, `extras:` `[Bundle](https://developer.android.com/reference/kotlin/android/os/Bundle.html#)!`)` Invoked when a[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)receives an event from its associated[Connection](https://developer.android.com/reference/kotlin/android/telecom/Connection)or[Conference](https://developer.android.com/reference/kotlin/android/telecom/Conference). |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onDetailsChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onDetailsChanged(android.telecom.Call,%20android.telecom.Call.Details))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `details:` `[Call.Details](https://developer.android.com/reference/kotlin/android/telecom/Call.Details)!`)` Invoked when the details of this`Call`have changed.                                                                                                                                                                                                                                                                                                                                                       |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onHandoverComplete](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverComplete(android.telecom.Call))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`)` Invoked when Call handover from one[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)to other[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)has completed successfully.                                                                                                                                                                                                                                                                                     |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onHandoverFailed](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `failureReason:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Invoked when Call handover from one[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)to other[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)has failed.                                                                                                                                                                                            |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onParentChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onParentChanged(android.telecom.Call,%20android.telecom.Call))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `parent:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`)` Invoked when the parent of this`Call`has changed.                                                                                                                                                                                                                                                                                                                                                                                    |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onPostDialWait](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onPostDialWait(android.telecom.Call,%20kotlin.String))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `remainingPostDialSequence:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!`)` Invoked when the post-dial sequence in the outgoing`Call`has reached a pause character.                                                                                                                                                                                                                                                                                                                               |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRttInitiationFailure](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onRttInitiationFailure(android.telecom.Call,%20kotlin.Int))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `reason:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Invoked when the RTT session failed to initiate for some reason, including rejection by the remote party.                                                                                                                                                                                                                                                                                                                          |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRttModeChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onRttModeChanged(android.telecom.Call,%20kotlin.Int))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `mode:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Invoked when the RTT mode changes for this call.                                                                                                                                                                                                                                                                                                                                                                                                 |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRttRequest](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onRttRequest(android.telecom.Call,%20kotlin.Int))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `id:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Invoked when the remote end of the connection has requested that an RTT communication channel be opened.                                                                                                                                                                                                                                                                                                                                                   |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onRttStatusChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onRttStatusChanged(android.telecom.Call,%20kotlin.Boolean,%20android.telecom.Call.RttCall))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `enabled:` `[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`, `rttCall:` `[Call.RttCall](https://developer.android.com/reference/kotlin/android/telecom/Call.RttCall)!`)` Invoked when the call's RTT status changes, either from off to on or from on to off.                                                                                                                                                                                               |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onStateChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onStateChanged(android.telecom.Call,%20kotlin.Int))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `state:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Invoked when the state of this`Call`has changed.                                                                                                                                                                                                                                                                                                                                                                                                    |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onVideoCallChanged](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onVideoCallChanged(android.telecom.Call,%20android.telecom.InCallService.VideoCall))`(`call:` `[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!`, `videoCall:` `[InCallService.VideoCall](https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall)!`)` Invoked when the`Call.VideoCall`of the`Call`has changed.                                                                                                                                                                                                                                                                                                           |

## Constants

### HANDOVER_FAILURE_DEST_APP_REJECTED

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

```
static val HANDOVER_FAILURE_DEST_APP_REJECTED: Int
```

Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when the app to handover the call to rejects the handover request.

Will be returned when[Call.handoverTo(PhoneAccountHandle, int, Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle))is called and the destination[PhoneAccountHandle](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccountHandle)'s[ConnectionService](https://developer.android.com/reference/kotlin/android/telecom/ConnectionService)returns a`null`[Connection](https://developer.android.com/reference/kotlin/android/telecom/Connection)from[ConnectionService.onCreateOutgoingHandoverConnection(PhoneAccountHandle,](https://developer.android.com/reference/kotlin/android/telecom/ConnectionService#onCreateOutgoingHandoverConnection(android.telecom.PhoneAccountHandle,%20android.telecom.ConnectionRequest)).

For more information on call handovers, see[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).  

    Value: 1

### HANDOVER_FAILURE_NOT_SUPPORTED

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

```
static val HANDOVER_FAILURE_NOT_SUPPORTED: Int
```

Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when a handover is initiated but the source or destination app does not support handover.

Will be returned when a handover is requested via[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle))and the destination[PhoneAccountHandle](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccountHandle)does not declare[PhoneAccount.EXTRA_SUPPORTS_HANDOVER_TO](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount#EXTRA_SUPPORTS_HANDOVER_TO:kotlin.String). May also be returned when a handover is requested at the[PhoneAccountHandle](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccountHandle)for the current call (i.e. the source call's[Details.getAccountHandle()](https://developer.android.com/reference/kotlin/android/telecom/Call.Details#getAccountHandle())) does not declare[PhoneAccount.EXTRA_SUPPORTS_HANDOVER_FROM](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount#EXTRA_SUPPORTS_HANDOVER_FROM:kotlin.String).

For more information on call handovers, see[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).  

    Value: 2

### HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL

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

```
static val HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL: Int
```

Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when there is ongoing emergency call.

This error code is returned when[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle))is called on an emergency call, or if any other call is an emergency call.

Handovers are not permitted while there are ongoing emergency calls.

For more information on call handovers, see[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).  

    Value: 4

### HANDOVER_FAILURE_UNKNOWN

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

```
static val HANDOVER_FAILURE_UNKNOWN: Int
```

Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when a handover fails for an unknown reason.

For more information on call handovers, see[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).  

    Value: 5

### HANDOVER_FAILURE_USER_REJECTED

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

```
static val HANDOVER_FAILURE_USER_REJECTED: Int
```

Handover failure reason returned via[onHandoverFailed(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20kotlin.Int))when the remote user rejects the handover request.

For more information on call handovers, see[handoverTo(android.telecom.PhoneAccountHandle,int,android.os.Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).  

    Value: 3

## Public constructors

### Callback

```
Callback()
```

## Public methods

### onCallDestroyed

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

```
open fun onCallDestroyed(call: Call!): Unit
```

Invoked when the`Call`is destroyed. Clients should refrain from cleaning up their UI for the`Call`in response to state transitions. Specifically, clients should not assume that a[onStateChanged(android.telecom.Call,int)](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#onStateChanged(android.telecom.Call,%20kotlin.Int))with a state of[STATE_DISCONNECTED](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_DISCONNECTED:kotlin.Int)is the final notification the`Call`will send. Rather, clients should wait for this method to be invoked.

|                                                   Parameters                                                   ||
|--------|--------------------------------------------------------------------------------------------------------|
| `call` | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`being destroyed. |

### onCannedTextResponsesLoaded

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

```
open fun onCannedTextResponsesLoaded(
    call: Call!, 
    cannedTextResponses: MutableList<String!>!
): Unit
```

Invoked when the text messages that can be used as responses to the incoming`Call`are loaded from the relevant database. See[getCannedTextResponses()](https://developer.android.com/reference/kotlin/android/telecom/Call#getCannedTextResponses()).

|                                                                                                                          Parameters                                                                                                                          ||
|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`                | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method.                                                                                                                           |
| `cannedTextResponses` | [MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!\>!:The text messages useable as responses. |

### onChildrenChanged

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

```
open fun onChildrenChanged(
    call: Call!, 
    children: MutableList<Call!>!
): Unit
```

Invoked when the children of this`Call`have changed. See[getChildren()](https://developer.android.com/reference/kotlin/android/telecom/Call#getChildren()).

|                                                                                                             Parameters                                                                                                              ||
|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`     | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method.                                                                                                             |
| `children` | [MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)\<[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!\>!:The new children of the`Call`. |

### onConferenceableCallsChanged

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

```
open fun onConferenceableCallsChanged(
    call: Call!, 
    conferenceableCalls: MutableList<Call!>!
): Unit
```

Invoked upon changes to the set of`Call`s with which this`Call`can be conferenced.

|                                                                                                                             Parameters                                                                                                                              ||
|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`                | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`being updated.                                                                                                                                         |
| `conferenceableCalls` | [MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)\<[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!\>!:The`Call`s with which this`Call`can be conferenced. |

### onConnectionEvent

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

```
open fun onConnectionEvent(
    call: Call!, 
    event: String!, 
    extras: Bundle!
): Unit
```

Invoked when a[Call](https://developer.android.com/reference/kotlin/android/telecom/Call)receives an event from its associated[Connection](https://developer.android.com/reference/kotlin/android/telecom/Connection)or[Conference](https://developer.android.com/reference/kotlin/android/telecom/Conference).

Where possible, the Call should make an attempt to handle[Connection](https://developer.android.com/reference/kotlin/android/telecom/Connection)events which are part of the`android.telecom.*`namespace. The Call should ignore any events it does not wish to handle. Unexpected events should be handled gracefully, as it is possible that a[ConnectionService](https://developer.android.com/reference/kotlin/android/telecom/ConnectionService)has defined its own Connection events which a Call is not aware of.

See[Connection.sendConnectionEvent(String, Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Connection#sendConnectionEvent(kotlin.String,%20android.os.Bundle)),[Conference.sendConferenceEvent(String, Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Conference#sendConferenceEvent(kotlin.String,%20android.os.Bundle)).

|                                                                Parameters                                                                ||
|----------|--------------------------------------------------------------------------------------------------------------------------------|
| `call`   | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`receiving the event.                     |
| `event`  | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!:The event.                                   |
| `extras` | [Bundle](https://developer.android.com/reference/kotlin/android/os/Bundle.html#)!:Extras associated with the connection event. |

### onDetailsChanged

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

```
open fun onDetailsChanged(
    call: Call!, 
    details: Call.Details!
): Unit
```

Invoked when the details of this`Call`have changed. See[getDetails()](https://developer.android.com/reference/kotlin/android/telecom/Call#getDetails()).

|                                                                   Parameters                                                                   ||
|-----------|-------------------------------------------------------------------------------------------------------------------------------------|
| `call`    | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method.                         |
| `details` | [Call.Details](https://developer.android.com/reference/kotlin/android/telecom/Call.Details)!:A`Details`object describing the`Call`. |

### onHandoverComplete

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

```
open fun onHandoverComplete(call: Call!): Unit
```

Invoked when Call handover from one[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)to other[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)has completed successfully.

For a full discussion of the handover process and the APIs involved, see[android.telecom.Call#handoverTo(PhoneAccountHandle, int, Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).

|                                                         Parameters                                                          ||
|--------|---------------------------------------------------------------------------------------------------------------------|
| `call` | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The call which had initiated handover. |

### onHandoverFailed

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

```
open fun onHandoverFailed(
    call: Call!, 
    failureReason: Int
): Unit
```

Invoked when Call handover from one[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)to other[PhoneAccount](https://developer.android.com/reference/kotlin/android/telecom/PhoneAccount)has failed.

For a full discussion of the handover process and the APIs involved, see[android.telecom.Call#handoverTo(PhoneAccountHandle, int, Bundle)](https://developer.android.com/reference/kotlin/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20kotlin.Int,%20android.os.Bundle)).

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ||
|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`          | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The call which had initiated handover.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `failureReason` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):Error reason for failure. Value is[android.telecom.Call.Callback#HANDOVER_FAILURE_DEST_APP_REJECTED](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_DEST_APP_REJECTED:kotlin.Int),[android.telecom.Call.Callback#HANDOVER_FAILURE_NOT_SUPPORTED](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_NOT_SUPPORTED:kotlin.Int),[android.telecom.Call.Callback#HANDOVER_FAILURE_USER_REJECTED](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_USER_REJECTED:kotlin.Int),[android.telecom.Call.Callback#HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_ONGOING_EMERGENCY_CALL:kotlin.Int), or[android.telecom.Call.Callback#HANDOVER_FAILURE_UNKNOWN](https://developer.android.com/reference/kotlin/android/telecom/Call.Callback#HANDOVER_FAILURE_UNKNOWN:kotlin.Int) |

### onParentChanged

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

```
open fun onParentChanged(
    call: Call!, 
    parent: Call!
): Unit
```

Invoked when the parent of this`Call`has changed. See[getParent()](https://developer.android.com/reference/kotlin/android/telecom/Call#getParent()).

|                                                      Parameters                                                       ||
|----------|-------------------------------------------------------------------------------------------------------------|
| `call`   | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method. |
| `parent` | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The new parent of the`Call`.   |

### onPostDialWait

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

```
open fun onPostDialWait(
    call: Call!, 
    remainingPostDialSequence: String!
): Unit
```

Invoked when the post-dial sequence in the outgoing`Call`has reached a pause character. This causes the post-dial signals to stop pending user confirmation. An implementation should present this choice to the user and invoke[postDialContinue(boolean)](https://developer.android.com/reference/kotlin/android/telecom/Call#postDialContinue(kotlin.Boolean))when the user makes the choice.

|                                                                           Parameters                                                                            ||
|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| `call`                      | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method.                        |
| `remainingPostDialSequence` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!:The post-dial characters that remain to be sent. |

### onRttInitiationFailure

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

```
open fun onRttInitiationFailure(
    call: Call!, 
    reason: Int
): Unit
```

Invoked when the RTT session failed to initiate for some reason, including rejection by the remote party.

This callback will ONLY be invoked to report a failure related to a user initiated session modification request (i.e.[Call.sendRttRequest()](https://developer.android.com/reference/kotlin/android/telecom/Call#sendRttRequest())).

If a call is initiated with[TelecomManager.EXTRA_START_CALL_WITH_RTT](https://developer.android.com/reference/kotlin/android/telecom/TelecomManager#EXTRA_START_CALL_WITH_RTT:kotlin.String)specified, the availability of RTT can be determined by checking[Details.PROPERTY_RTT](https://developer.android.com/reference/kotlin/android/telecom/Call.Details#PROPERTY_RTT:kotlin.Int)once the call enters state[Details.STATE_ACTIVE](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_ACTIVE:kotlin.Int).

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ||
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`   | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The call which the RTT initiation failure occurred on.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `reason` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):One of the status codes defined in[android.telecom.Connection.RttModifyStatus](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus), with the exception of[android.telecom.Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_SUCCESS](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_SUCCESS:kotlin.Int). Value is[android.telecom.Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_SUCCESS](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_SUCCESS:kotlin.Int),[android.telecom.Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_FAIL](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_FAIL:kotlin.Int),[android.telecom.Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_INVALID](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_INVALID:kotlin.Int),[android.telecom.Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_TIMED_OUT](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_TIMED_OUT:kotlin.Int), or[android.telecom.Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE](https://developer.android.com/reference/kotlin/android/telecom/Connection.RttModifyStatus#SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE:kotlin.Int) |

### onRttModeChanged

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

```
open fun onRttModeChanged(
    call: Call!, 
    mode: Int
): Unit
```

Invoked when the RTT mode changes for this call.

|                                                                                                                                                                                                                                             Parameters                                                                                                                                                                                                                                              ||
|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call` | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The call whose RTT mode has changed.                                                                                                                                                                                                                                                                                                                                                                           |
| `mode` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the new RTT mode, one of[RttCall.RTT_MODE_FULL](https://developer.android.com/reference/kotlin/android/telecom/Call.RttCall#RTT_MODE_FULL:kotlin.Int),[RttCall.RTT_MODE_HCO](https://developer.android.com/reference/kotlin/android/telecom/Call.RttCall#RTT_MODE_HCO:kotlin.Int), or[RttCall.RTT_MODE_VCO](https://developer.android.com/reference/kotlin/android/telecom/Call.RttCall#RTT_MODE_VCO:kotlin.Int) |

### onRttRequest

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

```
open fun onRttRequest(
    call: Call!, 
    id: Int
): Unit
```

Invoked when the remote end of the connection has requested that an RTT communication channel be opened. A response to this should be sent via[respondToRttRequest](https://developer.android.com/reference/kotlin/android/telecom/Call#respondToRttRequest(kotlin.Int,%20kotlin.Boolean))with the same ID that this method is invoked with.

|                                                            Parameters                                                             ||
|--------|---------------------------------------------------------------------------------------------------------------------------|
| `call` | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The call which the RTT request was placed on |
| `id`   | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):The ID of the request.                         |

### onRttStatusChanged

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

```
open fun onRttStatusChanged(
    call: Call!, 
    enabled: Boolean, 
    rttCall: Call.RttCall!
): Unit
```

Invoked when the call's RTT status changes, either from off to on or from on to off.

|                                                                                                                                Parameters                                                                                                                                ||
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`    | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The call whose RTT status has changed.                                                                                                                                           |
| `enabled` | [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html):whether RTT is now enabled or disabled                                                                                                                                     |
| `rttCall` | [Call.RttCall](https://developer.android.com/reference/kotlin/android/telecom/Call.RttCall)!:the[RttCall](https://developer.android.com/reference/kotlin/android/telecom/Call.RttCall)object to use for reading and writing if RTT is now on, null otherwise. |

### onStateChanged

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

```
open fun onStateChanged(
    call: Call!, 
    state: Int
): Unit
```

Invoked when the state of this`Call`has changed. See[getState()](https://developer.android.com/reference/kotlin/android/telecom/Call#getState()).

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Parameters                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ||
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`  | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `state` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):The new state of the`Call`. Value is[android.telecom.Call#STATE_NEW](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_NEW:kotlin.Int),[android.telecom.Call#STATE_DIALING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_DIALING:kotlin.Int),[android.telecom.Call#STATE_RINGING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_RINGING:kotlin.Int),[android.telecom.Call#STATE_HOLDING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_HOLDING:kotlin.Int),[android.telecom.Call#STATE_ACTIVE](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_ACTIVE:kotlin.Int),[android.telecom.Call#STATE_DISCONNECTED](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_DISCONNECTED:kotlin.Int),[android.telecom.Call#STATE_SELECT_PHONE_ACCOUNT](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_SELECT_PHONE_ACCOUNT:kotlin.Int),[android.telecom.Call#STATE_CONNECTING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_CONNECTING:kotlin.Int),[android.telecom.Call#STATE_DISCONNECTING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_DISCONNECTING:kotlin.Int),[android.telecom.Call#STATE_PULLING_CALL](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_PULLING_CALL:kotlin.Int),[android.telecom.Call#STATE_AUDIO_PROCESSING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_AUDIO_PROCESSING:kotlin.Int), or[android.telecom.Call#STATE_SIMULATED_RINGING](https://developer.android.com/reference/kotlin/android/telecom/Call#STATE_SIMULATED_RINGING:kotlin.Int) |

### onVideoCallChanged

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

```
open fun onVideoCallChanged(
    call: Call!, 
    videoCall: InCallService.VideoCall!
): Unit
```

Invoked when the`Call.VideoCall`of the`Call`has changed.

|                                                                                  Parameters                                                                                   ||
|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `call`      | [Call](https://developer.android.com/reference/kotlin/android/telecom/Call)!:The`Call`invoking this method.                                                      |
| `videoCall` | [InCallService.VideoCall](https://developer.android.com/reference/kotlin/android/telecom/InCallService.VideoCall)!:The`Call.VideoCall`associated with the`Call`. |