Почему популярные мессенджеры делают вам фейковые гудки? -14



Всем привет.

В качестве предисловия давайте проведем небольшой экперимент — возьмем 2 смартфона с установленными на них какими-нибудь популярными мессенджерами — WhatsApp, Viber, Telegram — не важно. Теперь выключим один из них и попытаемся сделать звонок через мессенджер на выключенный смартфон. Вы услышите долгие гудки, которые будут длиться определенное время ( примерно 1 минуту) и затем последует сброс звонка. С точки зрения звонящего — другая сторона просто не берет трубку (человек не слышит, шумно, поставил на тихий режим и т.д.), но мы то знаем что другая сторона вообще находится оффлайн. Почему так происходит?

Причина — в самом ДНК мессенджеров старого поколения. Происходит следующее — пользователь слышит определенные звуки, называемые сигнализацией. Эта сигнализация пришла к нам из мира телефонии — например, есть звуки, обозначающие что абонент занят — такой сигнал называется Busy, он имеет определенную скважность и определенную частоту, причем в разных странах они разные. Есть Fast busy — он появляется тогда, когда вы поговорили с кем-то, удаленная сторона закончила разговор, а вы — нет и вы можете услышать такой сигнал — как правило частота у него чаще, чем у обычного Busy и т. д. Когда вы звоните из мессенджера, как в вышеприведенном примере, то вы слышите вызывные гудки которые называются Ring Back Tone (RBT).

Но на самом деле, по сравнению с обычной телефонной сигнализацией, которая была придумана для того чтобы дать пользователю понятие что реально происходит с его звонком, в случае с мессенджером такого не происходит — мессенджер просто не знает, находится другая сторона онлайн или нет, слышит ли другая сторона вызов или нет и делает следующее — начинает проигрывать вам в канал так называемый фейковый вызывной сигнал — Fake Ring Back Tone, а сам делает в это время совсем другие вещи — пытается разбудить ваше приложение, которое якобы спит.

Почему так происходит?

Потому что практически все мессенджеры используют пуш-нотификации для вызовов.
В общих чертах происходит следующее — сервер мессенджера, используя API для пуш нотификаций, делает серверам Google или Apple такой запрос — уважаемый Google (или Apple), сделай вызов моего приложения, вот ID аобнента — разбуди мой мессенджер, я сейчас буду делать звонок. Google или Apple говорит — ок и начинает жать педали чтобы разбудить приложение и запустить его на смартфоне. Таким образом, запускает приложение сервис Google или Apple и только после того, как запустился ваш мессенджер, он будет в состоянии принять входящий вызов. Интересно, что на самом деле ни Apple ни Google не гарантируют 100% работоспособности своих пуш уведомлений.

Почему Google или Apple? Потому что только они имеют постоянный доступ к своей операционной системе, установленной на вашем смартфоне и могут делать там что угодно — сделать пуш для стороннего приложения ( или сделать фотографию владельца, подслушать его и т. д., причем владелец вообще ничего никогда не узнает).

Но для того чтобы приложение проснулось, надо определенное время — которое зависит от разных факторов. Поэтому в то время, которое требуется на пробуждение уснувшего мессенджера, вам и проигрывают фейковые RBT, ну а если он вообще выключен — будут делать несколько попыток и только потом сбросят ваш звонок по таймауту. Примерно тоже самое происходит, когда оба смартфона онлайн — после набора проходит примерно 10-20 секунд, вызывающий абонент слышит в это время все тот же Fake RBT, и только после того как пуш разбудил приложение, происходит звонок вызываемому абоненту и он может его услышать (через 10-20 секунд!).

Еще одним отрицательным моментом использования пуш-нотификаций в мессенджерах является следующее — вы не можете просто взять и выключить их на определенное время.
Допустим, вы решили сделать цифровой детокс и какое-то время не получать сообщения в мессенджерах. Нет, это у вас не получится — просто потому что сервисы Google и Apple все равно разбудят его и включат при поступлении входящего сообщения — вы можете только удалить мессенджер чтобы не получать сообщения.

Так почему же все популярные мессенджеры используют пуш-нотификации? Ответ кроется в самом ДНК этих мессенджеров.

Давайте вспомним, когда они появились:

— WhatsApp — январь 2009 года
— Viber — декабрь 2010 года
— Telegram — август 2013 года

А теперь вспомним, какие смартфоны были флагманами в это время и какого уровня были смартфоны среднего ценового диапазона и как долго работали аккумуляторы на таких гаджетах.
Да, совершенно верно — у всех были слабые аккумуляторы, процессоры с большим потреблением и разработчики приложений стремились использовать пуш-нотификации — ибо только с их помощью можно было бы увеличить работу смартфона от аккумулятора. То есть, единственная польза от пуш-нотификаций — это банальная экономия энергии батарейки смартфона — в стендбай режиме приложение не работает и может запускаться только по пинку (пушу) от серверов Google или Apple. Замечательное решение… для смартфонов 7-5 летней давности.

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


К сожалению, не доступен сервер mySQL