BAS-IP Mobile SDK: как встроить видеодомофонию в собственное мобильное приложение
У жилого комплекса, управляющей компании или PropTech-платформы уже может быть собственное приложение. Жильцы платят за коммуналку, бронируют переговорную, оставляют заявки и получают уведомления. Потом в здании появляется домофония, и жильца просят установить ещё одно приложение, только чтобы ответить на звонок в дверь.
BAS-IP Mobile SDK позволяет обойтись без второго приложения. Видеовызовы, открытие двери и мобильный доступ встраиваются в то приложение, которым жилец уже пользуется. Команда партнёра берёт готовые компоненты BAS-IP и оформляет их под свой продукт.
В обзорной статье об интеграции BAS-IP с системами здания мы разобрали все подходы: стандартные протоколы, Link API, Mobile SDK и Device API. Здесь разберём мобильный: что умеет SDK, что нужно подготовить и где проходят границы.
Один день жильца
Проще всего объяснить SDK через обычный день человека, который живёт в доме с BAS-IP.
Днём на работе ему звонит курьер с панели: телефон показывает видео с камеры ещё до того, как жилец берёт трубку. Он видит коробку, отвечает, открывает дверь.
Вечером возвращается домой. Подносит телефон к считывателю у подъезда, разблокирует экран, и дверь открывается. Ключи остались в кармане.
Позже хлопает дверь подъезда, а ребёнок должен был прийти из школы. Жилец открывает камеру сам, без всякого звонка, и смотрит, кто у входа.
И всё это в одном приложении. В том самом, где он утром оплатил квитанцию.
Mobile SDK даёт компоненты для каждого из этих действий. Дальше разберём, как они устроены и что потребуется от команды.
Что входит в SDK
BAS-IP Mobile SDK — библиотеки, документация и примеры кода для мобильных разработчиков. Работает вместе с BAS-IP Link, поддерживает iOS и Android.
Через него приложение умеет:
- регистрировать пользователя и пускать его в приложение;
- получать профиль и список доступных ему устройств;
- принимать и совершать домофонные вызовы;
- передавать звук и видео;
- показывать картинку с панели до ответа на звонок;
- открывать камеру панели, когда никто не звонит;
- открывать дверь;
- вести историю входящих и исходящих;
- работать как мобильный ключ по Bluetooth;
- вызывать лифт, если на объекте есть нужное оборудование.
Партнёр берёт только то, что ему нужно, и сам решает, как это выглядит.
Три компонента: Core, Calls и UKEY
Core связывает приложение с BAS-IP Link. Через него жилец входит в аккаунт, восстанавливает пароль, а приложение получает его профиль и список доступных устройств. Отсюда же приложение начинает звонок, открывает дверь, показывает историю и вызывает лифт.
Calls отвечает за саму связь: входящие и исходящие вызовы, SIP-регистрацию, звук, видео, управление разговором. SDK обрабатывает состояния текущего вызова: пришёл входящий, телефон готов принять, разговор завершён и какая сторона положила трубку. На iOS для системной обработки вызовов используется CallKit.
UKEY превращает смартфон в ключ. Жилец сканирует QR-код, идентификатор загружается в приложение, дальше дверь открывается по Bluetooth через совместимый считыватель BAS-IP.
Заходить в приложение и жать кнопку при этом не обязательно. Запрос на открытие запускается, когда жилец разблокирует экран рядом со считывателем. Просто подойти с заблокированным телефоном в кармане недостаточно.
Важный нюанс с идентификаторами. Их выпускает BAS-IP, и приобретаются они отдельно, у нас или у дистрибьюторов. Партнёр может заранее приобрести идентификаторы и выдавать жильцам QR-коды, но сгенерировать их сам не может. Для жильца это выглядит просто: получил свой код, отсканировал, пользуется.
Этот QR-код нужен один раз, чтобы загрузить ключ в телефон. С гостевым QR-кодом, по которому в здание проходит курьер, он никак не связан.
Как звонок доходит до телефона
Мобильное приложение не держит SIP-регистрацию постоянно, как домофон или монитор на стене. Пока приложение свёрнуто или экран заблокирован, виртуальный номер жильца на сервере не зарегистрирован.
Поэтому звонку предшествует push:
- Посетитель жмёт кнопку на панели.
- Вызов приходит на сервер BAS-IP.
- Push-сервер отправляет уведомление через Firebase или APNs.
- Приложение просыпается и заново регистрируется на SIP-сервере.
- После восстановления регистрации приходит сам звонок, и приложение готово его принять.
Отсюда требование к инфраструктуре: партнёру нужен собственный push-сервер, который разворачивается по документации BAS-IP и работает с Firebase для Android и APNs для iOS. BAS-IP эту часть за интегратора не делает, но описывает, что именно в ней должно быть реализовано.
Если звонки в приложении не нужны, push-сервер тоже не нужен. Link-сервер нужен в любом случае, SDK работает только с ним.
Интерфейс остаётся вашим
BAS-IP кладёт в SDK шаблонные экраны и иконки, но ни к чему ими не обязывает. Кнопки, экран вызова, навигация, цвета — всё это партнёр рисует сам.
Для жильца домофония выглядит родной частью приложения его управляющей компании, а не вставкой от вендора.
Несколько телефонов на одну квартиру
Курьер жмёт кнопку квартиры, и телефон звонит у обоих родителей сразу. Кто ответил первым, тот и разговаривает, у второго вызов гаснет.
Звонок может прийти на телефоны с небольшой разницей во времени, это зависит от сети и состояния устройств. Список получателей задаётся настройками переадресации в Link. Важно, что домофон не привязан к одному телефону владельца квартиры.
Видео: до ответа и без звонка
Картинку с панели можно показать до того, как жилец возьмёт трубку. Сначала видно, кто пришёл, потом жилец решает, отвечать или нет.
Второй сценарий: открыть камеру, когда никто не звонил. Технически это тоже соединение с панелью, но для пользователя просто кнопка «посмотреть, что у входа».
Кому можно звонить из приложения
Жилец может позвонить на устройства, которые доступны ему в Link: на входную панель, на монитор в своей квартире, консьержу или охране, если так настроен объект.
А вот позвонить из приложения в другое приложение не получится. Прямых вызовов между двумя смартфонами нет, это стоит учесть при проектировании списка контактов.
История звонков и открытие двери
В приложении можно показать журнал: входящие и исходящие, дату, от кого пришёл или кому ушёл вызов, был он принят или пропущен. Жилец видит, что кто-то звонил, пока он был в метро.
Кнопку открытия двери партнёр ставит на экран вызова там, где считает нужным. SDK берёт на себя взаимодействие с оборудованием, так что собственный механизм открытия двери поверх SIP писать не придётся.
Лифт
Функция вызова лифта на этаж работает при двух условиях: на объекте установлен и настроен лифтовый модуль BAS-IP, а у жильца есть права доступа к нему.
С произвольной лифтовой системой здания это работать не будет. Нужен именно модуль BAS-IP. Оборудование и настройки определяются на этапе проектирования объекта.
Зачем SDK, если можно написать SIP-клиент самим
Можно. Но тогда команда берёт на себя SIP-регистрацию и её восстановление, push-уведомления, пробуждение приложения, входящие и исходящие вызовы, звук, видео, состояния разговора, открытие двери, общение с BAS-IP Link. И всё это придётся поддерживать дальше, при каждом обновлении iOS и Android.
SDK закрывает этот слой. Интеграция, интерфейс, своя инфраструктура и тестирование остаются на партнёре, но домофонный модуль с нуля писать не нужно.
Особенно это заметно там, где видеодомофония лишь одна функция большого продукта. Разработчики PropTech-платформы занимаются своим сервисом, а не становятся попутно разработчиками SIP-клиента.
Что получает команда разработчиков
После согласования проекта и подписания NDA партнёру создают отдельный проект в GitLab. Внутри готовые библиотеки, документация, примеры кода, sample application и вспомогательные файлы. Часть зависимостей подтягивается из внешних репозиториев по документации.
Sample application — самое полезное на старте. По примерам можно собрать работающий макет приложения и проверить, как всё устроено, вообще не трогая основное приложение. Уже потом компоненты переносятся в него.
Обновления библиотек и материалов передаются через тот же GitLab-проект. Партнёр работает в нём как в обычном репозитории.
Что остаётся на партнёре
Интеграция библиотек, интерфейс и бизнес-логика, собственная push-инфраструктура, тестирование, публикация в App Store и Google Play, дальнейшее сопровождение приложения.
BAS-IP даёт SDK, документацию, примеры и отвечает на технические вопросы по своим компонентам.
Сторонние проекты с Mobile SDK сейчас идут на BAS-IP Link Self-Hosted. Если проект планируется на Link Cloud, архитектуру стоит обсудить с BAS-IP до начала разработки.
Чего в SDK нет
Mobile SDK — не полная копия приложения BAS-IP Link. Например, в нём нет генерации гостевых QR-кодов и нет бронирования помещений, хотя в родном приложении Link это есть.
Если такие сценарии нужны, стоит проверить, закрываются ли они через BAS-IP Link API. Инструменты работают вместе: серверная часть платформы заводит жильцов и раздаёт им доступ через Link API, а приложение принимает звонки и открывает дверь через SDK.
Серверные сценарии подробно разобраны в статье про Link API. Перед стартом полезно выписать все нужные сценарии и решить, каким инструментом закрывается каждый.
Сколько это стоит
Отдельной платы за доступ к Mobile SDK, документации и техническую поддержку в ходе интеграции BAS-IP по умолчанию не берёт.
При этом BAS-IP Link и остальные продукты лицензируются на обычных условиях, а мобильные идентификаторы UKEY приобретаются отдельно, у BAS-IP или дистрибьюторов. Если проекту нужна отдельная доработка на стороне BAS-IP или изменение приоритета работ, условия обсуждаются отдельно.
В бюджет проекта стоит заложить и работу своей команды: интеграцию, инфраструктуру, тестирование и сопровождение приложения.
Частые вопросы
Какие версии iOS и Android поддерживаются?
Актуальные минимальные версии указаны в технической документации SDK. Требования меняются вслед за мобильными платформами, поэтому их стоит проверить перед стартом и при каждом обновлении библиотек.
Можно ли получить SDK без NDA?
Нет. Сначала согласовываем сценарий интеграции, затем подписывается NDA, и только после этого партнёру создают GitLab-проект с материалами.
Есть ли публичный sandbox?
Общего публичного sandbox нет. Для Self-Hosted партнёр разворачивает Link у себя и использует эту инсталляцию как среду разработки. Условия по тестовым лицензиям и оборудованию согласовываются под проект.
Сколько времени занимает интеграция?
Около месяца сфокусированной разработки — разумный ориентир для стандартного проекта, но не обещание срока запуска. Календарно обычно выходит дольше. На срок влияют архитектура приложения, загрузка команды, подготовка инфраструктуры, тестирование и публикация в магазинах.
Как приходят обновления SDK?
Через GitLab-проект партнёра. Команда сама планирует, когда их забрать, протестировать и выпустить новую версию своего приложения.
Хотите добавить видеодомофонию в своё приложение?
Напишите команде интеграций на [email protected] или оставьте заявку через форму.
Техническое задание заранее не нужно. Достаточно описать приложение и сценарий. Например:
«У нас есть приложение для жильцов на iOS и Android. Хотим принимать в нём видеовызовы с панелей BAS-IP и открывать дверь во время разговора».
Или:
«Хотим добавить мобильный доступ по Bluetooth. Планируем закупать идентификаторы UKEY и выдавать жильцам QR-коды».
Если оборудование и конфигурация Link уже определены, укажите их. Так разговор пойдёт быстрее. Команда BAS-IP подскажет, какие компоненты нужны, что потребуется от инфраструктуры и как получить SDK.