Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/telecom/Call#nestedclasses) \| [Constants](https://developer.android.com/reference/android/telecom/Call#constants) \| [Methods](https://developer.android.com/reference/android/telecom/Call#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/telecom/Call#inhmethods)

# Call

*** ** * ** ***


`
public

final

class
Call
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.telecom.Call |

<br />

*** ** * ** ***

Represents an ongoing phone call that the in-call app should present to the user.

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/telecom/Call.Callback` Defines callbacks which inform the `https://developer.android.com/reference/android/telecom/InCallService` of changes to a `https://developer.android.com/reference/android/telecom/Call`. |
| ` class` | `https://developer.android.com/reference/android/telecom/Call.Details` |
| ` class` | `https://developer.android.com/reference/android/telecom/Call.RttCall` A class that holds the state that describes the state of the RTT channel to the remote party, if it is active. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/telecom/Call#AUDIO_PROCESSING_USE_CASE_ASK_TO_HOLD` The audio processing is done when the user asks to hold. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#AUDIO_PROCESSING_USE_CASE_CALL_SCREENING` The audio processing is done for spam detection. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#AUDIO_PROCESSING_USE_CASE_UNKNOWN` The audio processing use case is unknown. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#AUDIO_PROCESSING_USE_CASE_VOICEMAIL` The audio processing use case is voice mail. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#AVAILABLE_PHONE_ACCOUNTS` *This constant was deprecated in API level 29. Use the list from `https://developer.android.com/reference/android/telecom/Call#EXTRA_SUGGESTED_PHONE_ACCOUNTS` instead.* |
| `int` | `https://developer.android.com/reference/android/telecom/Call#CRS_MEDIA_TYPE_AUDIO` Indicates CRS contains audio |
| `int` | `https://developer.android.com/reference/android/telecom/Call#CRS_MEDIA_TYPE_NONE` Indicates not a CRS call |
| `int` | `https://developer.android.com/reference/android/telecom/Call#CRS_MEDIA_TYPE_VIDEO` Indicates CRS contains video |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EVENT_CLEAR_DIAGNOSTIC_MESSAGE` Event reported from the telecom framework when a diagnostic message previously raised with `https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE` has cleared and is no longer pertinent. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE` Event reported from the Telecom stack to report an in-call diagnostic message which the dialer app may opt to display to the user. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EVENT_PHONE_ACCOUNT_CHANGED` Connection event used to notify InCallService of phoneaccount changes. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_ASSERTED_DISPLAY_NAME` String value indicating the asserted display name reported via ImsCallProfile#EXTRA_ASSERTED_DISPLAY_NAME. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_CRS_AUDIO_MODE` Extra key to indicate the audio mode that should be set for playing the network-provided Customized Ringing Signal (CRS). |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_CRS_MEDIA_TYPE` Extra key to indicate the type of media a Customized Ringing Signal (CRS) call contains. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_DIAGNOSTIC_MESSAGE` `https://developer.android.com/reference/java/lang/CharSequence` extra used with `https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE`. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_DIAGNOSTIC_MESSAGE_ID` Integer extra representing a message ID for a message posted via `https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE`. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_IS_BUSINESS_CALL` Boolean indicating that the call is a verified business call. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_IS_SUPPRESSED_BY_DO_NOT_DISTURB` Extra key intended for `https://developer.android.com/reference/android/telecom/InCallService`s that notify the user of an incoming call. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_IS_USING_UNIDIRECTIONAL_VIDEO_SERVICE` Boolean indicating that the call is a unidirectional video service call. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_IS_USING_VIDEO_RINGBACK` Boolean indicating that the call is a video ring back tone call. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS` Extra key used to indicate the time (in milliseconds since midnight, January 1, 1970 UTC) when the last outgoing emergency call was made. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_SILENT_RINGING_REQUESTED` Extra key used to indicate whether a `https://developer.android.com/reference/android/telecom/CallScreeningService` has requested to silence the ringtone for a call. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/telecom/Call#EXTRA_SUGGESTED_PHONE_ACCOUNTS` Key for extra used to pass along a list of `https://developer.android.com/reference/android/telecom/PhoneAccountSuggestion`s to the in-call UI when a call enters the `https://developer.android.com/reference/android/telecom/Call#STATE_SELECT_PHONE_ACCOUNT` state. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#REJECT_REASON_DECLINED` Reject reason used with `https://developer.android.com/reference/android/telecom/Call#reject(int)` to indicate that the user is rejecting this call because they have declined to answer it. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#REJECT_REASON_UNWANTED` Reject reason used with `https://developer.android.com/reference/android/telecom/Call#reject(int)` to indicate that the user is rejecting this call because it is an unwanted call. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_ACTIVE` The state of a `Call` when actively supporting conversation. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_AUDIO_PROCESSING` The state of a call that is active with the network, but the audio from the call is being intercepted by an app on the local device. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_CONNECTING` The initial state of an outgoing `Call`. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_DIALING` The state of an outgoing `Call` when dialing the remote number, but not yet connected. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_DISCONNECTED` The state of a `Call` when no further voice or other communication is being transmitted, the remote side has been or will inevitably be informed that the `Call` is no longer active, and the local data transport has or inevitably will release resources associated with this `Call`. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_DISCONNECTING` The state of a `Call` when the user has initiated a disconnection of the call, but the call has not yet been disconnected by the underlying `ConnectionService`. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_HOLDING` The state of a `Call` when in a holding state. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_NEW` The state of a `Call` when newly created. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_PULLING_CALL` The state of an external call which is in the process of being pulled from a remote device to the local device. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` The state of an incoming `Call` when ringing locally, but not yet connected. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_SELECT_PHONE_ACCOUNT` The state of an outgoing `Call` when waiting on user to select a `https://developer.android.com/reference/android/telecom/PhoneAccount` through which to place the call. |
| `int` | `https://developer.android.com/reference/android/telecom/Call#STATE_SIMULATED_RINGING` The state of a call that is being presented to the user after being in `https://developer.android.com/reference/android/telecom/Call#STATE_AUDIO_PROCESSING`. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#addConferenceParticipants(java.util.List<android.net.Uri>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/net/Uri> participants) ` Pulls participants to existing call by forming a conference call. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#answer(int)(int videoState) ` Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` `Call` to answer. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#conference(android.telecom.Call)(https://developer.android.com/reference/android/telecom/Call callToConferenceWith) ` Instructs this `Call` to enter a conference. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#deflect(android.net.Uri)(https://developer.android.com/reference/android/net/Uri address) ` Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` `Call` to deflect. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#disconnect()() ` Instructs this `Call` to disconnect. |
| ` int` | ` https://developer.android.com/reference/android/telecom/Call#getAudioProcessingUseCase()() ` Returns the Audio Processing usecase for of the call. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | ` https://developer.android.com/reference/android/telecom/Call#getCannedTextResponses()() ` Obtains a list of canned, pre-configured message responses to present to the user as ways of rejecting an incoming `Call` using via a text message. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/telecom/Call>` | ` https://developer.android.com/reference/android/telecom/Call#getChildren()() ` Obtains the children of this conference `Call`, if any. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/telecom/Call>` | ` https://developer.android.com/reference/android/telecom/Call#getConferenceableCalls()() ` Returns the list of `Call`s with which this `Call` is allowed to conference. |
| ` https://developer.android.com/reference/android/telecom/Call.Details` | ` https://developer.android.com/reference/android/telecom/Call#getDetails()() ` Obtains an object containing call details. |
| ` https://developer.android.com/reference/android/telecom/Call` | ` https://developer.android.com/reference/android/telecom/Call#getGenericConferenceActiveChildCall()() ` Returns the child `https://developer.android.com/reference/android/telecom/Call` in a generic conference that is currently active. |
| ` https://developer.android.com/reference/android/telecom/Call` | ` https://developer.android.com/reference/android/telecom/Call#getParent()() ` Obtains the parent of this `Call` in a conference, if any. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/telecom/Call#getRemainingPostDialSequence()() ` Obtains the post-dial sequence remaining to be emitted by this `Call`, if any. |
| ` https://developer.android.com/reference/android/telecom/Call.RttCall` | ` https://developer.android.com/reference/android/telecom/Call#getRttCall()() ` Returns this call's RttCall object. |
| ` int` | ` https://developer.android.com/reference/android/telecom/Call#getState()() ` *This method was deprecated in API level 31. The call state is available via `https://developer.android.com/reference/android/telecom/Call.Details#getState()`.* |
| ` https://developer.android.com/reference/android/telecom/InCallService.VideoCall` | ` https://developer.android.com/reference/android/telecom/Call#getVideoCall()() ` Obtains an object that can be used to display video from this `Call`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#handoverTo(android.telecom.PhoneAccountHandle,%20int,%20android.os.Bundle)(https://developer.android.com/reference/android/telecom/PhoneAccountHandle toHandle, int videoState, https://developer.android.com/reference/android/os/Bundle extras) ` Initiates a handover of this `https://developer.android.com/reference/android/telecom/Call` to the `https://developer.android.com/reference/android/telecom/ConnectionService` identified by `toHandle`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#hold()() ` Instructs this `Call` to go on hold. |
| ` boolean` | ` https://developer.android.com/reference/android/telecom/Call#isRttActive()() ` Returns whether this call has an active RTT connection. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#mergeConference()() ` Merges the calls within this conference. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#phoneAccountSelected(android.telecom.PhoneAccountHandle,%20boolean)(https://developer.android.com/reference/android/telecom/PhoneAccountHandle accountHandle, boolean setDefault) ` Notifies this `Call` that an account has been selected and to proceed with placing an outgoing call. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#playDtmfTone(char)(char digit) ` Instructs this `Call` to play a dual-tone multi-frequency signaling (DTMF) tone. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#postDialContinue(boolean)(boolean proceed) ` Instructs this `Call` to continue playing a post-dial DTMF string. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#pullExternalCall()() ` Initiates a request to the `https://developer.android.com/reference/android/telecom/ConnectionService` to pull an external call to the local device. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#putExtras(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle extras) ` Adds some extras to this `https://developer.android.com/reference/android/telecom/Call`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#registerCallback(android.telecom.Call.Callback)(https://developer.android.com/reference/android/telecom/Call.Callback callback) ` Registers a callback to this `Call`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#registerCallback(android.telecom.Call.Callback,%20android.os.Handler)(https://developer.android.com/reference/android/telecom/Call.Callback callback, https://developer.android.com/reference/android/os/Handler handler) ` Registers a callback to this `Call`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#reject(boolean,%20java.lang.String)(boolean rejectWithMessage, https://developer.android.com/reference/java/lang/String textMessage) ` Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` `Call` to reject. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#reject(int)(int rejectReason) ` Instructs the `https://developer.android.com/reference/android/telecom/ConnectionService` providing this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` call that the user has chosen to reject the call and has indicated a reason why the call is being rejected. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#removeExtras(java.util.List<java.lang.String>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String> keys) ` Removes extras from this `https://developer.android.com/reference/android/telecom/Call`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#removeExtras(java.lang.String[])(https://developer.android.com/reference/java/lang/String keys) ` Removes extras from this `https://developer.android.com/reference/android/telecom/Call`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#respondToRttRequest(int,%20boolean)(int id, boolean accept) ` Responds to an RTT request received via the `https://developer.android.com/reference/android/telecom/Call.Callback#onRttRequest(android.telecom.Call,%20int)` )} callback. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#sendCallEvent(java.lang.String,%20android.os.Bundle)(https://developer.android.com/reference/java/lang/String event, https://developer.android.com/reference/android/os/Bundle extras) ` Sends a `Call` event from this `Call` to the associated `https://developer.android.com/reference/android/telecom/Connection` in the `https://developer.android.com/reference/android/telecom/ConnectionService`. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#sendRttRequest()() ` Sends an RTT upgrade request to the remote end of the connection. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#splitFromConference()() ` Instructs this `Call` to split from any conference call with which it may be connected. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#stopDtmfTone()() ` Instructs this `Call` to stop any dual-tone multi-frequency signaling (DTMF) tone currently playing. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#stopRtt()() ` Terminate the RTT session on this call. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#swapConference()() ` Swaps the calls within this conference. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/telecom/Call#toString()() ` Returns a string representation of the object. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#transfer(android.telecom.Call)(https://developer.android.com/reference/android/telecom/Call toCall) ` Instructs this `Call` to be transferred to another ongoing call. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#transfer(android.net.Uri,%20boolean)(https://developer.android.com/reference/android/net/Uri targetNumber, boolean isConfirmationRequired) ` Instructs this `Call` to be transferred to another number. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#unhold()() ` Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_HOLDING` call to release from hold. |
| ` void` | ` https://developer.android.com/reference/android/telecom/Call#unregisterCallback(android.telecom.Call.Callback)(https://developer.android.com/reference/android/telecom/Call.Callback callback) ` Unregisters a callback from this `Call`. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Constants

