О задаче:
Нужно разработать SDK для встраивания в мобильные приложения на iOS и Android. Через него пользователи будут принимать входящие аудиозвонки от операторов. Телефония построена на Kamailio и Asterisk, SIP-клиент должен работать внутри SDK.
Что нужно сделать:
Общая часть:
1) Реализовать нативные SDK для iOS (Swift, SwiftUI) и Android (Kotlin).
2) Встроить SIP-клиент и подключение к Kamailio/Asterisk.
3) Реализовать приём, отклонение и завершение звонка, экран разговора и обработку основных ошибок (обрыв связи, смена сети, недоступность сервера).
4) Предусмотреть простое подключение SDK к стороннему приложению и публичный API с событиями звонка.
iOS:
1) При открытом приложении показывать UI SDK: «Принять / Отклонить» и экран разговора.
2) На заблокированном телефоне и поверх других приложений показывать звонок через CallKit.
3) Пробуждать приложение через VoIP-push (PushKit).
Android:
1) Показывать собственный UI приёма звонка и при открытом приложении, и на заблокированном экране.
2) Обеспечить доставку звонка, когда приложение свёрнуто или выгружено из памяти.
Безопасность и учётные данные:
1) Получать учётные данные SIP динамически, без хранения постоянных паролей в приложении.
2) Защитить сервер телефонии от несанкционированного подключения. Подход предложите в отклике.
3) Шифровать сигнализацию и медиа (TLS, SRTP) — если вы рекомендуете другой подход, обоснуйте его.
Ограничение:
1) Один пользователь = одно активное устройство. Последнее вошедшее устройство вытесняет предыдущее.
Требования к исполнителю:
1) Есть опыт нативной разработки под iOS и Android (команда или один специалист).
2) Есть реальный опыт с SIP/VoIP, CallKit и PushKit.
3) Вы работали с Kamailio и/или Asterisk либо плотно взаимодействовали с их администраторами.
4) Вы понимаете ограничения фоновой работы на Android, включая разные оболочки производителей.
Результат работы:
1) SDK для iOS и Android, готовые к подключению.
2) Демо-приложения для обеих платформ.
3) Исходный код с передачей исключительных прав.
4) Документация по интеграции и настройке.
5) Список требований к серверной части и бэкенду.
6) Лицензия SIP-стека, допускающая использование в закрытых коммерческих приложениях. Если лицензия платная, укажите её стоимость отдельно.
Критерии приёмки:
1) Звонок приходит и принимается на открытом, свёрнутом и выгруженном приложении, а также на заблокированном экране.
2) Разговор идёт с двусторонним звуком.
3) Вход с нового устройства вытесняет предыдущее.
4) Подключение без действующих учётных данных невозможно.
Опубликован 03.11.2026 в 08:44