воскресенье, 22 мая 2011 г.

Отправляем SMS при помощи kannel на базе CentOS 5.5 - введение.

Любая система мониторинга делается для того, чтобы предупредить своих пользователей о том, что что-то издохло или как минимум готовится издохнуть. В XXI веке для таких предупреждений есть много вариантов - это и электронная почта, и пара строк в любимой системе обмена мгновенными сообщениями, и голосовое оповещение на мобильный телефон, и .... перечислять можно долго. SMS - один из таких методов оповещения. Чем он хорош для меня - тем, что свою почту и асю я читаю не круглые сутки, а телефон всегда со мной. И если на работе что-то дохнет, то я хочу узнавать об этом первым.
Как реализовать оповещение о событиях системы мониторинга посредством рассылки SMS-сообщений? Опять-таки для этого есть много путей.
Первый, и самый ненапряжный - для организаций, в которых на нужды IT-служб дают столько, сколько те попросят, и при этом с этих служб спрашивают не особо: ну, работает, и хорошо... не работает - ай-яй-яй, так нехорошо, ну да и Бог с ним. Речь идёт о бесконечном числе коммерческих гейтов по доставке SMS-сообщений. При всей привлекательности этого пути основными его недостатками я вижу следующие:
  1. Необходимость постоянного вливания денежных средств.
  2. Зависимость работоспособности решения от состояния вашего канала в интернет.
  3. Тоже самое, только от канала самого гейта.
  4. Тяжёлая процедура разборок в случае недоставки вашего сообщения абоненту.
Второй - приобретение коммерческого продукта, позволяющего вам самим организовать свою службу доставки SMS-сообщений. Обычно вместе с этой возможностью вы приобретаете ещё десяток других, которыми пользоваться не собираетесь. И приобретаете ну совсем не за маленькие деньги. Правда, после этого у вас всё работает...
Третий вариант - организация собственной службы рассылки на базе ПО с открытым кодом. Вот именно об этом и пойдёт речь.

Как  можно себе представить - такого ПО море.  Что выбрать? На чём остановится?  Я не знал. Но тем не менее, ползание по просторам Интернета показало мне, что люди либо мало используют подобные продукты, либо считают их настройку и использование настолько простым делом, что говорить об этом просто неприлично, либо наоборот - думают, что если после месяца траха у них наконец-то всё заработало, то пусть и все остальные тоже потрахаюцца. И искал бы я себе свой SMS-шлюз до настоящего времени, если бы не Евровидение-2011...

При чём тут Евровидение? Всё очень просто. Просто в прошлом году на конкурсе победила Германия... А Германия давно известна своим отношением к программным продуктам известного производителя, и как следствие - развитием на своей территории ПО с открытым кодом. И было бы удивительно, если бы при этом для технического обеспечения финала Евровидения в своей стране немцы воспользовались бы чем-то коммерческим. Особо учитывая, что программный продукт, который в результате был выбран для этой цели, разрабатывался в Германии. Итак, речь идёт о kannel.

Что такое kannel? Кратко и понятно об этом сказано, например, тут, и я позволю себе небольшую цитату:

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

Примеры применения Kannel

  • VAS-платформа для Premium Rate SMS сервисов
  • Приложения мобильного маркетинга
  • SMS-шлюз для подключения VAS-провайдеров
  • Платформа отправки OTA-настроек (часть Device Management System)
  • Корпоративная система SMS-уведомлений

Техническая спецификация

Функциональность

  • подключение к SMSC по IP-сети;
  • прием и передача сообщений SMS в сетях GSM, CDMA, UMTS;
  • проверка состояния подключений (enquire_link);
  • обработка уведомлений о доставке;
  • распределение нагрузки по SMSC;
  • поддержка резервных маршрутов;
  • ограничение нагрузки на подключение;
  • подключение внешних SMS-сервисов;
  • передача опциональных TLV-параметров SMPP;
  • протоколирование принятых и отправленных сообщений (CDR);
  • поддержка «черных» и «белых» списков;
  • маршрутизация по сервисным номерам;
  • маршрутизация по маске сообщения;
  • поддержка хранения сообщений в СУБД (с помощью sqlbox);
  • работа в режиме SMPP-сервера (с помощью smppbox);
  • поддержка отказоустойчивых инсталляций;
  • отложенная доставка сообщений;
  • явная установка времени жизни сообщения;
  • передача параметра Service Code для тарификации сообщений;
  • установка параметра RPI в передаваемых SMS;
  • явная установка приоритета отправляемого сообщения;
  •  HTTP API для управления шлюзом.

Поддерживаемые форматы SMS

  •  текст 7-бит (стандартный алфавит GSM 03.38);
  • текст Unicode в кодировке UCS-2BE (UTF-16BE);
  • склеенные сообщения согласно GSM 03.40;
  • бинарные 8-битные данные;
  • прием и передача заголовков UDH;
  • передача «Flash SMS» (message_class = 0);
  • WAP Push Service Indication;
  • передача OTA-настроек мобильных терминалов;
  • Message Waiting Indication (MWI) для голосовой почты, e-mail, факса;

Поддерживаемые протоколы SMSC

  • SMPP v3.3 и v3.4
  • CIMD 2.0
  • UCP/EMI
  • SM/ASI
  • HTTP

Подключение GSM-модемов

  • RS-232
  • USB
  • TCP
  • Telnet

Поддержка USSD

Кроме основной для Kannel функциональности в качестве SMS-шлюза, также есть возможность использовать его в качестве сервера приложений USSD.

Преимущества Kannel

  • Решения на основе Kannel обладают высокой производительностью, позволяющей обрабатывать тысячи SMS в секунду даже на серверном оборудовании начального уровня.
  • Поддержка отказоустойчивых инсталляций позволяет использовать Kannel в критичных для бизнеса приложениях, включая платформы операторского класса.
  • Свободная лицензия BSD не налагает на пользователя жестких ограничений по использованию платформы, что позволяет существенно снизить операционные расходы и избежать зависимости от политики компании-поставщика.
  • За счет поддержки всех распространенных протоколов передачи SMS решения на основе Kannel совместимы с большинством платформ SMSC и SDP.
  • Удобный в использовании HTTP интерфейс для интеграции с внешними приложениями позволяет эффективно внедрять новые услуги в сетях мобильных операторов.

Ссылки

  • www.kannel.org - официальный сайт проекта Kannel
  • www.smsforum.net - официальные спецификации на протокол SMPP

Комментариев нет:

Отправить комментарий