### AUDIO_PROCESSING_USE_CASE_ASK_TO_HOLD

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

```
public static final int AUDIO_PROCESSING_USE_CASE_ASK_TO_HOLD
```

The audio processing is done when the user asks to hold.

<br />

Constant Value:

3
(0x00000003)


### AUDIO_PROCESSING_USE_CASE_CALL_SCREENING

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

```
public static final int AUDIO_PROCESSING_USE_CASE_CALL_SCREENING
```

The audio processing is done for spam detection.

<br />

Constant Value:

2
(0x00000002)


### AUDIO_PROCESSING_USE_CASE_UNKNOWN

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

```
public static final int AUDIO_PROCESSING_USE_CASE_UNKNOWN
```

The audio processing use case is unknown.

<br />

Constant Value:

0
(0x00000000)


### AUDIO_PROCESSING_USE_CASE_VOICEMAIL

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

```
public static final int AUDIO_PROCESSING_USE_CASE_VOICEMAIL
```

The audio processing use case is voice mail.

<br />

Constant Value:

1
(0x00000001)


### AVAILABLE_PHONE_ACCOUNTS

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

```
public static final String AVAILABLE_PHONE_ACCOUNTS
```


**This constant was deprecated
in API level 29.**   

Use the list from `https://developer.android.com/reference/android/telecom/Call#EXTRA_SUGGESTED_PHONE_ACCOUNTS` instead.

