<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 10.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CallKit",
  "identifier" : "/documentation/CallKit/CXCall",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "CallKit"
    ],
    "preciseIdentifier" : "c:objc(cs)CXCall"
  },
  "title" : "CXCall"
}
-->

# CXCall

A telephony call.

```
class CXCall
```

## Overview

You don’t instantiate [`CXCall`](/documentation/CallKit/CXCall) objects directly. Instead, [`CXCall`](/documentation/CallKit/CXCall) objects are created by the telephony provider when an incoming call is received or an outgoing call is initiated.

Each [`CXCall`](/documentation/CallKit/CXCall) object is uniquely identified by a [`uuid`](/documentation/CallKit/CXCall/uuid). You primarily interact with calls by passing their unique identifiers to CallKit APIs. For example, to place a call on hold, you create an instance of [`CXSetHeldCallAction`](/documentation/CallKit/CXSetHeldCallAction) with [`init(call:onHold:)`](/documentation/CallKit/CXSetHeldCallAction/init(call:onHold:)) passing the [`uuid`](/documentation/CallKit/CXCall/uuid) of the call and <doc://com.apple.documentation/documentation/Swift/true>, create a [`CXTransaction`](/documentation/CallKit/CXTransaction) object containing the action, and then pass the transaction to an instance of [`CXCallController`](/documentation/CallKit/CXCallController) using the [`request(_:completion:)`](/documentation/CallKit/CXCallController/request(_:completion:)) method.

You can use the [`CXCallObserver`](/documentation/CallKit/CXCallObserver) managed by a [`CXCallController`](/documentation/CallKit/CXCallController) to access [`CXCall`](/documentation/CallKit/CXCall) instances for active calls using the [`calls`](/documentation/CallKit/CXCallObserver/calls) property, or provide an object conforming to the [`CXCallObserverDelegate`](/documentation/CallKit/CXCallObserverDelegate) protocol to be notified anytime a call is updated.

## Topics

### Accessing Call Attributes

[`UUID`](/documentation/CallKit/CXCall/uuid)

The unique identifier for the call.

[`outgoing`](/documentation/CallKit/CXCall/isOutgoing)

A Boolean value that indicates whether the call is outgoing.

[`hasConnected`](/documentation/CallKit/CXCall/hasConnected)

A Boolean value that indicates whether the call has connected.

[`hasEnded`](/documentation/CallKit/CXCall/hasEnded)

A Boolean value that indicates whether the call has ended.

[`onHold`](/documentation/CallKit/CXCall/isOnHold)

A Boolean value that indicates whether the call is on hold.

### Comparing Calls

[`-  isEqualToCall:`](/documentation/CallKit/CXCall/isEqualToCall:)

Returns a Boolean value that indicates whether a given call is equal to the receiver.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)