Привет Хабр!

Сейчас многие пользуются офисными IP АТС (Астериск и др.) или виртуальными DID номерами других городов или стран и как правило используют в качестве клиента на мобильных устройствах разные бесплатные SIP клиенты (CSipSimple, Zoiper и другие).
Это удобно, позволяет делать звонки внутри АТС офисным сотрудникам «в полях», можно привязать к одному смартфону много разных номеров других городов и стран, экономит расходы на междугородние и международные звонки и т. д.
Но существует несколько проблем.
Во первых, такие приложения, будучи постоянно запущенными, значительно расходуют батарейку смартфона.
В результате большинство использует такие приложения только для исходящих звонков — т.е. запустили, позвонили, выключили.
Таким образом используется только половина возможностей IP телефонии.



Это происходит потому что большинство IP АТС представляют собой обычный SIP сервер, который требует периодической регистрации клиента, т. е. приложение на телефоне должно быть всегда онлайн и соответственно IP АТС всегда ждет регистрационного пакета от приложения.
Если в течении определенного времени от приложения не придет регистрационный пакет, то IP АТС считает что клиент оффлайн и уже никто внутри АТС не сможет сделать звонок на такого клиента.
Поэтому такие приложения должны находиться всегда онлайн и соответственно значительно расходуют батарейку мобильного устройства.
Так сложилось исторически, когда клиентские SIP устройства были в основном десктопными IP телефонами или VOIP шлюзами и соответственно проблемы экономить батарейки не существовало.
Во-вторых, хуже всего сейчас пользователям iOS — дело в том, что начиная с 11 версии Apple вообще убрал возможность своим приложениям быть всегда онлайн и соответственно те приложения для SIP, которые постоянно были онлайн, уже не работают на новых версиях iOS. Это продиктовано политикой Apple минимизировать расход батареи для всех приложений.
Существуют несколько выходов из такой ситуации.

Основное решение такой задачи — переводить приложение в оффлайн, т. е. «усыплять» приложение и будить его по пушу именно в то время, когда приходит входящий звонок.
Собственно, так и делают все популярные мессенджеры с проприеретарными протоколами — WhatsApp, Viber, Телеграм и другие, когда идет входящий аудио или видео звонок — они пушем будят приложение, оно запускается и после этого способно принимать звонки.

Первое решение — создать свой сервер, свою IP АТС и написать своего собственного клиента под две платформы (iOS и Андроид), который бы и делал вышеописанные действия.

В принципе, так и делают некоторые крупные VOIP провайдеры (например МТТ) — у них есть свои SIP клиенты для мобильных устройств, которые работают в пуш режиме.
Проблема в том что такие клиенты могут работать только с этим провайдером, соответственно если вы пользуетесь свой офисной IP АТС и одновременно другими провайдерами IP телефонии, то такое решение вам не подойдет.

Второй способ — купить универсального SIP клиента, который умеет делать пуш.
Почему такие решения стоят денег?
Потому что SIP клиент с пушем — это не просто написать отдельное приложение и выложить его в стор.
Для этого необходимо создать и поддерживать отдельный сервер, который и будет слать регулярные регистрационные пакеты на вашу IP АТС, а уже сам сервер и будет работать непосредственно с приложением — будить его при вызове.
Т.е. для создания нужна целая инфраструктура и именно поэтому такие универсальные решения платные.

И наконец, существует бесплатное решение — универсальный мессенджер, который в том числе может работать в качестве SIP клиента с пуш режимом.
Итак, скачиваем мессенджер для Андроид или для iOS, регистрируемся (обратите внимание что для регистрации НЕ требуется номер телефона).
В общем меню находим вкладку Подключения SIP:



Добавляем свой существующий SIP аккаунт.
Name — это имя вашего провайдера (в нашем примере это будет
Zadarma)
User — здесь надо указать ваш SIP логин
Domain — адрес вашего VOIP провайдера.
Если провайдер или ваша IP АТС использует свой порт, то можно
указать его через двоеточие, например:sip.voipprovider.com:5060
Auth — ваш SIP логин (тот же что и в разделе User)
Password — ваш пароль к SIP аккаунту



В мессенджер можно добавить до 8 таких учетных записей.
При исходящем наборе номера будет предложен выбор через какого провайдера
делать звонок.

Таким образом можно завести в мессенджер несколько номеров — как офисных, так и других городов и стран и быть всегда доступным для входящих звонков, не опасаясь большого разряда батареи смартфона.

Комментарии (0)