<!--
{
  "availability" : [
    "iOS: 13.4.0 -",
    "iPadOS: 13.4.0 -",
    "macCatalyst: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CallKit",
  "identifier" : "/documentation/CallKit/CXCallDirectoryManager/openSettings(completionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "CallKit"
    ],
    "preciseIdentifier" : "c:objc(cs)CXCallDirectoryManager(im)openSettingsWithCompletionHandler:"
  },
  "title" : "openSettings(completionHandler:)"
}
-->

# openSettings(completionHandler:)

Opens the iOS Settings app and shows the Call Blocking & Identification settings.

```
func openSettings(completionHandler completion: (@Sendable ((any Error)?) -> Void)? = nil)
```

## Parameters

`completion`

A block executed when the manager finishes opening the Call Directory panel.

- error: If an error occurred, an error object indicating how the operation failed; otherwise, `nil`.

## Discussion

> Important:
> You can call this method from synchronous code using a completion handler, as shown on this page, or you can call it as an asynchronous method that has the following declaration:
> 
> ```swift
> func openSettings() async throws
> ```
> 
> For information about concurrency and asynchronous code in Swift, see <doc://com.apple.documentation/documentation/Swift/calling-objective-c-apis-asynchronously>.

Before a Call Directory extension can operate on incoming calls, the user must explicitly enable the extension in the iOS Settings app.

Use this method to open the Settings app and show the Call Blocking & Identification settings directly.

---

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)