---
title: CXCall
framework: callkit
role: symbol
role_heading: Class
path: callkit/cxcall
---

# CXCall

A telephony call.

## Declaration

```swift
class CXCall
```

## Overview

Overview You don’t instantiate CXCall objects directly. Instead, CXCall objects are created by the telephony provider when an incoming call is received or an outgoing call is initiated. Each CXCall object is uniquely identified by a 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 with init(call:onHold:) passing the uuid of the call and true, create a CXTransaction object containing the action, and then pass the transaction to an instance of CXCallController using the request(_:completion:) method. You can use the CXCallObserver managed by a CXCallController to access CXCall instances for active calls using the calls property, or provide an object conforming to the CXCallObserverDelegate protocol to be notified anytime a call is updated.

## Topics

### Accessing Call Attributes

- [uuid](callkit/cxcall/uuid.md)
- [isOutgoing](callkit/cxcall/isoutgoing.md)
- [hasConnected](callkit/cxcall/hasconnected.md)
- [hasEnded](callkit/cxcall/hasended.md)
- [isOnHold](callkit/cxcall/isonhold.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Call information

- [CXCallObserver](callkit/cxcallobserver.md)
- [CXCallObserverDelegate](callkit/cxcallobserverdelegate.md)
- [CXHandle](callkit/cxhandle.md)
