You probably want to start your search in CoreTelephony. That being said, if a call comes in, iOS's call-handling events will take over your app. In other words, your app will be suspended when the call comes in, and move back to the foreground when the call is complete. You can use CoreTelephony to get access to the CTCallCenter, which contains an array of CTCalls (calls in progress). CTCall does not contain the phone number for the call, to my knowledge though. Furthermore, you can't stop iOS from backgrounding your app to handle the call.