When you have an incoming call, function
- (void)applicationWillResignActive:(UIApplication *)application;
and if the call is missed, the application will be active again, and the function
- (void)applicationDidBecomeActive:(UIApplication *)application;
.
This way you can detect missed calls. I do not know any other way to do this.
The only drawback is that these methods also cause when you lock / unlock the device, when your application is active, so you wonβt be able to find out if it was a missed call or the user blocked the device.
source share