The key to retrieve the optional `PhoneAccount`s Telecom can bundle with its Call
extras. Used to pass the phone accounts to display on the front end to the user in order to
select phone accounts to (for example) place a call.

<br />

Constant Value:

"selectPhoneAccountAccounts"


### CRS_MEDIA_TYPE_AUDIO

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

```
public static final int CRS_MEDIA_TYPE_AUDIO
```

Indicates CRS contains audio

<br />

Constant Value:

1
(0x00000001)


### CRS_MEDIA_TYPE_NONE

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

```
public static final int CRS_MEDIA_TYPE_NONE
```

Indicates not a CRS call

<br />

Constant Value:

0
(0x00000000)


### CRS_MEDIA_TYPE_VIDEO

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

```
public static final int CRS_MEDIA_TYPE_VIDEO
```

Indicates CRS contains video

<br />

Constant Value:

2
(0x00000002)


### EVENT_CLEAR_DIAGNOSTIC_MESSAGE

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

```
public static final String EVENT_CLEAR_DIAGNOSTIC_MESSAGE
```

Event reported from the telecom framework when a diagnostic message previously raised with
`https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE` has cleared and is no longer pertinent.


The `https://developer.android.com/reference/android/telecom/Call#EXTRA_DIAGNOSTIC_MESSAGE_ID` indicates the diagnostic message which has been
cleared.


The dialer app receives this event via
`https://developer.android.com/reference/android/telecom/Call.Callback#onConnectionEvent(android.telecom.Call,%20java.lang.String,%20android.os.Bundle)`.

<br />

Constant Value:

"android.telecom.event.CLEAR_DIAGNOSTIC_MESSAGE"


### EVENT_DISPLAY_DIAGNOSTIC_MESSAGE

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

```
public static final String EVENT_DISPLAY_DIAGNOSTIC_MESSAGE
```

Event reported from the Telecom stack to report an in-call diagnostic message which the
dialer app may opt to display to the user. A diagnostic message is used to communicate
scenarios the device has detected which may impact the quality of the ongoing call.


For example a problem with a bluetooth headset may generate a recommendation for the user to
try using the speakerphone instead, or if the device detects it has entered a poor service
area, the user might be warned so that they can finish their call prior to it dropping.


A diagnostic message is considered persistent in nature. When the user enters a poor service
area, for example, the accompanying diagnostic message persists until they leave the area
of poor service. Each message is accompanied with a `https://developer.android.com/reference/android/telecom/Call#EXTRA_DIAGNOSTIC_MESSAGE_ID`
which uniquely identifies the diagnostic condition being reported. The framework raises a
call event of type `https://developer.android.com/reference/android/telecom/Call#EVENT_CLEAR_DIAGNOSTIC_MESSAGE` when the condition reported has
been cleared. The dialer app should display the diagnostic message until it is cleared.
If multiple diagnostic messages are sent with different IDs (which have not yet been cleared)
the dialer app should prioritize the most recently received message, but still provide the
user with a means to review past messages.


The text of the message is found in `https://developer.android.com/reference/android/telecom/Call#EXTRA_DIAGNOSTIC_MESSAGE` in the form of a human
readable `https://developer.android.com/reference/java/lang/CharSequence` which is intended for display in the call UX.


The telecom framework audibly notifies the user of the presence of a diagnostic message, so
the dialer app needs only to concern itself with visually displaying the message.


The dialer app receives this event via
`https://developer.android.com/reference/android/telecom/Call.Callback#onConnectionEvent(android.telecom.Call,%20java.lang.String,%20android.os.Bundle)`.

<br />

Constant Value:

"android.telecom.event.DISPLAY_DIAGNOSTIC_MESSAGE"


### EVENT_PHONE_ACCOUNT_CHANGED

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

```
public static final String EVENT_PHONE_ACCOUNT_CHANGED
```

Connection event used to notify InCallService of phoneaccount changes.
Dialer uses phone account capability to decide whether to enable
some options like RTT. This event will be used for such cases.

<br />

Constant Value:

"android.telecom.event.PHONE_ACCOUNT_CHANGED"


### EXTRA_ASSERTED_DISPLAY_NAME

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

```
public static final String EXTRA_ASSERTED_DISPLAY_NAME
```

String value indicating the asserted display name reported via
ImsCallProfile#EXTRA_ASSERTED_DISPLAY_NAME.

`https://developer.android.com/reference/android/telecom/Connection#setExtras(android.os.Bundle)` or `https://developer.android.com/reference/android/telecom/Connection#putExtras(android.os.Bundle)`
should be used to notify Telecom this extra has been set.

<br />

Constant Value:

"android.telecom.extra.ASSERTED_DISPLAY_NAME"


### EXTRA_CRS_AUDIO_MODE

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

```
public static final String EXTRA_CRS_AUDIO_MODE
```

Extra key to indicate the audio mode that should be set for playing the network-provided
Customized Ringing Signal (CRS).


Legacy OEM implementations may use `https://developer.android.com/reference/android/media/AudioManager#MODE_IN_CALL` due to HAL
implementation internals, where newer implementations are expected to use
`https://developer.android.com/reference/android/media/AudioManager#MODE_RINGTONE`.


The value associated with this key should be one of the following constants from
`https://developer.android.com/reference/android/media/AudioManager`:

- `https://developer.android.com/reference/android/media/AudioManager#MODE_RINGTONE`
- `https://developer.android.com/reference/android/media/AudioManager#MODE_IN_CALL`

`https://developer.android.com/reference/android/telecom/Connection#setExtras(android.os.Bundle)` or `https://developer.android.com/reference/android/telecom/Connection#putExtras(android.os.Bundle)` should be used to notify Telecom this extra has been set.

<br />

<br />

Constant Value:

"android.telecom.extra.CRS_AUDIO_MODE"


### EXTRA_CRS_MEDIA_TYPE

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

```
public static final String EXTRA_CRS_MEDIA_TYPE
```

Extra key to indicate the type of media a Customized Ringing Signal (CRS) call contains.
The CRS is an operator-specific feature that allows a subscriber to customize the media
played to the called party during the establishment of an incoming call. When the MT call is
received, the device will present the CRS media instead of its standard ringtone. This CRS
media can consist of audio, video, or any combination thereof.


To maintain compatibility with third-party dialer applications that are not CRS-aware, the
public video state of the call (see `https://developer.android.com/reference/android/telecom/Call.Details#getVideoState()`) will remain
`https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` even if the CRS call contains video.


A CRS-aware dialer should check for the presence of this extra. If the value includes the
`https://developer.android.com/reference/android/telecom/Call#CRS_MEDIA_TYPE_VIDEO` bit, the dialer is responsible for displaying the video to the
user. The dialer can accomplish this by:

