Is there any way to create an iOS application that launches and a call is received (basically hijacking the call receive event). Then the application can (after having done what it needs to do - maybe after a second or two), allow the user to answer and continue normally.
3 Answers
Nope it is not possible to interfere the call mechanism ,may be there will be some way in jaibreak option

- 19,955
- 12
- 56
- 101
AFAIK that is not possible , but you can have a look at CoreTelephony.
in the docs it says
A CTCall object gives you information about a current call, including a unique identifier and state information—dialing, incoming, connected, or disconnected.
may be worth a try.

- 4,943
- 30
- 34
This is not really a answer but a direction. Through IOHID(private API) your application can stay in background. It can monitor all hardware events like network or touch events. When a call is received, it would call back your application which is in background. I have a feeling that phone calls would also generate a call back which you can then handle.
Here is the sample code https://github.com/entryleveldev/TestIOHIDEvent. Also read this answer iOS touch event notifications (private API)
I have personally done it for touch events and it works pretty well in background. You can put a NSLog and monitor all types of events and easily figure out if phone calls generate a call back or not. If not, I am having a feeling that there might be other private API out there to help.
Drawback is, if you use private api, you app will get rejected in app store. Good luck.
Edit: This solution does not require jail breaking. Only use of private API.

- 1
- 1

- 2,066
- 2
- 24
- 38