CallKit providerDidReset - what can trigger this event?

Viewed 123

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];
}
0 Answers
Related