Все про SMS и EMS

Здесь вы узнаете зачем нужны короткие текстовые сообщения (SMS) и расширенные сообщения (EMS) на сотовых телефонах, как их отправить и что для этого потребуется. Также я покажу несколько стандартных решений, которые используют доступ к провайдеру сотовой связи по протоколам SNPP, SMPP и UCP.

Для начала разберемся, что же такое эти SMS? Итак, SMS - это короткие (запомните это слово) текстовые сообщения. Проще говоря, любой желающий может отправить на ваш сотовый телефон стандарта GSM небольшой текст, который вы сможете прочитать на экране телефона. Строго говоря, не только в GSM стандарте есть SMS, но неискушенный пользователь, в случае, если этот сервис предоставляется компанией оператором связи, не заметит разницы и мы ограничимся рассмотрением только одного стандарта.

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

   

У пейджера и SMS много общего. Прежде всего, это текстовые сообщения, для выбора абонента используется номер (для SMS - номер телефона). Даже проблемы во многом схожи. Ранним моделям и пейджеров и телефонов был совершенно не свойственен русский язык общения - символы кириллицы в них отсутствуют. В более поздних разработках кириллица появилась и сейчас можно отправлять сообщения по русски.

Основное ограничение SMS - длина сообщения. Для сообщений состоящих только из латинских символов - 160 знаков. А вот для кириллицы и других национальных символов совсем беда - всего 70 знаков. Дело в том, что 160 латинских символов умещаются в 140 байт путем обрезания 8-го бита и сжимания по специальному алгоритму. А для национальных символов используется кодировка сходная с "Unicode", где один символ кодируется двумя байтами. И соответственно, в 140 байт полезного размера SMS может войти только 70 символов.

Что же можно отправлять по SMS? Да все что угодно! Начиная от признания в любви и кончая диагностикой ошибок сервера. Применения SMS поистине безграничны и разнообразны. Многие используют этот сервис для получения котировок акций на бирже, курсов валют, другой деловой информации. И конечно же для общения. SMS практически мгновенно доставляется адресату в любой город, где бы он не находился (при условии, что его телефон в роаминге). Также надежность получения сообщения многократно возрастает, поскольку в случае невозможности доставить сообщение (телефон выключен или находится вне зоны обслуживания) будут предприняты попытки доставки сообщения до тех пор, пока у сообщения не истечет "срок годности" или оно не будет доставлено. Этот параметр устанавливается каждой компанией и может быть изменен отправителем сообщения.

А что же такое EMS? Чтобы ответить на этот вопрос нужно вспомнить историю развития сотовых телефонов.

Когда-то совсем давно телефоны были исключительно текстовые и не умели показывать картинки. В те времена SMS полностью перекрывали потребности владельцев трубок. Однако, время шло, телефоны менялись, появилась первая графика, а всместе с ней и идея эту графику передавать от одного абонента другому. Так родился на свет формат EMS, который позволяет передавать графические, аудио и MIDI данные произвольной длины.

EMS унаследовал от SMS технологичекое ограничение - 140 байт на одно сообщение. Соответственно, если мелодия или картинка больше 136 байт, то она придет в нескольких частях. Как правило, телефоны умеют склеивать полученные части в одно целое.

Теперь мы готовы отправить SMS сообщение. Как же это сделать? Возьмите сотовый телефон, прочитайте инструкцию по эксплуатации аппарата. Найдите телефон SMS-центра провайдера сотовой связи. Занесите его в соответствующую ячейку вашего аппарата. Теперь все готово к отправке. Выберите абонента, наберите сообщение, нажмите отправить. И все.

Не очень удобно, правда? Да еще и дороговато. Каждое SMS сообщение в этом случае стоит денег. Есть способ лучше! Войдите в Internet, с помощью поискового сервера найдите портал, который позволяет передавать сообщения для вашего оператора сотовой связи. Наберите номер телефона адресата и сообщение. Один из порталов, поддерживающий большое количество GSM сетей - sms.halfost.ru.

Уже удобнее и дешевле. Часто вообще бесплатно. Иногда рекламу присылают. Но процесс совершенно не автоматизируется и заставить сервер рассылать диагностику ошибок таким образом не удастся.

Для автоматизированной отправки SMS и EMS сообщений служат "гейты" (gate). Они именуются по используемому протоколу. Например, UCP gate компании МТС. Известно много различных протоколов приема SMS и EMS сообщений. Самые распространенные SNPP(только для отправки SMS), SMPP и UCP/EMI. Изначально гейты предназначались не для сторонних пользователей, а для обмена SMS сообщениями между различными сотовыми операторами. Тем не менее, сейчас все больше и больше компаний и отдельных пользователей получают доступ к этому ресурсу.

Один из наиболее простых протоколов SNPP. Я покажу механизм взаимодействия клиента с сервером SMS-центра на примере этого протокола.

Для начала нам будет необходимо будет найти IP адрес SNPP gate. За SNPP gate закреплен порт 444. И большинство SNPP серверов работают именно на этом порту. Воспользуемся IP адресом компании, которая позволяет отправлять сообщения на большинство операторов России.

Для понимания следующей части вам необходимо знать что такое Telnet, IP-адрес и порт, а также не бояться работать в коммандной строке.

Продолжение.

Igor Vaskov (Игорь Васьков).

Домой