Поток работает нормально, когда пользователь вошел в систему и сеанс действителен.
Сценарий:
Пользователь вошел в систему.
Приложение находится в состоянии завершения, а iPhone заблокирован.
Приходит push-уведомление VoIP (входящий вызов).
Пользователь должен иметь возможность ответить на вызов напрямую.
Проблема:
Для присоединения к вызову требуется действительный токен сеанса.
Но если срок действия сеанса уже истек, приложение не может получить информацию/токен собрания, и пользователь не может присоединиться к вызову.
Вопрос:
Каков стандартный подход к обработке звонка? это?
Поддерживают ли такие приложения, как Slack/Teams, специальный долговременный токен для вызовов?
Или мне следует реализовать поток токенов обновления (пробуждение приложения в фоновом режиме → обновление → присоединение к вызову)?
Текущий код (упрощенный):
Код: Выделить всё
// Called when VoIP push arrives
func pushRegistry(_ registry: PKPushRegistry,
didReceiveIncomingPushWith payload: PKPushPayload,
for type: PKPushType,
completion: @escaping () -> Void) {
let callData = payload.dictionaryPayload
// Validate token
if isSessionExpired() {
// ❌ Problem: can't fetch meeting info
// What should be the right approach here?
return
}
// Fetch meeting details from backend
fetchMeetingInfo(token: sessionToken) { meetingInfo in
startCall(meetingInfo)
}
}
Любые рекомендации или ссылки для приложений, использующих Chime SDK (или аналогичные, например Slack/Teams), будут очень полезны.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -chime-sdk
Мобильная версия