Как обрабатывать истекший сеанс во время входящего вызова VoIP (iOS, Chime SDK)?IOS

Программируем под IOS
Anonymous
Как обрабатывать истекший сеанс во время входящего вызова VoIP (iOS, Chime SDK)?

Сообщение Anonymous »

Я реализую вызовы VoIP на iOS с помощью Amazon Chime SDK с PushKit + CallKit.
Поток работает нормально, когда пользователь вошел в систему и сеанс действителен.
Сценарий:
Пользователь вошел в систему.
Приложение находится в состоянии завершения, а 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

Вернуться в «IOS»