1. Obtaining the `https://developer.android.com/reference/android/telecom/InCallService.VideoCall` instance from this call via `https://developer.android.com/reference/android/telecom/Call#getVideoCall()`.
2. Creating a `https://developer.android.com/reference/android/view/Surface` for video rendering.
3. Passing the surface to the framework using `https://developer.android.com/reference/android/telecom/InCallService.VideoCall#setDisplaySurface(android.view.Surface)`.

The underlying IMS stack then handles the video streaming and rendering on the provided Surface.


The value associated with this key should be an integer bitmask of the following values:

- `https://developer.android.com/reference/android/telecom/Call#CRS_MEDIA_TYPE_AUDIO`
- `https://developer.android.com/reference/android/telecom/Call#CRS_MEDIA_TYPE_VIDEO`

`https://developer.android.com/reference/android/telecom/Connection#setExtras(android.os.Bundle)` or `https://developer.android.com/reference/android/telecom/Connection#putExtras(android.os.Bundle)` should be used to notify Telecom that this extra has been set.

<br />

<br />

Constant Value:

"android.telecom.extra.CRS_MEDIA_TYPE"


### EXTRA_DIAGNOSTIC_MESSAGE

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

```
public static final String EXTRA_DIAGNOSTIC_MESSAGE
```

`https://developer.android.com/reference/java/lang/CharSequence` extra used with `https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE`. This is the
diagnostic message the dialer app should display.

<br />

Constant Value:

"android.telecom.extra.DIAGNOSTIC_MESSAGE"


### EXTRA_DIAGNOSTIC_MESSAGE_ID

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

```
public static final String EXTRA_DIAGNOSTIC_MESSAGE_ID
```

Integer extra representing a message ID for a message posted via
`https://developer.android.com/reference/android/telecom/Call#EVENT_DISPLAY_DIAGNOSTIC_MESSAGE`. Used to ensure that the dialer app knows when
the message in question has cleared via `https://developer.android.com/reference/android/telecom/Call#EVENT_CLEAR_DIAGNOSTIC_MESSAGE`.

<br />

Constant Value:

"android.telecom.extra.DIAGNOSTIC_MESSAGE_ID"


### EXTRA_IS_BUSINESS_CALL

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

```
public static final String EXTRA_IS_BUSINESS_CALL
```

Boolean indicating that the call is a verified business call.

`https://developer.android.com/reference/android/telecom/Connection#setExtras(android.os.Bundle)` or `https://developer.android.com/reference/android/telecom/Connection#putExtras(android.os.Bundle)`
should be used to notify Telecom this extra has been set.

<br />

Constant Value:

"android.telecom.extra.IS_BUSINESS_CALL"


### EXTRA_IS_SUPPRESSED_BY_DO_NOT_DISTURB

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

```
public static final String EXTRA_IS_SUPPRESSED_BY_DO_NOT_DISTURB
```

Extra key intended for `https://developer.android.com/reference/android/telecom/InCallService`s that notify the user of an incoming call. When
EXTRA_IS_SUPPRESSED_BY_DO_NOT_DISTURB returns true, the `https://developer.android.com/reference/android/telecom/InCallService` should not
interrupt the user of the incoming call because the call is being suppressed by Do Not
Disturb settings.

This extra will be removed from the `https://developer.android.com/reference/android/telecom/Call` object for `https://developer.android.com/reference/android/telecom/InCallService`s that do
not hold the `https://developer.android.com/reference/android/Manifest.permission#READ_CONTACTS` permission.

<br />

Constant Value:

"android.telecom.extra.IS_SUPPRESSED_BY_DO_NOT_DISTURB"


### EXTRA_IS_USING_UNIDIRECTIONAL_VIDEO_SERVICE

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

```
public static final String EXTRA_IS_USING_UNIDIRECTIONAL_VIDEO_SERVICE
```

Boolean indicating that the call is a unidirectional
video service call. `https://developer.android.com/reference/android/telecom/Connection#setExtras(android.os.Bundle)` or
`https://developer.android.com/reference/android/telecom/Connection#putExtras(android.os.Bundle)` should be used to notify
Telecom this extra has been set.

<br />

Constant Value:

"android.telecom.extra.IS_USING_UNIDIRECTIONAL_VIDEO_SERVICE"


### EXTRA_IS_USING_VIDEO_RINGBACK

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

```
public static final String EXTRA_IS_USING_VIDEO_RINGBACK
```

Boolean indicating that the call is a video
ring back tone call. `https://developer.android.com/reference/android/telecom/Connection#setExtras(android.os.Bundle)` or
`https://developer.android.com/reference/android/telecom/Connection#putExtras(android.os.Bundle)` should be used to notify
Telecom this extra has been set.

<br />

Constant Value:

"android.telecom.extra.IS_USING_VIDEO_RINGBACK"


### EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS

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

```
public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS
```

Extra key used to indicate the time (in milliseconds since midnight, January 1, 1970 UTC)
when the last outgoing emergency call was made. This is used to identify potential emergency
callbacks.

<br />

Constant Value:

"android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS"


### EXTRA_SILENT_RINGING_REQUESTED

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

```
public static final String EXTRA_SILENT_RINGING_REQUESTED
```

Extra key used to indicate whether a `https://developer.android.com/reference/android/telecom/CallScreeningService` has requested to silence
the ringtone for a call. If the `https://developer.android.com/reference/android/telecom/InCallService` declares
`https://developer.android.com/reference/android/telecom/TelecomManager#METADATA_IN_CALL_SERVICE_RINGING` in its manifest, it should not
play a ringtone for an incoming call with this extra key set.

<br />

Constant Value:

"android.telecom.extra.SILENT_RINGING_REQUESTED"


### EXTRA_SUGGESTED_PHONE_ACCOUNTS

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

```
public static final String EXTRA_SUGGESTED_PHONE_ACCOUNTS
```

Key for extra used to pass along a list of `https://developer.android.com/reference/android/telecom/PhoneAccountSuggestion`s to the in-call
UI when a call enters the `https://developer.android.com/reference/android/telecom/Call#STATE_SELECT_PHONE_ACCOUNT` state. The list included here
will have the same length and be in the same order as the list passed with
`https://developer.android.com/reference/android/telecom/Call#AVAILABLE_PHONE_ACCOUNTS`.

<br />

Constant Value:

"android.telecom.extra.SUGGESTED_PHONE_ACCOUNTS"


### REJECT_REASON_DECLINED

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

```
public static final int REJECT_REASON_DECLINED
```

Reject reason used with `https://developer.android.com/reference/android/telecom/Call#reject(int)` to indicate that the user is rejecting this
call because they have declined to answer it. This typically means that they are unable
to answer the call at this time and would prefer it be sent to voicemail.

<br />

Constant Value:

1
(0x00000001)


### REJECT_REASON_UNWANTED

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

```
public static final int REJECT_REASON_UNWANTED
```

Reject reason used with `https://developer.android.com/reference/android/telecom/Call#reject(int)` to indicate that the user is rejecting this
call because it is an unwanted call. This allows the user to indicate that they are
rejecting a call because it is likely a nuisance call.

