NotificationCenter does not send any notifications about this, but check out the CTCallCenter class introduced in iOS 4. It has a callEventHandler property that you can assign to a code block and receives a call with information about the call status.
There is a limitation that the handler receives a call only when your application is in the foreground (or removed from the foreground when a call arrives), but it tells you whether the user is CTCallStateDialing ( CTCallStateDialing ), receiving a call ( CTCallStateIncoming ), answer / connection ( CTCallStateConnecting ) or hang on call ( CTCallStateDisconnected ).
source share