---
title: CXCallController
framework: callkit
role: symbol
role_heading: Class
path: callkit/cxcallcontroller
---

# CXCallController

A programmatic interface for interacting with and observing calls.

## Declaration

```swift
class CXCallController
```

## Overview

Overview A CXCallController object interacts with calls by performing actions, which are represented by instances of CXCallAction subclasses. You can request that one or more actions be performed in a single CXTransaction object using the request(_:completion:) method. A transaction may be rejected by the system for one of the reasons listed in the CXErrorCodeRequestTransactionError.Code enumeration. Each CXCallController object manages a CXCallObserver object, which can be accessed using the callObserver property. You can provide an object conforming to the CXCallObserverDelegate protocol to the call observer in order to be notified of any changes to active calls.

## Topics

### Creating New Call Controllers

- [init()](callkit/cxcallcontroller/init().md)
- [init(queue:)](callkit/cxcallcontroller/init(queue:).md)

### Accessing the Call Observer

- [callObserver](callkit/cxcallcontroller/callobserver.md)

### Requesting Transactions

- [request(_:completion:)](callkit/cxcallcontroller/request(_:completion:).md)
- [requestTransaction(with:completion:)](callkit/cxcallcontroller/requesttransaction(with:completion:)-ffme.md)
- [requestTransaction(with:completion:)](callkit/cxcallcontroller/requesttransaction(with:completion:)-4o1m4.md)

### Errors

- [CXErrorCodeRequestTransactionError](callkit/cxerrorcoderequesttransactionerror-swift.struct.md)
- [CXErrorCodeRequestTransactionError.Code](callkit/cxerrorcoderequesttransactionerror-swift.struct/code.md)
- [CXErrorDomainRequestTransaction](callkit/cxerrordomainrequesttransaction.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

### Outgoing calls

- [Sending End-to-End Encrypted VoIP Calls](callkit/sending-end-to-end-encrypted-voip-calls.md)
- [CXTransaction](callkit/cxtransaction.md)
- [CXStartCallAction](callkit/cxstartcallaction.md)