<br />

Constant Value:

2
(0x00000002)


### STATE_ACTIVE

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

```
public static final int STATE_ACTIVE
```

The state of a `Call` when actively supporting conversation.

<br />

Constant Value:

4
(0x00000004)


### STATE_AUDIO_PROCESSING

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

```
public static final int STATE_AUDIO_PROCESSING
```

The state of a call that is active with the network, but the audio from the call is
being intercepted by an app on the local device. Telecom does not hold audio focus in this
state, and the call will be invisible to the user except for a persistent notification.

<br />

Constant Value:

12
(0x0000000c)


### STATE_CONNECTING

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

```
public static final int STATE_CONNECTING
```

The initial state of an outgoing `Call`.
Common transitions are to `https://developer.android.com/reference/android/telecom/Call#STATE_DIALING` state for a successful call or
`https://developer.android.com/reference/android/telecom/Call#STATE_DISCONNECTED` if it failed.

<br />

Constant Value:

9
(0x00000009)


### STATE_DIALING

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

```
public static final int STATE_DIALING
```

The state of an outgoing `Call` when dialing the remote number, but not yet connected.

<br />

Constant Value:

1
(0x00000001)


### STATE_DISCONNECTED

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

```
public static final int STATE_DISCONNECTED
```

The state of a `Call` when no further voice or other communication is being
transmitted, the remote side has been or will inevitably be informed that the `Call`
is no longer active, and the local data transport has or inevitably will release resources
associated with this `Call`.

<br />

Constant Value:

7
(0x00000007)


### STATE_DISCONNECTING

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

```
public static final int STATE_DISCONNECTING
```

The state of a `Call` when the user has initiated a disconnection of the call, but the
call has not yet been disconnected by the underlying `ConnectionService`. The next
state of the call is (potentially) `https://developer.android.com/reference/android/telecom/Call#STATE_DISCONNECTED`.

<br />

Constant Value:

10
(0x0000000a)


### STATE_HOLDING

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

```
public static final int STATE_HOLDING
```

The state of a `Call` when in a holding state.

<br />

Constant Value:

3
(0x00000003)


### STATE_NEW

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

```
public static final int STATE_NEW
```

The state of a `Call` when newly created.

<br />

Constant Value:

0
(0x00000000)


### STATE_PULLING_CALL

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

```
public static final int STATE_PULLING_CALL
```

The state of an external call which is in the process of being pulled from a remote device to
the local device.


A call can only be in this state if the `https://developer.android.com/reference/android/telecom/Call.Details#PROPERTY_IS_EXTERNAL_CALL` property
and `https://developer.android.com/reference/android/telecom/Call.Details#CAPABILITY_CAN_PULL_CALL` capability are set on the call.


An `https://developer.android.com/reference/android/telecom/InCallService` will only see this state if it has the
`https://developer.android.com/reference/android/telecom/TelecomManager#METADATA_INCLUDE_EXTERNAL_CALLS` metadata set to `true` in its
manifest.

<br />

Constant Value:

11
(0x0000000b)


### STATE_RINGING

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

```
public static final int STATE_RINGING
```

The state of an incoming `Call` when ringing locally, but not yet connected.

<br />

Constant Value:

2
(0x00000002)


### STATE_SELECT_PHONE_ACCOUNT

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

```
public static final int STATE_SELECT_PHONE_ACCOUNT
```

The state of an outgoing `Call` when waiting on user to select a
`https://developer.android.com/reference/android/telecom/PhoneAccount` through which to place the call.

<br />

Constant Value:

8
(0x00000008)


### STATE_SIMULATED_RINGING

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

```
public static final int STATE_SIMULATED_RINGING
```

The state of a call that is being presented to the user after being in
`https://developer.android.com/reference/android/telecom/Call#STATE_AUDIO_PROCESSING`. The call is still active with the network in this case, and
Telecom will hold audio focus and play a ringtone if appropriate.

<br />

Constant Value:

13
(0x0000000d)


## Public methods

### addConferenceParticipants

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

```
public void addConferenceParticipants (List<Uri> participants)
```

Pulls participants to existing call by forming a conference call.
See `https://developer.android.com/reference/android/telecom/Call.Details#CAPABILITY_ADD_PARTICIPANT`.

<br />

| Parameters ||
|---|---|
| `participants` | `List`: participants to be pulled to existing call. This value cannot be `null`. <br /> |

### answer

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

```
public void answer (int videoState)
```

Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` `Call` to answer.

<br />

| Parameters ||
|---|---|
| `videoState` | `int`: The video state in which to answer the call. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |

### conference

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

```
public void conference (Call callToConferenceWith)
```

Instructs this `Call` to enter a conference.

<br />

| Parameters ||
|---|---|
| `callToConferenceWith` | `Call`: The other call with which to conference. <br /> |

### deflect

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

```
public void deflect (Uri address)
```

Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` `Call` to deflect.

<br />

| Parameters ||
|---|---|
| `address` | `Uri`: The address to which the call will be deflected. <br /> |

### disconnect

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

```
public void disconnect ()
```

Instructs this `Call` to disconnect.

<br />

### getAudioProcessingUseCase

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

```
public int getAudioProcessingUseCase ()
```

Returns the Audio Processing usecase for of the call. Note: This must be used only when the
Call#getState() is STATE_AUDIO_PROCESSING

<br />

| Returns ||
|---|---|
| `int` | the audio processing use case for `https://developer.android.com/` <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the call is not in `https://developer.android.com/reference/android/telecom/Call#STATE_AUDIO_PROCESSING` |

### getCannedTextResponses

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

```
public List<String> getCannedTextResponses ()
```

Obtains a list of canned, pre-configured message responses to present to the user as
ways of rejecting an incoming `Call` using via a text message.


*Note:* Since canned responses may be loaded from the file system, they are not
guaranteed to be present when this `https://developer.android.com/reference/android/telecom/Call` is first added to the `https://developer.android.com/reference/android/telecom/InCallService`
via `https://developer.android.com/reference/android/telecom/InCallService#onCallAdded(android.telecom.Call)`. The callback
`https://developer.android.com/reference/android/telecom/Call.Callback#onCannedTextResponsesLoaded(android.telecom.Call,%20java.util.List<java.lang.String>)` will be called when/if canned
responses for the call become available.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/java/lang/String>` | A list of canned text message responses. <br /> |

**See also:**

- `https://developer.android.com/reference/android/telecom/Call#reject(boolean,%20java.lang.String)`

### getChildren

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

```
public List<Call> getChildren ()
```

Obtains the children of this conference `Call`, if any.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/telecom/Call>` | The children of this `Call` if this `Call` is a conference, or an empty `List` otherwise. <br /> |

### getConferenceableCalls

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

```
public List<Call> getConferenceableCalls ()
```

Returns the list of `Call`s with which this `Call` is allowed to conference.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/telecom/Call>` | The list of conferenceable `Call`s. <br /> |

### getDetails

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

```
public Call.Details getDetails ()
```

