Развитие SMS как услуги
В этом году «коротким сообщениям» исполнится 25 лет. Считается, что первое SMS-сообщение было отправлено в Великобритании в 1992 году, а коммерческая услуга SMS появилась в Финляндии в 1993 году.
Надо отметить, что до появления стандарта GSM аналогов SMS не существовало, но к текущему моменту, т.е. спустя почти 25 лет, услуга завоевала огромную популярность, несмотря на то, что операторы взимают плату за исходящие, а иногда и входящие сообщения.
Конечно, путь к популярности для данного сервиса оказался довольно тернистым. Впервые идея сервиса, передающего короткие сообщения между телефонными аппаратами, появилась еще в 1984 году. Немецкий инженер Фридгельм Хиллебранд (Friedhelm Hillebrand), который в 1985 году возглавил «неголосовой» комитет GSM, уже тогда показал, что 160 символов на латинице (что соответствует 140 байтам) достаточно для передачи большинства бытовых сообщений. В основе его заявления лежали не очень-то научные эксперименты (собственноручный перебор случайных бытовых вопросов и ответов, а также наблюдение, что открытки и проанализированные сообщения по телексу для бизнес-пользователей почти всегда содержат менее 150 символов), но они определили характер услуги на десятки лет.
Действительно ли 160 символов достаточно? Конечно, в них не уместить «толстовские» предложения, но до появления экранных клавиатур (на устройствах с сенсорными экранами) или хотя бы T9 к отправке более длинного текста не стремились и сами пользователи. Более того, на старте, хотя SMS были заложены в стандарте GSM, не редкостью было отсутствие поддержки набора и отправки коротких сообщений в некоторых аппаратах.
С технической точки зрения SMS не претерпела почти никаких изменений (с переходом к GSM 03.40- https://en.wikipedia.org/wiki/GSM_03.40 — серьезно изменился, пожалуй, лишь набор поддерживаемых символов в теле сообщения). Коммерческая же услуга развивалась в сетях различных операторов примерно одинаково с поправкой на время запуска, маркетинг и подход к монетизации.
Сегодня помимо пользовательских в сети передается огромное количество служебных сообщений от операторов (например, уведомления о доставке), а также сервисные SMS от сторонних поставщиков услуг: банков, провайдеров, интернет-сервисов. Причем, они могут носить не только информационный характер (сообщать об остатке на счете, предупреждать об очередных платежах по договору, уведомлять о доставке посылок), но и служить одним из инструментов в двухфакторной аутенфикации. Кроме того, короткие сообщения могут использоваться для управления рядом сервисов, например, для отправки записей в Twitter.
Формат сообщений
SMS-сообщение состоит из текста длиной до 140 байт и блока служебной информации:
- тип сообщения — 2 бита (SMS-DELIVER — доставка сообщения на мобильный телефон, SMS-DELIVER-REPORT — подтверждение доставки, SMS-SUBMIT — отправка сообщения с мобильного аппарата, SMS-SUBMIT-REPORT — подтверждение отправки, SMS-COMMAND — изменение параметров или удаление сообщения, сохраненного в центре SMS, SMS-STATUS-REPORT — уведомление отправителя о судьбе его сообщения).
В зависимости от типа сообщения последующие поля могут присутствовать или отсутствовать, а также меняться местами. Подробное описание всех полей можно найти в спецификации GSM 03.40, здесь же мы приведем лишь основные, интересные с точки зрения разбора процесса пересылки сообщений:
- адрес назначения - 2-12 байт;
- дата и время отправки (отметка центра SMS) — 7 байт;
- идентификатор протокола - 1 байт;
- схема кодирования — 1 байт: кодировка, класс сообщения (влияет на способ обработки сообщения аппаратом: выводится на экран без сохранения, сохраняется в SIM или памяти аппарата), запрос на автоматическое удаление после прочтения, состояние флагов, соответствующих непрочитанному факсимильному или голосовому сообщению, информация о сжатии контента сообщения, язык (для широковещательного SMS);
- длина пользовательской области данных — 1 байт;
- текст сообщения — до 140 байт. Длина сообщения «в буквах» варьируется, в зависимости от используемой кодировки. Это 160 символов для 7-битной кодировки (латинские + основные символы — в соответствии со спецификацией GSM 03.38), 140 символов для 8-битной (латинские + диакритические символы) и 70 символов для UCS-2 (российские операторы работают именно с этой кодировкой, поэтом для кириллических символов длина сообщения — не более 70 символов).
Изначально (в документе GSM фаза 2) каждое SMS-сообщение было самодостаточным объектом, но согласно последующим редакциям (GSM фаза 2+) послание, передаваемое таким способом, может включать в себя несколько сообщений — в этом случае каждое из них содержит пометку о порядковом номере (из-за чего сокращается длина «тела» каждого сообщения).
Передача SMS
Между отдельными пользователями мобильной сети сообщение передается через SMS-центр (SMSC или SMS-SC — Short Message Service — Service Centre).
Вместе с текстом сообщения с мобильного телефона на базовую станцию передается дополнительная информация, в том числе, и адрес центра сообщений (в начале 2000-х этот номер приходилось вбивать самостоятельно при первоначальной настройке купленного аппарата). Если сообщение путешествует между сетями, его доставкой в первую очередь занимается SMS-центр сети отправителя.
SMSC не только доставляет и переадресует при необходимости сообщения, но и хранит их. Если телефон адресата в момент передачи сообщения выключен, оно остается в SMSC до появления устройства в сети. Обычно операторы задают максимальный срок хранения таких сообщений (технически эта настройка может быть доступна и пользователям мобильной сети). Также SMSC отправляет отчеты о доставке сообщений, если это прописано в пользовательских настройках.
В процессе передачи сообщения от одного пользователя другому задействован не только SMSC. Вкратце процесс выглядит следующим образом:
- Запрос на отправку сообщения поступает в центр мобильной коммутации (MSC — mobile switching center),
- MSC проверяет, возможна ли работа отправителя с сообщениями по базе данных абонентов GSM (HLR / VLR — Home / Visitors Location Register — общая база и база отдельного коммутатора) и переправляет сообщение вместе с адресами отправителя и получателя в SMSC;
- SMSC посылает подтверждение получения, присваивает сообщению временный статус «не доставлено»,
- И предпринимает попытку доставки текста адресату.
- Перед доставкой SMSC отправителя запрашивает из HLR уникальный идентификатор получателя (IMSI — International Mobile Subscriber Identity), необходимый для проведения любых операций с абонентом внутри сети, а также проверяет отсутствие запретов на работу с SMS. Одновременно запрашивается адрес MSC, обслуживающего абонента;
- После этого из MSC запрашивается местоположение (LAI — Location Area Identity) и временный идентификатор (TMSI — temporary mobile subscriber identity) абонента и инициируется соединение с аппаратом для передачи непосредственно сообщения;
- По завершении передачи мобильный телефон отправляет подтверждение доставки (соответственно, статус сообщения в SMSC изменяется на «доставлено»). А при неудачной доставке статус «не доставлено» сохраняется, при этом в HLR фиксируется причина — отсутствие памяти или абонента в сети. Повторная доставка инициируется действиями самого адресата (появление в сети или очистка памяти аппарата).
Попадая на телефон получателя, сообщения отображаются на экране или сохраняются на SIM-карте / в памяти аппарата, в зависимости от пользовательских настроек и свойств самого сообщения.
Шлюзы, шлюзы...
По историческим соображениям телефония, в том числе GSM, работает на основе протоколов ОКС-7 (Общий Канал Сигнализации — 7). В терминологии этого стандарта SMS передается по каналу сигнализации, а не по каналу трафика с голосовыми данными. Задумано это было для того, чтобы SMS могли беспрепятственно проходить параллельно с передачей голосового трафика (во время разговора). Кроме того, канал сигнализации большую часть времени «простаивает», так что передавать по нему короткие сообщения — вполне экономичное решение.
Однако SMSC не поддерживает ОКС-7, поэтому для общения SMS-центра с другими системами оператора (HLR/VLR и MSC) приходится использовать дополнительные шлюзы. Для доставки сообщений абонентам других операторов также используются специальные шлюзы. Первый межсетевой шлюз появился в мире лишь в 1999 году, у нас же полноценной передачи сообщений между операторами не было и в начале 2000-х (шлюзы появились чуть позже).
С появлением потребности подключить сеть связи (фиксированной или мобильной) к
IP-сетям — на рубеже нового столетия — была создана спецификация SIGTRAN, позволяющая передавать потоки ОКС-7 по IP-сетям. Так появились, в том числе, SMS-шлюзы, работающие в Интернет. Эти шлюзы могут не только «пускать» контент из интернет в SMS, но и допускать обратную передачу данных, например, отправку SMS-сообщений с телефона на адрес электронной почты (правда, пик развития подобных сервисов уже прошел — с появлением доступа к интернету на телефонах, встроенных почтовых клиентов и приложений под ОС смартфонов стало гораздо проще отправлять е-мейлы напрямую).
SMS-шлюзы могут принадлежать оператору или существовать самостоятельно, в том числе в качестве дополнения к коммерческому корпоративному ПО для SMS-рассылок. Плохая защищенность подобных шлюзов, а также вполне реальная возможность соорудить мошеннический шлюз и приводят к распространению спама, взломам и прочим неприятностям, связанным с SMS. Однако по мере собственных сил и, что уж таить, под давлением регулятора операторы мобильной связи стараются бороться с этими проблемами.
Интересные факты об SMS
Как и любая популярная технология, за время своего существования SMS обросли целым ворохом легенд и мифов. Вот несколько интересных историй, которым удалось найти подтверждения:
- В 2003 году Малайзия признала легитимным SMS-развод между супругами;
- В 2007 году количество SMS-сообщений, отправляемых среднестатистическим американцем, превысило число совершаемых им звонков;
- В 2008 году SMS помогли провести сложную хирургическую операцию пациенту из Конго: хирург-волонтер получал инструкции от коллег посредством текстовых сообщений;
- Сокращения текста в рамках SMS-общения становятся новым направлением развития языка: в 2011 году популярные в английском LOL и OMG были внесены в Оксфордский словарь;
- Немецкий инженер Ф.Хиллебранд, предложивший идею SMS, в итоге получил лишь мировую известность — никаких лицензионных платежей или патентования услуги разработчики не предусмотрели.
Вместо заключения хочется отметить, что хотя SMS технологически уже давно не развивается, пик популярности в мире услуга прошла совсем недавно — в 2012-2014 годах. Учитывая, что масштабный взлет технологии произошел в начале 2000-х, она продержалась на пьедестале удивительно долго (с точки зрения мира, столь падкого на новинки). Что ждет SMS-сообщения завтра — падение популярности или стабильное будущее? Время покажет.
Комментарии (21)
kinoz
11.04.2017 17:08Раз тема про смс, то у меня 2 вопрос:
1) когда уже вы доделаете ums в emotion? фраза " Друзья, мы продолжаем работать над функцией «Cообщения». Спасибо за ваше терпение." висит в changelog уже пол года.
2) почему в ums не видно смс например от qiwi?
Расскажите в следующей статье про ums, интересно как эта услуга устроена
Мегафон молодец, спасибо ему за услуги мультифон и ums, я до сих пор жду подобных услуг от других О.П.С.О.СОВbfDeveloper
11.04.2017 17:43О.П.С.О.СОВ
Не совсем по теме, но как вы это расшифровываете? Я знаю ОПераторов СОтовой Связи. А какой смысл вы вкладываете в эти буквы с такой расстановкой точек? Не троллинг и не придирки, действительно интересны альтернативные варианты.kinoz
11.04.2017 20:08-2Это мой косяк, вы правильно расшифровали, я просто забыл отделить склонение от аббревиатуры.
Должно О.П.С.О.Сов
strib
11.04.2017 17:511) По Вашему странный тест повлиял на размер payload в MAP и является определяющей причной размера SM?
2) Вас не затруднит раскрыть это утверждение «Однако SMSC не поддерживает ОКС-7, поэтому для общения SMS-центра с другими системами оператора (HLR/VLR и MSC) приходится использовать дополнительные шлюзы». Желательно с сылкой на стандарт которы отменяет
3) Тема шлюзов без упоминания SMPP не раскрыта…
Статья скорее запутывает незнакомых с темой читателей.
rPman
12.04.2017 13:19Лучше объясните почему операторы в России дружно закрыли сервисы виртуального sms номера, т.е. заключаешь договор аналогичный обычной покупке симкарты, но обслуживание номера исключительно через интернет (например электронная почта), без необходимости в самом телефоне.
bluetooth
12.04.2017 13:35тип сообщения — 2 бита (SMS-DELIVER — доставка сообщения на мобильный телефон, SMS-DELIVER-REPORT — подтверждение доставки, SMS-SUBMIT — отправка сообщения с мобильного аппарата, SMS-SUBMIT-REPORT — подтверждение отправки, SMS-COMMAND — изменение параметров или удаление сообщения, сохраненного в центре SMS, SMS-STATUS-REPORT — уведомление отправителя о судьбе его сообщения).
Я насчитал 6 статусов. 2 бита = 2^2 = 4. Как передаются 6 статусов, если 2 бита позволяют передать только 4?Monstrofil
12.04.2017 15:16+1Судя по Wiki, играет роль направление в котором отправляется СМС.
GSM 03.40 defines 6 types of messages, which are distinguished by the message direction and the 2 least significant bits in the first octet of SM-TP message (the TP-MTI field)
https://en.wikipedia.org/wiki/GSM_03.40#TPDU_Types
BigD
12.04.2017 13:58У меня ложные воспоминания, или было время, когда SMS в России ходили только внутри сети оператора, и нельзя было другому оператору отправить?
saege5b
13.04.2017 09:36Было время, когда рандомно нельзя было дозвониться до абонента другого оператора.
Причём у разных операторов, отмазки были разные.
K0styan
13.04.2017 10:09Было, было. Где-то в конце 2000 — начале 2001 исправили. В Москве по крайней мере.
У меня еще смутное воспоминание есть, что у Билайна можно было прописать в настройках альтернативный СМС-центр, через который сообщения на МТС ходили, а наоборот нельзя было.
dmitry_ch
12.04.2017 15:13Так скажите, откуда все же складывается цена 1 СМС для клиента, если вы тратите на её передачу менее 200 байт трафика?
cepera_ang
12.04.2017 15:30Фантастически актуальная статья с подробностями чрезвычайно сложного устройства херни, которая пережила своё на десять лет, как минимум.
eyeofhell
13.04.2017 10:19+2Самые Главный Вопрос: почему они не доходят? Типичная ситуация: сижу в кафе, прохожу двухфакторную аутентификацию в банке/почте/whatever. «Мы вам отправили sms, введите код». Нету sms. Нажимаю «еще раз», еще минут пять — нету sms. Через полчаса могут прийти 2-3 штуки со всех попыток переслать, может прийти только последняя, может не прийти вообще. Телефоны разные. Телефон при этом принимает и совершает звонки, связь устойчивая как по «палкам», так и по факту.
lash05
Трудно понять, почему смс стоит дороже минуты разговора, хотя данных передаётся на порядки меньше.
Squoworode
Это наверняка компенсация недополученной прибыли от того, что собеседник думает над ответом в оффлайне, а не в онлайне.
lash05
Налог на раздумья). Или лёгкий намёк на покупку смартфона — на старый телефон ведь мессенджер не поставишь…
Pakos
Пока не было пакета СМС зачастую звонил, если требовалось пара вопросов-ответов — дешевле выходило, сейчас есть пакет СМС и пакет мегабайт в тарифе и… смс нужны крайне редко, обычно к концу месяца (96-100)/100.