CallKit в iOS 13: как отложить звонок?

Мое приложение VoIP использует PJSIP. Сценарий входящего звонка:

  1. получить push-уведомление «Пробуждение» — начинается регистрация пользователя sip, и это занимает некоторое время
  2. После регистрации пользователя SIP астериск пытается перенаправить звонок в приложение - в этот момент телефон должен начать звонить

В iOS 13 есть обязательное условие, что CallKit должен быть уведомлен о входящем звонке прямо в didReceiveIncomingPushWithPayload, который начинает звонить. И я не хочу этого. Я хочу начать звонить в тот момент, когда библиотека получит SIP-сигнал о входящем звонке. Но между push-уведомлением и звонком есть процесс регистрации SIP.

Какова наилучшая практика для этого или какое решение для этого?


person matusalem    schedule 24.10.2019    source источник
comment
Добро пожаловать в клуб. Полностью исправить это невозможно. Решение Apple? В уведомлении отправьте достаточно информации, чтобы можно было отобразить «фальшивый» звонок, и, надеюсь, к тому времени, когда пользователь нажмет «Ответ», стек SIP, регистры и новое ПРИГЛАШЕНИЕ будут готовы. Если приложение не готово, просто сделайте вид, что вашему приложению требуется много времени, чтобы ответить на вызов.   -  person user8127814    schedule 25.10.2019
comment
О-о... Мне действительно нужно реализовать фальшивый звонок перед настоящим? Возможно, решение состоит в том, чтобы перейти на стандартный APNS. Они не такие быстрые, но позволяют реализовать правильный рабочий процесс CallKit. Или можно заморозить didReceiveIncomingPushWithPayload до успешной регистрации SIP?   -  person matusalem    schedule 25.10.2019


Ответы (1)


Реального решения для этой конкретной проблемы не существует, как сказал пользователь 8127814 в комментарии, есть только смягчение.

На форуме Apple вы можете найти подробное объяснение — от инженера Apple — о том, как справиться с этой и всеми другими проблемами, вызванными ограничением iOS 13 VoIP Push. Вот ссылка: https://forums.developer.apple.com/thread/117939

person Marco    schedule 25.10.2019
comment
Отлично, вся разработка VoIP для iOS зависит от комментария парня из Apple где-то на форуме... - person matusalem; 29.10.2019