Отсутствие уведомлений VoIP после получения X раз - PullRequest
1 голос
/ 27 мая 2020

Как я узнаю, что мое устройство заблокировано для получения уведомлений VoIP?

Мое устройство перестает получать уведомления VoIP после получения 3-4 раза. Я понимаю, что с iOS 13 уведомления VoIP следует отправлять на CallKit. Даже после сообщения CallKit я сталкиваюсь с проблемой отсутствия уведомлений VoIP.

мы установили apns-expiration равным 0, а приоритет - немедленно (10)

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void(^)(void))completion {
   if(type == PKPushTypeVoIP) {
    self.notificationMessage = payload.dictionaryPayload;

    CXProviderConfiguration* config = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Test app"];
    config.supportsVideo = YES;
    self.provider = [[CXProvider alloc] initWithConfiguration:config];
    [self.provider setDelegate:self queue:nil];

    CXCallUpdate* update = [[CXCallUpdate alloc] init];
    update.localizedCallerName = @"Test caller";
    update.hasVideo = YES;
    NSString *uuidString = [[NSUUID UUID] UUIDString];
    self.callUUID = [[NSUUID alloc] initWithUUIDString:uuidString];

    [self.provider reportNewIncomingCallWithUUID:self.callUUID update:update completion:^(NSError * _Nullable error) {
        if(error != nil) { NSLog(@"error: %@", error); }
        NSLog(@"----------Incoming call reported successfully--------");
        completion();
    }];
} 

}

Обработка действия пользователя с использованием методов делегата CXProvider

- (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action {
    [action fulfill];
}
- (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action {
    if (self.callUUID == nil) {
        [action fail];
        return;
    }
   [action fulfill];
}

Пожалуйста, дайте мне знать, где я ошибаюсь .. Заранее спасибо.

...