PushKit - это то, как приложения voip могут надежно получать тихие уведомления, в то время как CallKit - это в основном фреймворк для приложений пользовательского интерфейса, приложения для VoIP могутиспользовать для уведомления пользователя о звонках.Обратите внимание, что в API нет НИКАКОГО прямого соединения - например, приложение voip может генерировать локальное уведомление (вместо использования CallKit) или просто ничего не делать и «полностью игнорировать» уведомление.Точно так же приложение voip может «подделать» вызов в любое время, просто сообщив CallKit, что произошел входящий вызов (наш пример кода для CallKit сделал именно это).
Все, что ваше приложение могло ранее сделать, когда оно получило трафик сокета VoIP, оно могло бы также сделать, когда оно получило уведомление PushKit.
Стандартные приложения VoIP фактически работают в двух совершенно не связанных друг с другом «режимах»:
1) Во время ожидания входящего вызова приложение приостанавливается до тех пор, пока «что-то» (PushKit ИЛИ VoIP-сокет) не разбудит приложение, чтобы сообщить ему о вызове.
2) Однаждывызов запущен, приложение имеет активный аудио сеанс и использует стандартное «фоновое аудио» поведение iOS, как и множество других аудио приложений (например, любое приложение потоковой музыки).