Задание: Приложения для iOS. Разработка ios приложения (интеграция с фреймворком) (Дистанционная работа)
1. Необходимо интегрировать фреймворк livekit в iOS приложение
2. Интегрировать с callkit
3. Сделать верстку по дизайну интерфейса
Техническое задание: Интеграция аудиозвонков через LiveKit и CallKit в iOS-приложение с поддержкой VoIP
Цель
Обеспечить полноценную поддержку аудиозвонков в iOS-приложении на базе LiveKit, с нативным отображением звонков через CallKit, и приёмом входящих звонков через VoIP Push (PushKit). Комната создаётся автоматически, без участия пользователя.
⸻
1. Интеграция LiveKit (аудио)
Задачи:
• Подключить LiveKit iOS SDK.
• Реализовать подключение к существующему серверу LiveKit:
• Комната определяется автоматически сервером
• Аутентификация происходит через access-токен, получаемый от backend-а
• Поддерживаемые функции:
• Подключение к комнате только с аудио-треком
• Управление микрофоном (включение/отключение)
• Завершение сессии (включая удаление из комнаты)
• Обработка событий:
• Подключение и отключение участников
• Ошибки подключения и потери соединения
⸻
2. Интеграция CallKit
Задачи:
• Настроить CallKit (CXProvider + CXCallController) для:
• Отображения системного интерфейса звонков
• Управления действиями: ответ, отклонить, завершить, микрофон
• Сценарии:
• Исходящий звонок: инициируется из приложения, отображается через CallKit, автоматически подключается к LiveKit
• Входящий звонок: инициируется через VoIP push, отображается системный экран звонка, при ответе — подключение к LiveKit
• Логика синхронизации:
• Ответ в CallKit → подключение к комнате LiveKit
• Завершение вызова → отключение от LiveKit и уведомление CallKit
⸻
3. VoIP Push-уведомления
Задачи:
• Интеграция PushKit для приёма VoIP push-уведомлений
• Получение и регистрация VoIP-токена
• Обработка входящих push-сообщений:
• На входящее уведомление — вызов CallKit (CXProvider.reportNewIncomingCall)
• Подключение к комнате LiveKit после принятия вызова
• Учет сценариев фонового режима и закрытого приложения
⸻
4. Поведение приложения
Исходящий вызов:
1. Пользователь нажимает “Позвонить” в приложении.
2. Вызов отображается через CallKit.
3. Подключение к комнате LiveKit происходит при старте звонка.
Входящий вызов:
1. Сервер отправляет VoIP push.
2. Приложение получает уведомление и вызывает CallKit.
3. При ответе — подключение к LiveKit и начало аудиосессии.
⸻
Ожидаемый результат
• Поддержка исходящих и входящих аудиозвонков.
• Стабильная работа через CallKit с отображением системных звонков.
• Транспорт аудио — через LiveKit, с надёжным соединением.
• Входящие вызовы через VoIP push (PushKit).
• Минимальное участие пользователя — комната и соединение происходят автоматически.