Obtains an object containing call details.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telecom/Call.Details` | A `https://developer.android.com/reference/android/telecom/Call.Details` object. Depending on the state of the `Call`, the result may be `null`. <br /> |

### getGenericConferenceActiveChildCall

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

```
public Call getGenericConferenceActiveChildCall ()
```

Returns the child `https://developer.android.com/reference/android/telecom/Call` in a generic conference that is currently active.

A "generic conference" is the mechanism used to support two simultaneous calls on a device
in CDMA networks. It is effectively equivalent to having one call active and one call on hold
in GSM or IMS calls. This method returns the currently active call.

In a generic conference, the network exposes the conference to us as a single call, and we
switch between talking to the two participants using a CDMA flash command. Since the network
exposes no additional information about the call, the only way we know which caller we're
currently talking to is by keeping track of the flash commands that we've sent to the
network.

For calls that are not generic conferences, or when the generic conference has more than
2 children, returns `null`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telecom/Call` | The active child call. <br /> |

**See also:**

- `https://developer.android.com/reference/android/telecom/Call.Details#PROPERTY_GENERIC_CONFERENCE`

### getParent

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

```
public Call getParent ()
```

Obtains the parent of this `Call` in a conference, if any.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telecom/Call` | The parent `Call`, or `null` if this `Call` is not a child of any conference `Call`s. <br /> |

### getRemainingPostDialSequence

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

```
public String getRemainingPostDialSequence ()
```

Obtains the post-dial sequence remaining to be emitted by this `Call`, if any.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | The remaining post-dial sequence, or `null` if there is no post-dial sequence remaining or this `Call` is not in a post-dial state. <br /> |

### getRttCall

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

```
public Call.RttCall getRttCall ()
```

Returns this call's RttCall object. The `https://developer.android.com/reference/android/telecom/Call.RttCall` instance is used to send and
receive RTT text data, as well as to change the RTT mode.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telecom/Call.RttCall` | A `https://developer.android.com/reference/android/telecom/Call.RttCall`. `null` if there is no active RTT connection. <br /> |

### getState

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

```
public int getState ()
```


**This method was deprecated
in API level 31.**   

The call state is available via `https://developer.android.com/reference/android/telecom/Call.Details#getState()`.

Obtains the state of this `Call`.

<br />

| Returns ||
|---|---|
| `int` | The call state. Value is one of the following: - `https://developer.android.com/reference/android/telecom/Call#STATE_NEW` - `https://developer.android.com/reference/android/telecom/Call#STATE_DIALING` - `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` - `https://developer.android.com/reference/android/telecom/Call#STATE_HOLDING` - `https://developer.android.com/reference/android/telecom/Call#STATE_ACTIVE` - `https://developer.android.com/reference/android/telecom/Call#STATE_DISCONNECTED` - `https://developer.android.com/reference/android/telecom/Call#STATE_SELECT_PHONE_ACCOUNT` - `https://developer.android.com/reference/android/telecom/Call#STATE_CONNECTING` - `https://developer.android.com/reference/android/telecom/Call#STATE_DISCONNECTING` - `https://developer.android.com/reference/android/telecom/Call#STATE_PULLING_CALL` - `https://developer.android.com/reference/android/telecom/Call#STATE_AUDIO_PROCESSING` - `https://developer.android.com/reference/android/telecom/Call#STATE_SIMULATED_RINGING` |

### getVideoCall

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

```
public InCallService.VideoCall getVideoCall ()
```

Obtains an object that can be used to display video from this `Call`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telecom/InCallService.VideoCall` | An `Call.VideoCall`. <br /> |

### handoverTo

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

```
public void handoverTo (PhoneAccountHandle toHandle, 
                int videoState, 
                Bundle extras)
```

Initiates a handover of this `https://developer.android.com/reference/android/telecom/Call` to the `https://developer.android.com/reference/android/telecom/ConnectionService` identified
by `toHandle`. The videoState specified indicates the desired video state after the
handover.


