---
title: "reportNewIncomingCall(with:update:completion:)"
framework: callkit
role: symbol
role_heading: Instance Method
path: "callkit/cxprovider/reportnewincomingcall(with:update:completion:)"
---

# reportNewIncomingCall(with:update:completion:)

Reports a new incoming call with the specified unique identifier to the provider.

## Declaration

```swift
func reportNewIncomingCall(with UUID: UUID, update: CXCallUpdate, completion: @escaping @Sendable ((any Error)?) -> Void)
```

```swift
func reportNewIncomingCall(with UUID: UUID, update: CXCallUpdate) async throws
```

## Parameters

- `UUID`: The unique identifier of the call.
- `update`: The information for the call.
- `completion`: A block to be executed once the call is allowed or disallowed by the system. The block is executed on the delegate queue set by the doc://com.apple.callkit/documentation/CallKit/CXProvider/setDelegate(_:queue:) method, or on a private serial queue if none is specified.

## Mentioned in

Making and receiving VoIP calls Sending End-to-End Encrypted VoIP Calls

## Discussion

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: func reportNewIncomingCall(with UUID: UUID, update: CXCallUpdate) async throws For information about concurrency and asynchronous code in Swift, see Calling Objective-C APIs Asynchronously. An incoming call may be disallowed by the system if, for example, the caller handle is blocked, or the user has Do Not Disturb enabled.

## See Also

### Reporting Calls

- [reportNewIncomingVoIPPushPayload(_:completion:)](callkit/cxprovider/reportnewincomingvoippushpayload(_:completion:).md)
- [com.apple.developer.usernotifications.filtering](bundleresources/entitlements/com.apple.developer.usernotifications.filtering.md)
- [reportOutgoingCall(with:startedConnectingAt:)](callkit/cxprovider/reportoutgoingcall(with:startedconnectingat:).md)
- [reportOutgoingCall(with:connectedAt:)](callkit/cxprovider/reportoutgoingcall(with:connectedat:).md)
- [reportCall(with:updated:)](callkit/cxprovider/reportcall(with:updated:).md)
- [reportCall(with:endedAt:reason:)](callkit/cxprovider/reportcall(with:endedat:reason:).md)
