Hello,
I am developing an iPhone application to help users avoid missing important phone calls.
The intended behavior is:
- A user receives a regular cellular call through the built-in iPhone Phone app.
- The user does not answer the call.
- Our application automatically detects the missed call.
- The application schedules repeated local notifications until the user acknowledges the missed call.
The critical requirement is that detection must work while our application is in the background, without the user reopening it.
Implementation
We currently use CXCallObserver to observe cellular call events. When an incoming call ends without being connected, we classify it as a missed call and schedule notifications using UNUserNotificationCenter.
Test environment
- Device: iPhone 17
- iOS: 26.7.1
- Distribution target: Standard App Store, Japan
- Testing: Physical device without an attached Xcode debugger
Observed behavior
Scenario A: Our application is visible immediately before the iPhone is locked.
Missed calls have been detected and notifications scheduled after more than 30 to 60 minutes of device lock.
Scenario B: Our application is moved to the background before the iPhone is locked, for example by returning to the Home Screen or opening Safari.
Missed calls are not detected promptly, even after only a short period in the background.
When the user subsequently opens our application, CXCallObserver callbacks may arrive and the earlier missed call is then detected.
This defeats the purpose of the application because the user must reopen it to receive alerts.
Questions
-
Is
CXCallObserverexpected to deliver callbacks while its application is suspended, or only when the process is executing? -
Is there any supported public iOS API, extension, or background execution mechanism that allows a third-party application to detect missed calls from the built-in Phone app while the application is suspended or terminated?
-
Can a regular cellular missed-call event wake or relaunch a third-party application?
-
If
CXCallObservercannot support this use case, is there another Apple-supported solution available to ordinary App Store applications distributed in Japan?
We are looking for an approach that does not require external hardware, carrier integration, private APIs, or unsupported background execution techniques.
If this use case is not supported by the public iOS SDK, confirmation of that limitation would be very helpful.
Thank you for your guidance.