A call handover is the process where an ongoing call is transferred from one app (i.e.
`https://developer.android.com/reference/android/telecom/ConnectionService` to another app. The user could, for example, choose to continue a
mobile network call in a video calling app. The mobile network call via the Telephony stack
is referred to as the source of the handover, and the video calling app is referred to as the
destination.


When considering a handover scenario the device this method is called on is considered the
*initiating* device (since the user initiates the handover from this device), and the
other device is considered the *receiving* device.


When this method is called on the *initiating* device, the Telecom framework will bind
to the `https://developer.android.com/reference/android/telecom/ConnectionService` defined by the `toHandle` `https://developer.android.com/reference/android/telecom/PhoneAccountHandle`
and invoke
`https://developer.android.com/reference/android/telecom/ConnectionService#onCreateOutgoingHandoverConnection(android.telecom.PhoneAccountHandle,%20android.telecom.ConnectionRequest)` to inform the destination app that a request has been made to handover a
call to it. The app returns an instance of `https://developer.android.com/reference/android/telecom/Connection` to represent the handover call
At this point the app should display UI to indicate to the user that a call
handover is in process.


The destination app is responsible for communicating the handover request from the
*initiating* device to the *receiving* device.


When the app on the *receiving* device receives the handover request, it calls
`https://developer.android.com/reference/android/telecom/TelecomManager#acceptHandover(android.net.Uri,%20int,%20android.telecom.PhoneAccountHandle)` to continue the handover
process from the *initiating* device to the *receiving* device. At this point
the destination app on the *receiving* device should show UI to allow the user to
choose whether they want to continue their call in the destination app.


When the destination app on the *receiving* device calls
`https://developer.android.com/reference/android/telecom/TelecomManager#acceptHandover(android.net.Uri,%20int,%20android.telecom.PhoneAccountHandle)`, Telecom will bind to its
`https://developer.android.com/reference/android/telecom/ConnectionService` and call
`https://developer.android.com/reference/android/telecom/ConnectionService#onCreateIncomingHandoverConnection(android.telecom.PhoneAccountHandle,%20android.telecom.ConnectionRequest)` to inform it of the handover request. The app returns an instance of
`https://developer.android.com/reference/android/telecom/Connection` to represent the handover call.


If the user of the *receiving* device accepts the handover, the app calls
`https://developer.android.com/reference/android/telecom/Connection#setActive()` to complete the handover process; Telecom will disconnect the
original call. If the user rejects the handover, the app calls
`https://developer.android.com/reference/android/telecom/Connection#setDisconnected(android.telecom.DisconnectCause)` and specifies a `https://developer.android.com/reference/android/telecom/DisconnectCause`
of `https://developer.android.com/reference/android/telecom/DisconnectCause#CANCELED` to indicate that the handover has been cancelled.


Telecom will only allow handovers from `https://developer.android.com/reference/android/telecom/PhoneAccount`s which declare
`https://developer.android.com/reference/android/telecom/PhoneAccount#EXTRA_SUPPORTS_HANDOVER_FROM`. Similarly, the `https://developer.android.com/reference/android/telecom/PhoneAccount`
specified by `toHandle` must declare `https://developer.android.com/reference/android/telecom/PhoneAccount#EXTRA_SUPPORTS_HANDOVER_TO`.


Errors in the handover process are reported to the `https://developer.android.com/reference/android/telecom/InCallService` via
`https://developer.android.com/reference/android/telecom/Call.Callback#onHandoverFailed(android.telecom.Call,%20int)`. Errors in the handover process are reported to
the involved `https://developer.android.com/reference/android/telecom/ConnectionService`s via
`https://developer.android.com/reference/android/telecom/ConnectionService#onHandoverFailed(android.telecom.ConnectionRequest,%20int)`.

<br />

| Parameters ||
|---|---|
| `toHandle` | `PhoneAccountHandle`: `https://developer.android.com/reference/android/telecom/PhoneAccountHandle` of the `https://developer.android.com/reference/android/telecom/ConnectionService` to handover this call to. <br /> |
| `videoState` | `int`: Indicates the video state desired after the handover (see the `STATE_*` constants defined in `https://developer.android.com/reference/android/telecom/VideoProfile`). Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_AUDIO_ONLY` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_TX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_RX_ENABLED` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_BIDIRECTIONAL` - `https://developer.android.com/reference/android/telecom/VideoProfile#STATE_PAUSED` |
| `extras` | `Bundle`: Bundle containing extra information to be passed to the `https://developer.android.com/reference/android/telecom/ConnectionService` <br /> |

### hold

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

```
public void hold ()
```

Instructs this `Call` to go on hold.

<br />

### isRttActive

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

```
public boolean isRttActive ()
```

Returns whether this call has an active RTT connection.

<br />

| Returns ||
|---|---|
| `boolean` | true if there is a connection, false otherwise. <br /> |

### mergeConference

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

```
public void mergeConference ()
```

Merges the calls within this conference. See `https://developer.android.com/reference/android/telecom/Call.Details#CAPABILITY_MERGE_CONFERENCE`.

<br />

### phoneAccountSelected

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

```
public void phoneAccountSelected (PhoneAccountHandle accountHandle, 
                boolean setDefault)
```

Notifies this `Call` that an account has been selected and to proceed with placing
an outgoing call. Optionally sets this account as the default account.

<br />

| Parameters ||
|---|---|
| `accountHandle` | `PhoneAccountHandle` <br /> |
| `setDefault` | `boolean` <br /> |

### playDtmfTone

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

```
public void playDtmfTone (char digit)
```

Instructs this `Call` to play a dual-tone multi-frequency signaling (DTMF) tone.


Tones are both played locally for the user to hear and sent to the network to be relayed
to the remote device.


You must ensure that any call to `https://developer.android.com/reference/android/telecom/Call#playDtmfTone(char)` is followed by a matching
call to `https://developer.android.com/reference/android/telecom/Call#stopDtmfTone()` and that each tone is stopped before a new one is started.
The play and stop commands are relayed to the underlying
`https://developer.android.com/reference/android/telecom/ConnectionService` as executed; implementations may not correctly
handle out of order commands.

<br />

| Parameters ||
|---|---|
| `digit` | `char`: A character representing the DTMF digit for which to play the tone. This value must be one of `'0'` through `'9'`, `'*'` or `'#'`. <br /> |

### postDialContinue

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

```
public void postDialContinue (boolean proceed)
```

Instructs this `Call` to continue playing a post-dial DTMF string.

A post-dial DTMF string is a string of digits entered after a phone number, when dialed,
that are immediately sent as DTMF tones to the recipient as soon as the connection is made.

If the DTMF string contains a `https://developer.android.com/reference/android/telecom/TelecomManager#DTMF_CHARACTER_PAUSE` symbol, this
`Call` will temporarily pause playing the tones for a pre-defined period of time.

If the DTMF string contains a `https://developer.android.com/reference/android/telecom/TelecomManager#DTMF_CHARACTER_WAIT` symbol, this
`Call` will pause playing the tones and notify callbacks via
`https://developer.android.com/reference/android/telecom/Call.Callback#onPostDialWait(android.telecom.Call,%20java.lang.String)`. At this point, the in-call app
should display to the user an indication of this state and an affordance to continue
the postdial sequence. When the user decides to continue the postdial sequence, the in-call
app should invoke the `https://developer.android.com/reference/android/telecom/Call#postDialContinue(boolean)` method.

<br />

| Parameters ||
|---|---|
| `proceed` | `boolean`: Whether or not to continue with the post-dial sequence. <br /> |

### pullExternalCall

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

```
public void pullExternalCall ()
```

Initiates a request to the `https://developer.android.com/reference/android/telecom/ConnectionService` to pull an external call to the local
device.


Calls to this method are ignored if the call does not have the
`https://developer.android.com/reference/android/telecom/Call.Details#PROPERTY_IS_EXTERNAL_CALL` property set.


An `https://developer.android.com/reference/android/telecom/InCallService` will only see calls which support this method if it has the
`https://developer.android.com/reference/android/telecom/TelecomManager#METADATA_INCLUDE_EXTERNAL_CALLS` metadata set to `true`
in its manifest.

<br />

### putExtras

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

```
public void putExtras (Bundle extras)
```

Adds some extras to this `https://developer.android.com/reference/android/telecom/Call`. Existing keys are replaced and new ones are
added.


No assumptions should be made as to how an In-Call UI or service will handle these
extras. Keys should be fully qualified (e.g., com.example.MY_EXTRA) to avoid conflicts.


Extras added using this method will be made available to the `https://developer.android.com/reference/android/telecom/ConnectionService`
associated with this `https://developer.android.com/reference/android/telecom/Call` and notified via
`https://developer.android.com/reference/android/telecom/Connection#onExtrasChanged(android.os.Bundle)`.


Extras added using this method will also be available to other running `https://developer.android.com/reference/android/telecom/InCallService`s
and notified via `https://developer.android.com/reference/android/telecom/Call.Callback#onDetailsChanged(android.telecom.Call,%20android.telecom.Call.Details)`. The extras can be
accessed via `https://developer.android.com/reference/android/telecom/Call.Details#getExtras()`.

<br />

| Parameters ||
|---|---|
| `extras` | `Bundle`: The extras to add. <br /> |

### registerCallback

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

```
public void registerCallback (Call.Callback callback)
```

Registers a callback to this `Call`.

<br />

| Parameters ||
|---|---|
| `callback` | `Call.Callback`: A `Callback`. <br /> |

### registerCallback

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

```
public void registerCallback (Call.Callback callback, 
                Handler handler)
```

Registers a callback to this `Call`.

<br />

| Parameters ||
|---|---|
| `callback` | `Call.Callback`: A `Callback`. <br /> |
| `handler` | `Handler`: A handler which command and status changes will be delivered to. <br /> |

### reject

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

```
public void reject (boolean rejectWithMessage, 
                String textMessage)
```

Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` `Call` to reject.

<br />

| Parameters ||
|---|---|
| `rejectWithMessage` | `boolean`: Whether to reject with a text message. <br /> |
| `textMessage` | `String`: An optional text message with which to respond. <br /> |

### reject

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

```
public void reject (int rejectReason)
```

Instructs the `https://developer.android.com/reference/android/telecom/ConnectionService` providing this `https://developer.android.com/reference/android/telecom/Call#STATE_RINGING` call that the
user has chosen to reject the call and has indicated a reason why the call is being rejected.

<br />

| Parameters ||
|---|---|
| `rejectReason` | `int`: the reason the call is being rejected. Value is one of the following: - `https://developer.android.com/reference/android/telecom/Call#REJECT_REASON_DECLINED` - `https://developer.android.com/reference/android/telecom/Call#REJECT_REASON_UNWANTED` |

### removeExtras

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

```
public void removeExtras (List<String> keys)
```

Removes extras from this `https://developer.android.com/reference/android/telecom/Call`.

<br />

| Parameters ||
|---|---|
| `keys` | `List`: The keys of the extras to remove. <br /> |

### removeExtras

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

```
public void removeExtras (String... keys)
```

Removes extras from this `https://developer.android.com/reference/android/telecom/Call`.

<br />

| Parameters ||
|---|---|
| `keys` | `String`: The keys of the extras to remove. <br /> |

### respondToRttRequest

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

```
public void respondToRttRequest (int id, 
                boolean accept)
```

Responds to an RTT request received via the `https://developer.android.com/reference/android/telecom/Call.Callback#onRttRequest(android.telecom.Call,%20int)` )}
callback.
The ID used here should be the same as the ID that was received via the callback.

