(pushkit + callKit) для обработки входящих вызовов. У нас есть система, которая регистрирует данные вызова в Firestore, а затем использует CloudFunction, прослушивает Firestore и запускает APN для отправки уведомлений о вызовах на устройство.
Проблема, с которой я сталкиваюсь, заключается в том, что когда Приложение работает в фоновом режиме, не принимает входящие звонки. После некоторой отладки я обнаружил, что проблема не в уведомлениях. Вместо этого SIP-сообщения (100 попыток и 180 звонков) из приложения не доходят до Asterisk. По этой причине callData не записывается в Firestore, поэтому в приложение не отправляются уведомления о входящих вызовах. Когда приложение возвращается на передний план, эти SIP-сообщения успешно отправляются в Asterisk.
Интересно, что сообщения о перерегистрации SIP отправляются и принимаются нормально, даже в фоновом режиме. Это заставляет меня задаться вопросом, не блокирует ли что-то другие сообщения SIP (100 попыток + 180 звонков), когда приложение находится в фоновом режиме.
Поток SIP при начале вызова
Вот что я Готово:
- Фоновые режимы: включены уведомления VoIP, фоновая загрузка и удаленное уведомление.
- Pushkit и уведомления VoIP : установите необходимые сертификаты и настройте их в проекте.
- SIP Keep-Alive: обеспечиваем поддержание соединения. Порт и IP-адрес, используемые для связи с Asterisk, остаются прежними.
- Убедитесь, что проблема не в уведомлениях: если callData присутствует в Firestore, система уведомлений о вызовах работает отлично, даже если приложение работает в фоновом режиме или устройство спит.
Подробнее здесь: https://stackoverflow.com/questions/791 ... background