Механизм регистрации мобильного приложения на SIP сервере
Важно! По умолчанию мобильное приложение жителя не авторизовано на SIP сервере и ожидает push уведомления от сервера Умное ЖКХ о входящем звонке.
SIP сервер должен иметь постоянный доступ в интернет и принимать внешние соединения.
- При звонке с домофонной панели в определенную квартиру звонок проходит на sip сервер, sip сервер отправляет запрос в Умное ЖКХ, обращаясь по специальной ссылке содержащей идентификатор клиента и номер sip аккаунта (описано ниже).
- В этот момент Умное ЖКХ отправляет push уведомление в мобильное приложение жителя с соответствующим идентификатором.
- Мобильное приложение обращается к sip серверу и авторизуется на нем.
- На протяжении всего периода времени (5-10) секунд пока выполняются пункты 1 - 3 sip сервер продолжает звонить.
- После авторизации мобильное приложение получает вызов, и житель может ответить.
Требования к стороннему SIP серверу видеодомофонии:
Когда происходит звонок в домофон, сервер домофонии должен отправить нам запрос по ссылке (пример):
где:
- identifier - идентификатор клиента (в общем случае один для застройщика или жилого комплекса, выдаётся Умным ЖКХ по запросу)
- number - номер sip аккаунта куда звоним
- Panel - номер sip аккаунта вызывной панели с которой идет вызов
Для тестирования вашего сервера с приложением «Умное ЖКХ» потребуется:
1. 2 sip-аккаунта - логины/пароли. Первый используется для панели, второй для мобильного приложения жителя
2. Адрес сервера
3. Код открытия двери (DTMF команда) и сообщить в каком формате. Нам известно, как работать с SIP INFO и RFC2833. Лучше использовать SIP INFO, так как сейчас приложение работает в таком формате
4. Ссылка на RTSP поток. Проверьте заранее ее работоспособность на сервисе https://rtsp.me/
- Трафик должен быть доступен из внешней сети
- По возможности дать доступ к логу событий на сервере домофонии
Настройка сервера и маршрутизатора (если сервер расположен за NATом)
sip direct media есть на sip сервере, его необходимо отключить
На маршрутизаторе необходимо настроить проброс RTP портов таких же как на sip сервере (обычно это 10000-20000) и SIP порта 5060
Проверить на сервере настройки force_rport и rtp_symmetric (по умолчанию включены, так и должно остаться)
варианты, как это может выглядеть в файле конфига:
force_rport = yes
rtp_symmetric = yes
или
nat=force_rport,comedia
На маршрутизаторе проверить настройки sip ALG, отключить SIP ALG полностью
В мобильном приложении включены ICE, STUN, TURN, но тем не менее на сервере direct media должно быть отключено, так как p2p соединения не обеспечивают надежного и стабильного прохождения звука через NAT. Включенные настройки ICE, STUN, TURN в мобильном приложении нужны лишь как защита от случайного изменения настроек на сервере, чтобы абоненты не остались полностью без связи в случае непреднамеренного изменения настроек сервера или роутера перед сервером. .
Системные и технические требования для устройств
Установленные google сервисы - на части устройств Honor и Huawei они могут отсутствовать (требуется ручная установка)
Минимальная версия операционной системы Android 10
Минимальная версия операционной системы iOS 14.0