I need my app to send a notification when there is a call (incoming call, connected, call ended) I registered my viewController with notification.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callReceived:) name:CTCallStateIncoming object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callEnded:) name:CTCallStateDisconnected object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callConnected:) name:CTCallStateConnected object:nil];
I also made a method to check call state
-(IBAction)checkForCall:(id)sender{
NSLog(@"call state %@ id %@",call.callState,call.callID);
CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* call){
if (call.callState == CTCallStateDisconnected)
{
NSLog(@"Call has been disconnected");
}
else if (call.callState == CTCallStateConnected)
{
NSLog(@"Call has just been connected");
}
else if(call.callState == CTCallStateIncoming)
{
NSLog(@"Call is incoming");
}
else
{
NSLog(@"None of the conditions");
}
};
}
But none of this works. Please help me.
Where is the mistake? Is there any code which tells how to use core telephony?
for iOS 10 AND swift 3:
a) copy and paste in a new empty controller in a new project b) run it, asyncAfter will trigger a call... NOTE: works only on device.
use this
Appdelegate.h
AppDelegate.m
These are the state names, not notification names. You need to setup callEventHandler and check the state there.
Use CXCallObserver