CTCall is a set of APIs in CoreTelephony.framework that is used to achieve various things related to phone calls.
Initiating a call
To initiate a call without using MobilePhone, you can use the CTCallDial function.
CFStringRef number = CFSTR("15555555555"); CTCallRef call = CTCallDial(number); ... CTCallHold(call); ... CTCallResume(call); ... CTCallDisconnect(call);
The CTCallHold, CTCallResume and CTCallDisconnect (to end the call) functions can be used to hold call, resume a held call and end a call, respectively.
- Note: The phone number passed to CTCallDial must be normalized. For example, +1 (555) 555-5555 will become 15555555555 after normalization. You can use the CPPhoneNumberCopyNormalized function to normalize.
Getting the call history
One can use the _CTCallCopyAllCalls function to get the call history as a list of CTCalls.
CFArrayRef calls = _CTCallCopyAllCalls(); NSLog(@"Calls: %@", calls); CFRelease(calls);