<!--
{
  "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/CXCallUpdate",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "CallKit"
    ],
    "preciseIdentifier" : "c:objc(cs)CXCallUpdate"
  },
  "title" : "CXCallUpdate"
}
-->

# CXCallUpdate

An encapsulation of new and changed information about a call.

```
class CXCallUpdate
```

## Overview

[`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) objects are used by the system to communicate changes to calls over time. Not every property on a [`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) object must be set each time, as each object includes only new and changed information. For example, when a call is started, only some properties may be known and included in the first [`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) object sent to the system, such as [`localizedCallerName`](/documentation/CallKit/CXCallUpdate/localizedCallerName). Later in the same call, other properties may change; for example, a call may be upgraded from audio only to audio and video, which would be reflected by a new [`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) object with its [`hasVideo`](/documentation/CallKit/CXCallUpdate/hasVideo) property set to <doc://com.apple.documentation/documentation/Swift/true>.

When an incoming call is received, you construct a [`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) object specifying a [`localizedCallerName`](/documentation/CallKit/CXCallUpdate/localizedCallerName) and pass that to the [`reportNewIncomingCall(with:update:completion:)`](/documentation/CallKit/CXProvider/reportNewIncomingCall(with:update:completion:)) method to notify the telephony provider.

When an active call is updated, you construct a [`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) object specifying any updated information and pass that to the [`reportCall(with:updated:)`](/documentation/CallKit/CXProvider/reportCall(with:updated:)) method. For example, if a user changes their contact information during a call, you could notify the telephony provider of this change using a new [`CXCallUpdate`](/documentation/CallKit/CXCallUpdate) object with the new value set to its [`remoteHandle`](/documentation/CallKit/CXCallUpdate/remoteHandle) property.

## Topics

### Accessing Call Update Attributes

[`localizedCallerName`](/documentation/CallKit/CXCallUpdate/localizedCallerName)

The localized name of the caller.

[`remoteHandle`](/documentation/CallKit/CXCallUpdate/remoteHandle)

The handle for the remote party (for an incoming call, this is the caller; for an outgoing call, this is the callee).

[`hasVideo`](/documentation/CallKit/CXCallUpdate/hasVideo)

A Boolean value that indicates whether the call includes video in addition to audio.

[`supportsGrouping`](/documentation/CallKit/CXCallUpdate/supportsGrouping)

A Boolean value that indicates whether the call can be grouped with other calls.

[`supportsUngrouping`](/documentation/CallKit/CXCallUpdate/supportsUngrouping)

A Boolean value that indicates whether the call can be ungrouped from other calls.

[`supportsHolding`](/documentation/CallKit/CXCallUpdate/supportsHolding)

A Boolean value that indicates whether the call can be placed on hold or removed from hold.

[`supportsDTMF`](/documentation/CallKit/CXCallUpdate/supportsDTMF)

A Boolean value that indicates whether the call can send DTMF (dual tone multifrequency) tones via hard pause digits or in-call keypad entries.



---

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)