<br />

| Parameters ||
|---|---|
| `id` | `int`: The request ID received via `https://developer.android.com/reference/android/telecom/Call.Callback#onRttRequest(android.telecom.Call,%20int)` <br /> |
| `accept` | `boolean`: `true` if the RTT request should be accepted, `false` otherwise. <br /> |

### sendCallEvent

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

```
public void sendCallEvent (String event, 
                Bundle extras)
```

Sends a `Call` event from this `Call` to the associated `https://developer.android.com/reference/android/telecom/Connection` in
the `https://developer.android.com/reference/android/telecom/ConnectionService`.


Call events are used to communicate point in time information from an `https://developer.android.com/reference/android/telecom/InCallService`
to a `https://developer.android.com/reference/android/telecom/ConnectionService`. A `https://developer.android.com/reference/android/telecom/ConnectionService` implementation could define
events which enable the `https://developer.android.com/reference/android/telecom/InCallService`, for example, toggle a unique feature of the
`https://developer.android.com/reference/android/telecom/ConnectionService`.


A `https://developer.android.com/reference/android/telecom/ConnectionService` can communicate to the `https://developer.android.com/reference/android/telecom/InCallService` using
`https://developer.android.com/reference/android/telecom/Connection#sendConnectionEvent(java.lang.String,%20android.os.Bundle)`.


Events are exposed to `https://developer.android.com/reference/android/telecom/ConnectionService` implementations via
`https://developer.android.com/reference/android/telecom/Connection#onCallEvent(java.lang.String,%20android.os.Bundle)`.


No assumptions should be made as to how a `https://developer.android.com/reference/android/telecom/ConnectionService` will handle these events.
The `https://developer.android.com/reference/android/telecom/InCallService` must assume that the `https://developer.android.com/reference/android/telecom/ConnectionService` could chose to
ignore some events altogether.


Events should be fully qualified (e.g., `com.example.event.MY_EVENT`) to avoid
conflicts between `https://developer.android.com/reference/android/telecom/InCallService` implementations. Further, `https://developer.android.com/reference/android/telecom/InCallService`
implementations shall not re-purpose events in the `android.*` namespace, nor shall
they define their own event types in this namespace. When defining a custom event type,
ensure the contents of the extras `https://developer.android.com/reference/android/os/Bundle` is clearly defined. Extra keys for this
bundle should be named similar to the event type (e.g. `com.example.extra.MY_EXTRA`).


When defining events and the associated extras, it is important to keep their behavior
consistent when the associated `https://developer.android.com/reference/android/telecom/InCallService` is updated. Support for deprecated
events/extras should me maintained to ensure backwards compatibility with older
`https://developer.android.com/reference/android/telecom/ConnectionService` implementations which were built to support the older behavior.

<br />

| Parameters ||
|---|---|
| `event` | `String`: The connection event. <br /> |
| `extras` | `Bundle`: Bundle containing extra information associated with the event. <br /> |

### sendRttRequest

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

```
public void sendRttRequest ()
```

Sends an RTT upgrade request to the remote end of the connection. Success is not
guaranteed, and notification of success will be via the
`https://developer.android.com/reference/android/telecom/Call.Callback#onRttStatusChanged(android.telecom.Call,%20boolean,%20android.telecom.Call.RttCall)` callback.

<br />

### splitFromConference

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

```
public void splitFromConference ()
```

Instructs this `Call` to split from any conference call with which it may be
connected.

<br />

### stopDtmfTone

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

```
public void stopDtmfTone ()
```

Instructs this `Call` to stop any dual-tone multi-frequency signaling (DTMF) tone
currently playing.

DTMF tones are played by calling `https://developer.android.com/reference/android/telecom/Call#playDtmfTone(char)`. If no DTMF tone is
currently playing, this method will do nothing.

<br />

### stopRtt

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

```
public void stopRtt ()
```

Terminate the RTT session on this call. The resulting state change will be notified via
the `https://developer.android.com/reference/android/telecom/Call.Callback#onRttStatusChanged(android.telecom.Call,%20boolean,%20android.telecom.Call.RttCall)` callback.

<br />

### swapConference

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

```
public void swapConference ()
```

Swaps the calls within this conference. See `https://developer.android.com/reference/android/telecom/Call.Details#CAPABILITY_SWAP_CONFERENCE`.

<br />

### toString

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

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |

### transfer

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

```
public void transfer (Call toCall)
```

Instructs this `Call` to be transferred to another ongoing call.
This will initiate CONSULTATIVE transfer.

<br />

| Parameters ||
|---|---|
| `toCall` | `Call`: The other ongoing `Call` to which this call will be transferred. See 3GPP TS 24.629 for more details. This value cannot be `null`. <br /> |

### transfer

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

```
public void transfer (Uri targetNumber, 
                boolean isConfirmationRequired)
```

Instructs this `Call` to be transferred to another number.

<br />

| Parameters ||
|---|---|
| `targetNumber` | `Uri`: The address to which the call will be transferred. This value cannot be `null`. <br /> |
| `isConfirmationRequired` | `boolean`: if `true` it will initiate a confirmed(assured) transfer, if `false`, it will initiate an unconfirmed(blind) transfer. See 3GPP TS 24.629 for more details. <br /> |

### unhold

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

```
public void unhold ()
```

Instructs this `https://developer.android.com/reference/android/telecom/Call#STATE_HOLDING` call to release from hold.

<br />

### unregisterCallback

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

```
public void unregisterCallback (Call.Callback callback)
```

Unregisters a callback from this `Call`.

<br />

| Parameters ||
|---|---|
| `callback` | `Call.Callback`: A `Callback`. <br /> |