Входящий звонок VoIP не работает, когда приложение завершено в iOS - PullRequest
2 голосов
/ 08 апреля 2020

Описание

VoIP-вызов в делегате pushkit didReceiveIncomingPushWithPayload - работает нормально в фоновом состоянии . Но в выключенном состоянии это не работает, приложение падает на main.m . Даже в состоянии kill метод didReceiveIncomingPushWithPayload не вызывается.

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion
{
    NSLog(@"<<<<<<<<<<<<<<************* %s",__PRETTY_FUNCTION__);
    NSLog(@"payload.dictionaryPayload = %@",payload.dictionaryPayload);
    NSLog(@"UTC payload.dictionaryPayload = %f",[[NSDate date] timeIntervalSince1970]);

    if (type == PKPushTypeVoIP) {

        //Call kit configration
        CXProviderConfiguration *providerConfig = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Push Voip Call"];
        providerConfig.supportsVideo = NO;
        providerConfig.supportedHandleTypes = [[NSSet alloc] initWithObjects:[NSNumber numberWithInteger:CXHandleTypeEmailAddress], nil];

        CXCallUpdate *callUpdate = [CXCallUpdate new];

        NSString *uniqueIdentifier = @"Demo call";
        CXCallUpdate *update = [[CXCallUpdate alloc] init];
        update.remoteHandle = [[CXHandle alloc] initWithType:CXHandleTypeEmailAddress value:uniqueIdentifier];
        update.localizedCallerName = uniqueIdentifier;
        update.hasVideo = NO;

        NSUUID *callId = [NSUUID UUID];

        CXProvider *provider = [[CXProvider alloc]initWithConfiguration:providerConfig];
        [provider setDelegate:self queue:nil];

        [provider reportNewIncomingCallWithUUID:callId update:callUpdate completion:^(NSError * _Nullable error) {
            NSLog(@"reportNewIncomingCallWithUUID error: %@",error);

            //completion();

        }];

        completion();
    }
}

Я не мог понять, в чем проблема. Пожалуйста, помогите мне разобраться в проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...