Софтфон для Android: будить или не засыпать?

Будить иль не будить — вот в чем вопрос. Достойно ль
Аккумуляторы нам заставлять страдать
Или невместно? И, напротив, нужно
Нам к батареям проявить гуманность:
Позволить им не умереть — уснуть?

Этот пост — продолжение истории создания Whitelabel-софтфон для Android и рассказ о том, как мы решали проблему засыпания.

Как известно, многие мобильные приложения имеют проблемы со сном. Точнее, как раз со сном-то проблем у них нет: они очень хорошо засыпают, стоит лишь их только свернуть. А вот выйти из спящего режима они не могут, и это напрягает, раздражает и бесит. Кроме того, это чревато потерей клиентов: если софтфон в момент звонка не сможет проснуться, то будет не разговор и лид, а пропущенный звонок и пшик.

И если мы не хотим пропускать входящие звонки так же, как это делают другие сип-клиенты, то у нас есть роскошный выбор из двух вариантов: 1) не спать вообще; 2) будить, когда нужно.

Неспящие в Андроиде

Действительно, зачем спать, если можно не спать? Тусить всегда, тусить везде — вот лозунг мой, и точка! Да и реализовать вроде бы просто — Мистер Бин это убедительно доказал и показал.


Решение от Мистера Бина

Решение от Мистера Бина

Нам всего лишь надо сказать клиентам, чтобы покопались в настройках батареи и разрешили фоновую деятельность — и дело в шляпе! Да? Нет. У всякой проблемы всегда есть решение: простое, удобное и, конечно, ошибочное — тот самый случай.

Во-первых, это неудобно для клиентов, а значит, неправильно. К тому же вряд ли клиенты будут в восторге от того, как активно наше приложение будет жрать батарею, на которую и без того хватает охотников.


Скоропостижная смерть батареи — это вовсе не то, к чему мы стремимся

Скоропостижная смерть батареи — это вовсе не то, к чему мы стремимся

Поэтому устраивать пир во время чумы мы не будем и пойдём другим путём.

Андрота, подъём!

Появилась другая идея: сделать сип-прокси между софтфоном и АТС, который будет решать сразу две задачи:

  • Удерживать регистрацию на АТС, когда приложение в телефоне дремлет (уснуло? ну и ладно).
  • Будить телефон при входящем звонке посредством пуш-уведомления.

Принципиальная схема пробуждения и удержания регистрации на АТС

Принципиальная схема пробуждения и удержания регистрации на АТС

Соответственно, в случае iOS (напомним, что у нас есть также Whitelabel-софтфон для iOS) вместо Google Push используется Apple Push, а в остальном схема такая же: от АТС к Push-прокси через SIP/RTP, затем к Push-серверу посредством HTTP. Взаимодействие прокси и софтфона — также через SIP/RTP.


Так мы победили проблему засыпания. А про то, как мы решали, что будет лучше для бэкенда и выбирали между нативным и кросплатформенным — читайте в этой статье.

Всем мобильности! 📱

ТАКЖЕ ПО ТЕМЕ

Blog Платный софтфон VS бесплатные звонилки

Blog Реальный софтфон: что нужно людям

Blog VoIP vs SIP, звонилки VS софтфоны: сходства и различия

Help Решение проблем с качеством связи IP телефонии при использовании Softphone.Pro


Последние статьи