I received a providerDidReset (https://developer.apple.com/documentation/callkit/cxproviderdelegate/1771739-providerdidreset?language=objc) event.
In every sample implementation of providerDidReset all ongoing calls are stopped (see https://www.raywenderlich.com/1276414-callkit-tutorial-for-ios#toc-anchor-007)
I am wondering if I can reduce the likelihood to receive a providerDidReset.
E.g. by initializing variables "better" or using specific APIs for audio.
Do you know when / why iOS can trigger a providerDidReset?
Here is the code how I am initializing the CXProvider:
+ (CallKitHandler *)sharedHandler {
static dispatch_once_t onceToken;
static CallKitHandler* _handler;
dispatch_once(&onceToken, ^{
_handler = [CallKitHandler new];
[_handler initObservers];
[_handler initProvider];
[_handler initCallController];
});
return _handler;
}
// ...
- (void)initProvider {
_configuration = [[CXProviderConfiguration alloc] initWithLocalizedName:[UIApplication bundleDisplayName]];
_configuration.supportsVideo = NO;
_configuration.supportedHandleTypes = [NSSet setWithObject:@(CXHandleTypePhoneNumber)];
_configuration.maximumCallsPerCallGroup = 1;
_configuration.maximumCallGroups = 1;
_configuration.ringtoneSound = @"ringtone_short.mp3";
_configuration.iconTemplateImageData = UIImagePNGRepresentation([UIImage imageNamed:@"callKit_icon"]);
_provider = [[CXProvider alloc] initWithConfiguration:_configuration];
[_provider setDelegate:self queue:nil];
}