SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
NetSDS SMPP Server 1.2
    Техническое задание

      www.netstyle.com.ua
       +380 44 594-9641
       +380 44 221-1286
Содержание
Общее описание..................................................................................................................................3
Функциональная спецификация........................................................................................................3
Обработка событий протокола SMPP...............................................................................................4
  Поддерживаемые команды SMPP 3.4...........................................................................................4
  Пример SMPP-сессии....................................................................................................................5
  Заголовок PDU SMPP....................................................................................................................5
  Установка соединения — bind_transceiver...................................................................................6
  Подтверждение установки соединения — bind_transceiver_resp..............................................6
  Запрос завершения соединения — unbind...................................................................................6
  Подтверждение завершения соединения — unbind_resp...........................................................6
  Отправка MT сообщения — submit_sm.......................................................................................6
  Подтверждение отправки MT сообщения — submit_sm_resp...................................................7
  Доставка MO сообщения или DLR — deliver_sm......................................................................7
  Подтверждение доставки MO сообщения — deliver_sm_resp..................................................8
  Проверка соединения — enquire_link..........................................................................................8
  Подтверждение проверки соединения — enquire_link_resp......................................................8
  Ответ на некорректную команду SMPP — generic_nack............................................................8
  Статусы выполнения команд SMPP.............................................................................................8
  Уведомления о доставке................................................................................................................8
Аутентификация клиентов SMPP......................................................................................................9
Обработка очередей сообщений......................................................................................................10
Внутренний формат сообщений......................................................................................................10
  Параметры сериализованных сообщений JSON.......................................................................10
Администрирование NetSDS SMPP Server....................................................................................11
  Запуск............................................................................................................................................11
  Остановка......................................................................................................................................11
  Изменение конфигурации...........................................................................................................11
  Мониторинг..................................................................................................................................11
Требования к системному ПО.........................................................................................................11




                                                       © 2007-2009 ЧП «Нет Стайл».                                            Страница 2 из 11
Общее описание
Платформа NetSDS SMPP Server поддерживает подключение клиентского программного обеспечения
по протоколу SMPP (Short Message Peer-to-Peer) версии 3.4 в режиме трансивера. В частности,
описываемый SMPP интерфейс позволяет устанавливать соединение, получать и отправлять SMS,
получать уведомления о доставке сообщений, удалять сообщения из очереди, проверять
работоспособность соединения.
В документе используются следующие соглашения о наименованиях:
• ESME — клиентское приложение
• CPA — клиентский интерфейс платформы NetSDS
• DLR — уведомление о доставке
• SM — короткое сообщение (Short Message)
• MO — событие, инициируемое абонентским терминалом (Mobile Originated)
• MT — событие, инициируемое сервером (Mobile Terminating)
Детальную информацию про упоминаемые команды протокола и их параметры можно
получить в официальной спецификации SMPP v 3.4.


Функциональная спецификация
Функциональность                                                 Статус       Комментарии
Поддержка функций протокола SMPP 3.4
Поддержка протокола SMPP                                                 Версия 3.4

Режим transceiver                                                  
Режим transmitter/receiver                                         X
Поддержка передачи MT сообщений                                    
Поддержка передачи MO сообщений                                    
Поддержка передачи уведомлений о доставке (DLR)                    
Поддержка мониторинга канала (enquire_link)                        
Аутентификация
SQL СУБД (MySQL, PostgreSQL, SQLite, Oracle)                             При наличии драйвера
                                                                          для Perl DBI
LDAP                                                               X      В следующих версиях

RADIUS                                                             X      В следующих версиях

Поддержка форматов передаваемых сообщений
Текстовые сообщения в кодировке GSM 03.38                          
Текстовые сообщения в кодировке UCS2                               
Бинарные 8-битные сообщения                                        
Длинные «склеенные» сообщения                                            С использованием UDH,



                                   © 2007-2009 ЧП «Нет Стайл».                    Страница 3 из 11
согласно GSM 03.40
Поддержка передачи UDH                                                  
Поддержка установки message class                                       
Передача MWI (mail waiting indication)                                  X
Статистика и интеграция с биллинговыми системами
Поддержка уведомлений о доставке SMS (DLR)                              
Запись CDR для обработки биллинговыми системами                                Запись в файл

Передача Service Code для обработки SMSC                                X

Обработка событий протокола SMPP
В этом разделе описывается подмножество команд протокола SMPP, поддерживаемых платформой
NetSDS SMPP Server. Использование этих команд позволяет клиентскому ПО принимать и
отправлять сообщения SMS, а также принимать уведомления о статусе доставки SMS.


Поддерживаемые команды SMPP 3.4
В этом разделе спецификации перечислен список команд протокола SMPP 3.4, поддерживаемых
платформой NetSDS SMPP Server.

         Тип SMPP PDU             PDU command_id               Запрос от ESME          Запрос от CPA

bind_transceiver               0x00000009                 Да                      Нет
bind_transceiver_resp          0x80000009                 Нет                     Да
unbind                         0x00000006                 Да                      Да
unbind_resp                    0x80000006                 Да                      Да
submit_sm                      0x00000004                 Да                      Нет
submit_sm_resp                 0x80000004                 Нет                     Да
deliver_sm                     0x00000005                 Нет                     Да
deliver_sm_resp                 0x80000005                Да                      Нет
enquire_link                   0x00000015                 Да                      Да
enquire_link_resp              0x80000015                 Да                      Да
generic_nack                   0x80000000                 Да                      Да


Данный список включает все необходимые команды протокола SMPP для обмена сообщениями
между ESME и CPA API, но может быть расширен в случае необходимости реализации специфичных
для конкретной инсталляции функций (например, для поддержки USSD или Subscriber Registration
Alarm).




                                         © 2007-2009 ЧП «Нет Стайл».                     Страница 4 из 11
Пример SMPP-сессии
В этом разделе приводится пример типичной SMPP-сессии между клиентским программным
обеспечением (ESME) и NetSDS SMPP Server.




После установки TCP-соединения ESME отправляет PDU с командой bind_transceiver, в ответ на
которую CPA API отправляет PDU с командой bind_transceiver_resp, после чего сессию SMPP можно
считать установленной.
В процессе взаимодействия по протоколу SMPP ESME может отправлять команды submit_sm,
enquire_link, в ответ на которые CPA API обязан возвращать PDU с командами submit_sm_resp, и
enquire_link_resp, соответственно.
Для получения сообщений (MO SM) и уведомлений о доставке ранее отправленных SMS, ESME
должен принимать от CPA API PDU с командой deliver_sm и корректно в ответ отправлять PDU с
командой deliver_sm_resp.
Для завершения сессии сторона, инициирующая завершение, должна отправить PDU с командой
unbind, после чего дождаться PDU с unbind_resp и разорвать TCP-сессию.


Заголовок PDU SMPP
Любая команда SMPP содержит заголовок со следующими полями:

      Имя параметра                                      Описание


                                   © 2007-2009 ЧП «Нет Стайл».                  Страница 5 из 11
command_length             Размер всего PDU в байтах
command_id                 Идентификатор команды SMPP
command_status             Статус выполения команды в ответных PDU
sequence_number            Идентификатор последовательности в рамках SMPP сессии для
                           вычисления взаимосоответствия PDU.

Установка соединения — bind_transceiver
Эта команда отправляется ESME сразу же после инициации TCP сессии для инициализации
соединения по протоколу SMPP. В NetSDS SMPP Server все параметры PDU кроме system_id и
password являются необязательными и в большинстве случаев их содержимое игнорируется.

      Имя параметра                                     Описание
system_id                  Имя системы ESME
password                   Пароль доступа
interface_version          Версия интерфейса (поддерживается 0x34)
addr_ton                   Тип номера ESME (см. п. 5.2.5 спецификации SMPP)
addr_npi                   План нумерации ESME (должен быть 00000001)
address_range              Диапазон номеров, обслуживаемых ESME (игнорируется)



Подтверждение установки соединения — bind_transceiver_resp
Эта команда отправляется в ответ на bind_transceiver и служит для подтверждения успешного
соединения либо сообщения ошибки соединения. В случае успешного соединения также передается
имя платформы.

Имя параметра              Описание
system_id                  Имя системы CPA (должно быть «NETSDS»)

Запрос завершения соединения — unbind
Команда unbind отправляется стороной, инициирующей разрыв SMPP сессии. Также допускается
закрытие сессии просто по факту разрыва TCP соединения, однако такое поведение является
нежелательным, нарушая стандартный процесс взаимодействия в рамках SMPP 3.4.
Команда содержит только заголовок SMPP PDU.


Подтверждение завершения соединения — unbind_resp
Команда содержит только заголовок SMPP PDU.


Отправка MT сообщения — submit_sm


      Имя параметра                                     Описание
service_type               Тип сервиса (используется для тарификации)
source_addr_ton            Тип номера ESME (см. п. 5.2.5 спецификации SMPP)
source_addr_npi            План нумерации ESME (должен быть 00000001)
source_addr                Сервисный адрес (короткий номер, А-номер)
dest_addr_ton              Тип номера абонента (обычно, 00000001)


                                  © 2007-2009 ЧП «Нет Стайл».                 Страница 6 из 11
dest_addr_npi              План нумерации абонента (должен быть 00000001)
destination_addr           Адрес абонента (MSISDN)
esm_class                  См. п. 5.2.12 спецификации SMPP
protocol_id                См. п. 5.2.12 спецификации SMPP (обычно 0x00000000)
priority_flag              От 0 (низший) до 3 (высший) приоритет
schedule_delivery_time     Время доставки
validity_period            Время жизни сообщения
registered_delivery        См. п 5.2.17 спецификации SMPP (обычно 0x00000001)
replace_if_present_flag    Не поддерживается
data_coding                См. п 5.2.19 спецификации SMPP
sm_default_msg_id          Не поддерживается
sm_length                  Длина сообщения
short_message              Содержимое сообщения (User Data)

Подтверждение отправки MT сообщения — submit_sm_resp
В ответ на submit_sm CPA API передает PDU с командой submit_sm_resp, содержащей
идентификатор сообщения, назначенный платформой NetSDS SMPP Server.


Доставка MO сообщения или DLR — deliver_sm
Данная команда служит для передачи от CPA API к ESME сообщений.

      Имя параметра                                     Описание
service_type               Тип сервиса (используется для тарификации)
source_addr_ton            Тип номера абонента (обычно, 00000001)
source_addr_npi            План нумерации абонента (должен быть 00000001)
source_addr                Адрес абонента (MSISDN)
dest_addr_ton              Тип номера ESME (см. п. 5.2.5 спецификации SMPP)
dest_addr_npi              План нумерации ESME (должен быть 00000001)
destination_addr           Сервисный адрес (короткий номер)
esm_class                  См. п. 5.2.12 спецификации SMPP
protocol_id                См. п. 5.2.12 спецификации SMPP (обычно 0x00000000)
priority_flag              От 0 (низший) до 3 (высший) приоритет
schedule_delivery_time     Время доставки
validity_period            Время жизни сообщения
registered_delivery        См. п 5.2.17 спецификации SMPP (обычно 0x00000001)
replace_if_present_flag    Не поддерживается
data_coding                См. п 5.2.19 спецификации SMPP
sm_default_msg_id          Не поддерживается
sm_length                  Длина сообщения
short_message              Содержимое сообщения (User Data)




                                  © 2007-2009 ЧП «Нет Стайл».                    Страница 7 из 11
Подтверждение доставки MO сообщения — deliver_sm_resp
Данная команда является ответом, подтверждающим успешный прием MO SM либо DLR на стороне
ESME.

      Имя параметра                                      Описание
message_id                  Выставляется в NULL

Проверка соединения — enquire_link
Команда содержит только заголовок SMPP PDU.


Подтверждение проверки соединения — enquire_link_resp
Команда содержит только заголовок SMPP PDU.


Ответ на некорректную команду SMPP — generic_nack
Данная команда отправляется в ответ на PDU с некорректной длиной либо неизвестным платформе
идентификатором команды.
Команда содержит только заголовок SMPP PDU.


Статусы выполнения команд SMPP
Числовые значения статусов указаны в п. 5.1.3 спецификации SMPP 3.4.

        Код статуса                                      Описание
ESME_ROK                    Успешное выполнение
ESME_RINVCMDID              Некорректный идентификатор команды
ESME_RALYBND                ESME уже подключен
ESME_RSYSERR                Ошибка платформы
ESME_RINVSRCADR             Некорректный исходящий адрес
ESME_RINVDSTADR             Некорректный входящий адрес
ESME_RINVMSGID              Некорректный идентификатор сообщения
ESME_RINVPASWD              Некорректный пароль
ESME_RINVSERTYP             Некорректный тип сервиса

Уведомления о доставке
Для уведомлений о статусе доставки используется следующий формат:
id:ID sub:NN dlvrd:NN submit date:DATE done date:DATE stat:STATE
Значимые поля:
• id — идентификатор сообщения (UUID)
• done date — дата и время доставки (YYYYMMDDhhmm)
• state — статус доставки (DELIVRD, EXPIRED, DELETED, UNDELIV, ACCEPTED, UNKNOWN,
  REJECTED)




                                   © 2007-2009 ЧП «Нет Стайл».                Страница 8 из 11
Аутентификация клиентов SMPP
Для аутентификации клиентов NetSDS SMPP Server использует подключение к любой реляционной
СУБД, поддерживающей язык запросов SQL. Шаблон SQL запроса задается в файле конфигурации, в
секции auth и включает два параметра, в которые помещаются имя пользователя (system-id) и
пароль (password).
Для успешной аутентификации требуется, чтобы при вызове SQL запроса с указанными параметрами
СУБД вернула одну или более строк.
Пример:
SQL:
-- Creating SQL table for SMPP users
CREATE TABLE users (
      id integer,
      login varchar(16),
      passwd varchar(16),
      active integer
)
Конфигурация:
# SQL authentication backend
<auth>
      dsn = db:Pg:dbname=authdb
      db-user = smpp
      db-password = secret
      query = select user from users where login=? and passwd=? and active=1
</auth>


Таким образом, NetSDS SMPP Server позволяет производить аутентификацию клиентов, используя
фактически любую СУБД с языком запросов SQL, для которой существует реализация драйвера DBI.




                                  © 2007-2009 ЧП «Нет Стайл».                 Страница 9 из 11
Обработка очередей сообщений
Для взаимодействия с приложениями бизнес-логики NetSDS SMPP Server использует подсистему
управления очередями MemcacheQ1, работающую по протоколу memcache2. Данный протокол
базируется на TCP, но также может применяться взаимодействие через протокол передачи датаграмм
UDP или unix socket.
     1. Все сообщения, которые успешно приняты платформой от ESME, преобразуются в
        стандартное внутреннее представление и помещаются в очередь q_mt
     2. Сообщения для передачи к ESME выбираются из очереди q_mo_SYSID, где SYSID
        соответствует system-id, выданному клиенту при регистрации.
Таким образом, для всех MT сообщений используется одна очередь, из которой эти сообщения могут
быть получены приложением, отвечающим за их дальнейшую обработку.
Все MO SM и DLR помещаются в отдельные очереди для каждого ESME, что позволяет
снизить нагрузку на платформу за счет обработки только событий для активных
клиентов.


Внутренний формат сообщений
В качестве внутреннего формата для обмена сообщениями применяется JSON, сконвертированный в
строку Base64 для передачи по протоколу Memcache. Каждое сообщение представляется структурой
(ассоциативным массивом) приблизительно следующего вида:
     {
     "type": "mo",
     "from": "380672206770"
     "to": "12345",
     "text": "message text here",
     "coding": "gsm0338"
     }
При этом, параметр type задает тип сообщения и может принимать следующие значения:
• mo — MO SM (сообщение от абонента к сервису)
• mt — MT SM (сообщение от сервера к абоненту)
• dlr — DLR (уведомление о доставке)
В зависимости от типа сообщения, содержимое сериализованного массива может включать
различные наборы параметров.


Параметры сериализованных сообщений JSON
Данный раздел описывает поддерживаемые параметры JSON-представления сообщений.

Поле                                    Содержимое                                   Формат
client                   Идентификатор клиента (SMPP system-id) Строка ASCII
id                       Идентификатор сообщения                        UUID
created                  Дата создания сообщения                        ГГГГ-ММ-ДД ЧЧ:ММ:СС


1 http://memcachedb.org/memcacheq/ - официальный сайт MemcacheQ
2 http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt — описание протокола memcache

                                        © 2007-2009 ЧП «Нет Стайл».                        Страница 10 из 11
from                    Адрес источника сообщения                  MSISDN или Alphanumeric
to                      Адрес получателя сообщения                 MSISDN или Alphanumeric
udh                     User Data Headers (заголовок SM)           Шестнадцатиричная строка
ud                      User Data (содержимое SM)                  Шестнадцатиричная строка
coding                  Кодировка сообщения                        Строка с одним из вариантов:
                                                                   gsm0338, 8bit, ucs2
mclass                  Класс сообщения, если есть                 Число от 0 до 3.
                                                                   См. спецификацию GSM 03.38
priority                Приоритет доставки для передачи SMSC       Число от 0 до 3.
validity                Время жизни сообщения, если требуется      ГГГГ-ММ-ДД ЧЧ:ММ:СС
                        явное ограничение. В UTC.
deferred                Время отложенной доставки сообщения,       ГГГГ-ММ-ДД ЧЧ:ММ:СС
                        если требуется. В UTC.
text                    Текстовое представление содержимого        Строка в кодировке UTF-8
                        SMS, если допустимо.
dlr_state               Статус доставки сообщения                  Число согласно спецификации
                                                                   SMPP 3.4 п 5.2.28
dlr                     Текстовое представление DLR                Строка ASCII
network_error           Код ошибки GSM-сети                        Число
register_delivery       Требуется ли уведомление о доставке        0, если не требуется
                                                                   1, если требуется


Требования к производительности
      1. На незагруженной системе с CPU Intel Xeon 3300, 1GB RAM, SATA II HDD NetSDS SMPP
         Server должен обрабатывать не менее 1000 сообщений в секунду.
      2. NetSDS SMPP Server на вышеописанной конфигурации должен корректно обрабатывать не
         менее 100 одновременных клиентских подключений по протоколу SMPP 3.4.
      3. Система должна корректно работать при количестве необработанных сообщений в очереди до
         5,000,000.


Требования к системному ПО
• Операционная система: Linux, FreeBSD
• Интерпретатор Perl: 5.8.X
• Сервер управления очередями MemcacheQ
• BerkeleyDB 4.7
• Возможность инсталлировать пакеты из CPAN


Рекомендуется использование системы мониторинга приложений Monit для обеспечения
бесперебойной работы всех приложений и отслеживания критичной нагрузки на ресурсы системы.




                                     © 2007-2009 ЧП «Нет Стайл».                      Страница 11 из 11

Weitere ähnliche Inhalte

Andere mochten auch

Cartoons Of The 21st Century
Cartoons Of The 21st CenturyCartoons Of The 21st Century
Cartoons Of The 21st Centuryjpaston7
 
Superfans
Superfans Superfans
Superfans Lithium
 
Think Positive
Think PositiveThink Positive
Think Positivemiguelkent
 
Complementary Feeding Practices To Children During
Complementary Feeding Practices To Children DuringComplementary Feeding Practices To Children During
Complementary Feeding Practices To Children DuringBiblioteca Virtual
 
Forever Flowing Ch1.1
Forever Flowing Ch1.1Forever Flowing Ch1.1
Forever Flowing Ch1.1Geminiasp
 
Taxi Call Center Whitepaper (rus)
Taxi Call Center Whitepaper (rus)Taxi Call Center Whitepaper (rus)
Taxi Call Center Whitepaper (rus)Michael Bochkaryov
 
Forever flowing 3.1
Forever flowing 3.1Forever flowing 3.1
Forever flowing 3.1Geminiasp
 
Global Warming Presentaion
 Global Warming Presentaion Global Warming Presentaion
Global Warming PresentaionAwadh123
 
Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...
Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...
Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...Biblioteca Virtual
 
Financial Evaluation
Financial EvaluationFinancial Evaluation
Financial Evaluationsawank
 
War Crimes In Congo
War Crimes In CongoWar Crimes In Congo
War Crimes In Congoleresh
 
Breastfeeding Status On Us Birth Certificates Where Do We Go From Here
Breastfeeding Status On Us Birth Certificates Where Do We Go From HereBreastfeeding Status On Us Birth Certificates Where Do We Go From Here
Breastfeeding Status On Us Birth Certificates Where Do We Go From HereBiblioteca Virtual
 
Forever flowing 3.2
Forever flowing 3.2Forever flowing 3.2
Forever flowing 3.2Geminiasp
 
Massage Therapeutics, INC CFW Service Brochures
Massage Therapeutics, INC CFW Service BrochuresMassage Therapeutics, INC CFW Service Brochures
Massage Therapeutics, INC CFW Service BrochuresUrsula J Edwards Ellerby
 

Andere mochten auch (20)

Green goal 2010 workshop april 2010
Green goal 2010 workshop april 2010Green goal 2010 workshop april 2010
Green goal 2010 workshop april 2010
 
Our Song
Our SongOur Song
Our Song
 
Cartoons Of The 21st Century
Cartoons Of The 21st CenturyCartoons Of The 21st Century
Cartoons Of The 21st Century
 
Superfans
Superfans Superfans
Superfans
 
Think Positive
Think PositiveThink Positive
Think Positive
 
Complementary Feeding Practices To Children During
Complementary Feeding Practices To Children DuringComplementary Feeding Practices To Children During
Complementary Feeding Practices To Children During
 
Forever Flowing Ch1.1
Forever Flowing Ch1.1Forever Flowing Ch1.1
Forever Flowing Ch1.1
 
Taxi Call Center Whitepaper (rus)
Taxi Call Center Whitepaper (rus)Taxi Call Center Whitepaper (rus)
Taxi Call Center Whitepaper (rus)
 
Cim 20071001 oct_2007
Cim 20071001 oct_2007Cim 20071001 oct_2007
Cim 20071001 oct_2007
 
Forever flowing 3.1
Forever flowing 3.1Forever flowing 3.1
Forever flowing 3.1
 
Global Warming Presentaion
 Global Warming Presentaion Global Warming Presentaion
Global Warming Presentaion
 
Wellness Party-Massage Therapeutics, INC
Wellness Party-Massage Therapeutics, INCWellness Party-Massage Therapeutics, INC
Wellness Party-Massage Therapeutics, INC
 
Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...
Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...
Toxic Inheritance – More Than 300 Pollutants In Breast Milk – Time For A New ...
 
Greenfields
GreenfieldsGreenfields
Greenfields
 
Financial Evaluation
Financial EvaluationFinancial Evaluation
Financial Evaluation
 
War Crimes In Congo
War Crimes In CongoWar Crimes In Congo
War Crimes In Congo
 
Breastfeeding Status On Us Birth Certificates Where Do We Go From Here
Breastfeeding Status On Us Birth Certificates Where Do We Go From HereBreastfeeding Status On Us Birth Certificates Where Do We Go From Here
Breastfeeding Status On Us Birth Certificates Where Do We Go From Here
 
9 My Home Mh New
9 My Home Mh New9 My Home Mh New
9 My Home Mh New
 
Forever flowing 3.2
Forever flowing 3.2Forever flowing 3.2
Forever flowing 3.2
 
Massage Therapeutics, INC CFW Service Brochures
Massage Therapeutics, INC CFW Service BrochuresMassage Therapeutics, INC CFW Service Brochures
Massage Therapeutics, INC CFW Service Brochures
 

Ähnlich wie NetSDS SMPP Server

Новые возможности совместной работы с конференциями Cisco Telepresence
Новые возможности совместной работы с конференциями Cisco TelepresenceНовые возможности совместной работы с конференциями Cisco Telepresence
Новые возможности совместной работы с конференциями Cisco TelepresenceCisco Russia
 
стэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризмстэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризмSergei Seleznev
 
Обзор и последние новости в области инфраструктурных решений видеосвязи Cisco
Обзор и последние новости в области инфраструктурных решений видеосвязи CiscoОбзор и последние новости в области инфраструктурных решений видеосвязи Cisco
Обзор и последние новости в области инфраструктурных решений видеосвязи CiscoCisco Russia
 
Оптимизация сервера потокового видеовещания (Дмитрий Шатров)
Оптимизация сервера потокового видеовещания (Дмитрий Шатров)Оптимизация сервера потокового видеовещания (Дмитрий Шатров)
Оптимизация сервера потокового видеовещания (Дмитрий Шатров)Ontico
 
Обзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and PresenceОбзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and PresenceCisco Russia
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
Tehnologii globalnyh-setey
Tehnologii globalnyh-seteyTehnologii globalnyh-setey
Tehnologii globalnyh-seteyezozbek
 
Сетевое оборудование ETegro Technologies
Сетевое оборудование ETegro TechnologiesСетевое оборудование ETegro Technologies
Сетевое оборудование ETegro TechnologiesETegro Technologies
 
D Link
D LinkD Link
D Linkahey
 
D Link
D LinkD Link
D Linkahey
 
Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...
Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...
Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...Cisco Russia
 
Spread Zaytsev3
Spread Zaytsev3Spread Zaytsev3
Spread Zaytsev3Ontico
 
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...Aibek9
 
linkmeup-058. SDN. Cisco ACI
linkmeup-058. SDN. Cisco ACIlinkmeup-058. SDN. Cisco ACI
linkmeup-058. SDN. Cisco ACIeucariot
 
Интеграция и управление системами с помощью ESB
Интеграция и управление системами с помощью ESBИнтеграция и управление системами с помощью ESB
Интеграция и управление системами с помощью ESBКолёса Крыша Маркет
 
Об очередях (AMQP)
Об очередях (AMQP)Об очередях (AMQP)
Об очередях (AMQP)Ilya Chesnokov
 
Tuning Azure Service Bus (RU)
Tuning Azure Service Bus (RU)Tuning Azure Service Bus (RU)
Tuning Azure Service Bus (RU)Pavel Sokolov
 

Ähnlich wie NetSDS SMPP Server (20)

Новые возможности совместной работы с конференциями Cisco Telepresence
Новые возможности совместной работы с конференциями Cisco TelepresenceНовые возможности совместной работы с конференциями Cisco Telepresence
Новые возможности совместной работы с конференциями Cisco Telepresence
 
стэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризмстэн шнайдер Датацентризм и месседжсентризм
стэн шнайдер Датацентризм и месседжсентризм
 
Обзор и последние новости в области инфраструктурных решений видеосвязи Cisco
Обзор и последние новости в области инфраструктурных решений видеосвязи CiscoОбзор и последние новости в области инфраструктурных решений видеосвязи Cisco
Обзор и последние новости в области инфраструктурных решений видеосвязи Cisco
 
Оптимизация сервера потокового видеовещания (Дмитрий Шатров)
Оптимизация сервера потокового видеовещания (Дмитрий Шатров)Оптимизация сервера потокового видеовещания (Дмитрий Шатров)
Оптимизация сервера потокового видеовещания (Дмитрий Шатров)
 
Обзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and PresenceОбзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and Presence
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Tehnologii globalnyh-setey
Tehnologii globalnyh-seteyTehnologii globalnyh-setey
Tehnologii globalnyh-setey
 
Lekt 13 snmup_decrypted
Lekt 13 snmup_decryptedLekt 13 snmup_decrypted
Lekt 13 snmup_decrypted
 
Сетевое оборудование ETegro Technologies
Сетевое оборудование ETegro TechnologiesСетевое оборудование ETegro Technologies
Сетевое оборудование ETegro Technologies
 
D Link
D LinkD Link
D Link
 
D Link
D LinkD Link
D Link
 
Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...
Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...
Использование механизмов обеспечение качества обслуживания в беспроводных Wi-...
 
Spread Zaytsev3
Spread Zaytsev3Spread Zaytsev3
Spread Zaytsev3
 
Topic15 leased lines
Topic15 leased linesTopic15 leased lines
Topic15 leased lines
 
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
 
linkmeup-058. SDN. Cisco ACI
linkmeup-058. SDN. Cisco ACIlinkmeup-058. SDN. Cisco ACI
linkmeup-058. SDN. Cisco ACI
 
Интеграция и управление системами с помощью ESB
Интеграция и управление системами с помощью ESBИнтеграция и управление системами с помощью ESB
Интеграция и управление системами с помощью ESB
 
Об очередях (AMQP)
Об очередях (AMQP)Об очередях (AMQP)
Об очередях (AMQP)
 
Tuning Azure Service Bus (RU)
Tuning Azure Service Bus (RU)Tuning Azure Service Bus (RU)
Tuning Azure Service Bus (RU)
 

NetSDS SMPP Server

  • 1. NetSDS SMPP Server 1.2 Техническое задание www.netstyle.com.ua +380 44 594-9641 +380 44 221-1286
  • 2. Содержание Общее описание..................................................................................................................................3 Функциональная спецификация........................................................................................................3 Обработка событий протокола SMPP...............................................................................................4 Поддерживаемые команды SMPP 3.4...........................................................................................4 Пример SMPP-сессии....................................................................................................................5 Заголовок PDU SMPP....................................................................................................................5 Установка соединения — bind_transceiver...................................................................................6 Подтверждение установки соединения — bind_transceiver_resp..............................................6 Запрос завершения соединения — unbind...................................................................................6 Подтверждение завершения соединения — unbind_resp...........................................................6 Отправка MT сообщения — submit_sm.......................................................................................6 Подтверждение отправки MT сообщения — submit_sm_resp...................................................7 Доставка MO сообщения или DLR — deliver_sm......................................................................7 Подтверждение доставки MO сообщения — deliver_sm_resp..................................................8 Проверка соединения — enquire_link..........................................................................................8 Подтверждение проверки соединения — enquire_link_resp......................................................8 Ответ на некорректную команду SMPP — generic_nack............................................................8 Статусы выполнения команд SMPP.............................................................................................8 Уведомления о доставке................................................................................................................8 Аутентификация клиентов SMPP......................................................................................................9 Обработка очередей сообщений......................................................................................................10 Внутренний формат сообщений......................................................................................................10 Параметры сериализованных сообщений JSON.......................................................................10 Администрирование NetSDS SMPP Server....................................................................................11 Запуск............................................................................................................................................11 Остановка......................................................................................................................................11 Изменение конфигурации...........................................................................................................11 Мониторинг..................................................................................................................................11 Требования к системному ПО.........................................................................................................11 © 2007-2009 ЧП «Нет Стайл». Страница 2 из 11
  • 3. Общее описание Платформа NetSDS SMPP Server поддерживает подключение клиентского программного обеспечения по протоколу SMPP (Short Message Peer-to-Peer) версии 3.4 в режиме трансивера. В частности, описываемый SMPP интерфейс позволяет устанавливать соединение, получать и отправлять SMS, получать уведомления о доставке сообщений, удалять сообщения из очереди, проверять работоспособность соединения. В документе используются следующие соглашения о наименованиях: • ESME — клиентское приложение • CPA — клиентский интерфейс платформы NetSDS • DLR — уведомление о доставке • SM — короткое сообщение (Short Message) • MO — событие, инициируемое абонентским терминалом (Mobile Originated) • MT — событие, инициируемое сервером (Mobile Terminating) Детальную информацию про упоминаемые команды протокола и их параметры можно получить в официальной спецификации SMPP v 3.4. Функциональная спецификация Функциональность Статус Комментарии Поддержка функций протокола SMPP 3.4 Поддержка протокола SMPP  Версия 3.4 Режим transceiver  Режим transmitter/receiver X Поддержка передачи MT сообщений  Поддержка передачи MO сообщений  Поддержка передачи уведомлений о доставке (DLR)  Поддержка мониторинга канала (enquire_link)  Аутентификация SQL СУБД (MySQL, PostgreSQL, SQLite, Oracle)  При наличии драйвера для Perl DBI LDAP X В следующих версиях RADIUS X В следующих версиях Поддержка форматов передаваемых сообщений Текстовые сообщения в кодировке GSM 03.38  Текстовые сообщения в кодировке UCS2  Бинарные 8-битные сообщения  Длинные «склеенные» сообщения  С использованием UDH, © 2007-2009 ЧП «Нет Стайл». Страница 3 из 11
  • 4. согласно GSM 03.40 Поддержка передачи UDH  Поддержка установки message class  Передача MWI (mail waiting indication) X Статистика и интеграция с биллинговыми системами Поддержка уведомлений о доставке SMS (DLR)  Запись CDR для обработки биллинговыми системами  Запись в файл Передача Service Code для обработки SMSC X Обработка событий протокола SMPP В этом разделе описывается подмножество команд протокола SMPP, поддерживаемых платформой NetSDS SMPP Server. Использование этих команд позволяет клиентскому ПО принимать и отправлять сообщения SMS, а также принимать уведомления о статусе доставки SMS. Поддерживаемые команды SMPP 3.4 В этом разделе спецификации перечислен список команд протокола SMPP 3.4, поддерживаемых платформой NetSDS SMPP Server. Тип SMPP PDU PDU command_id Запрос от ESME Запрос от CPA bind_transceiver 0x00000009 Да Нет bind_transceiver_resp 0x80000009 Нет Да unbind 0x00000006 Да Да unbind_resp 0x80000006 Да Да submit_sm 0x00000004 Да Нет submit_sm_resp 0x80000004 Нет Да deliver_sm 0x00000005 Нет Да deliver_sm_resp 0x80000005 Да Нет enquire_link 0x00000015 Да Да enquire_link_resp 0x80000015 Да Да generic_nack 0x80000000 Да Да Данный список включает все необходимые команды протокола SMPP для обмена сообщениями между ESME и CPA API, но может быть расширен в случае необходимости реализации специфичных для конкретной инсталляции функций (например, для поддержки USSD или Subscriber Registration Alarm). © 2007-2009 ЧП «Нет Стайл». Страница 4 из 11
  • 5. Пример SMPP-сессии В этом разделе приводится пример типичной SMPP-сессии между клиентским программным обеспечением (ESME) и NetSDS SMPP Server. После установки TCP-соединения ESME отправляет PDU с командой bind_transceiver, в ответ на которую CPA API отправляет PDU с командой bind_transceiver_resp, после чего сессию SMPP можно считать установленной. В процессе взаимодействия по протоколу SMPP ESME может отправлять команды submit_sm, enquire_link, в ответ на которые CPA API обязан возвращать PDU с командами submit_sm_resp, и enquire_link_resp, соответственно. Для получения сообщений (MO SM) и уведомлений о доставке ранее отправленных SMS, ESME должен принимать от CPA API PDU с командой deliver_sm и корректно в ответ отправлять PDU с командой deliver_sm_resp. Для завершения сессии сторона, инициирующая завершение, должна отправить PDU с командой unbind, после чего дождаться PDU с unbind_resp и разорвать TCP-сессию. Заголовок PDU SMPP Любая команда SMPP содержит заголовок со следующими полями: Имя параметра Описание © 2007-2009 ЧП «Нет Стайл». Страница 5 из 11
  • 6. command_length Размер всего PDU в байтах command_id Идентификатор команды SMPP command_status Статус выполения команды в ответных PDU sequence_number Идентификатор последовательности в рамках SMPP сессии для вычисления взаимосоответствия PDU. Установка соединения — bind_transceiver Эта команда отправляется ESME сразу же после инициации TCP сессии для инициализации соединения по протоколу SMPP. В NetSDS SMPP Server все параметры PDU кроме system_id и password являются необязательными и в большинстве случаев их содержимое игнорируется. Имя параметра Описание system_id Имя системы ESME password Пароль доступа interface_version Версия интерфейса (поддерживается 0x34) addr_ton Тип номера ESME (см. п. 5.2.5 спецификации SMPP) addr_npi План нумерации ESME (должен быть 00000001) address_range Диапазон номеров, обслуживаемых ESME (игнорируется) Подтверждение установки соединения — bind_transceiver_resp Эта команда отправляется в ответ на bind_transceiver и служит для подтверждения успешного соединения либо сообщения ошибки соединения. В случае успешного соединения также передается имя платформы. Имя параметра Описание system_id Имя системы CPA (должно быть «NETSDS») Запрос завершения соединения — unbind Команда unbind отправляется стороной, инициирующей разрыв SMPP сессии. Также допускается закрытие сессии просто по факту разрыва TCP соединения, однако такое поведение является нежелательным, нарушая стандартный процесс взаимодействия в рамках SMPP 3.4. Команда содержит только заголовок SMPP PDU. Подтверждение завершения соединения — unbind_resp Команда содержит только заголовок SMPP PDU. Отправка MT сообщения — submit_sm Имя параметра Описание service_type Тип сервиса (используется для тарификации) source_addr_ton Тип номера ESME (см. п. 5.2.5 спецификации SMPP) source_addr_npi План нумерации ESME (должен быть 00000001) source_addr Сервисный адрес (короткий номер, А-номер) dest_addr_ton Тип номера абонента (обычно, 00000001) © 2007-2009 ЧП «Нет Стайл». Страница 6 из 11
  • 7. dest_addr_npi План нумерации абонента (должен быть 00000001) destination_addr Адрес абонента (MSISDN) esm_class См. п. 5.2.12 спецификации SMPP protocol_id См. п. 5.2.12 спецификации SMPP (обычно 0x00000000) priority_flag От 0 (низший) до 3 (высший) приоритет schedule_delivery_time Время доставки validity_period Время жизни сообщения registered_delivery См. п 5.2.17 спецификации SMPP (обычно 0x00000001) replace_if_present_flag Не поддерживается data_coding См. п 5.2.19 спецификации SMPP sm_default_msg_id Не поддерживается sm_length Длина сообщения short_message Содержимое сообщения (User Data) Подтверждение отправки MT сообщения — submit_sm_resp В ответ на submit_sm CPA API передает PDU с командой submit_sm_resp, содержащей идентификатор сообщения, назначенный платформой NetSDS SMPP Server. Доставка MO сообщения или DLR — deliver_sm Данная команда служит для передачи от CPA API к ESME сообщений. Имя параметра Описание service_type Тип сервиса (используется для тарификации) source_addr_ton Тип номера абонента (обычно, 00000001) source_addr_npi План нумерации абонента (должен быть 00000001) source_addr Адрес абонента (MSISDN) dest_addr_ton Тип номера ESME (см. п. 5.2.5 спецификации SMPP) dest_addr_npi План нумерации ESME (должен быть 00000001) destination_addr Сервисный адрес (короткий номер) esm_class См. п. 5.2.12 спецификации SMPP protocol_id См. п. 5.2.12 спецификации SMPP (обычно 0x00000000) priority_flag От 0 (низший) до 3 (высший) приоритет schedule_delivery_time Время доставки validity_period Время жизни сообщения registered_delivery См. п 5.2.17 спецификации SMPP (обычно 0x00000001) replace_if_present_flag Не поддерживается data_coding См. п 5.2.19 спецификации SMPP sm_default_msg_id Не поддерживается sm_length Длина сообщения short_message Содержимое сообщения (User Data) © 2007-2009 ЧП «Нет Стайл». Страница 7 из 11
  • 8. Подтверждение доставки MO сообщения — deliver_sm_resp Данная команда является ответом, подтверждающим успешный прием MO SM либо DLR на стороне ESME. Имя параметра Описание message_id Выставляется в NULL Проверка соединения — enquire_link Команда содержит только заголовок SMPP PDU. Подтверждение проверки соединения — enquire_link_resp Команда содержит только заголовок SMPP PDU. Ответ на некорректную команду SMPP — generic_nack Данная команда отправляется в ответ на PDU с некорректной длиной либо неизвестным платформе идентификатором команды. Команда содержит только заголовок SMPP PDU. Статусы выполнения команд SMPP Числовые значения статусов указаны в п. 5.1.3 спецификации SMPP 3.4. Код статуса Описание ESME_ROK Успешное выполнение ESME_RINVCMDID Некорректный идентификатор команды ESME_RALYBND ESME уже подключен ESME_RSYSERR Ошибка платформы ESME_RINVSRCADR Некорректный исходящий адрес ESME_RINVDSTADR Некорректный входящий адрес ESME_RINVMSGID Некорректный идентификатор сообщения ESME_RINVPASWD Некорректный пароль ESME_RINVSERTYP Некорректный тип сервиса Уведомления о доставке Для уведомлений о статусе доставки используется следующий формат: id:ID sub:NN dlvrd:NN submit date:DATE done date:DATE stat:STATE Значимые поля: • id — идентификатор сообщения (UUID) • done date — дата и время доставки (YYYYMMDDhhmm) • state — статус доставки (DELIVRD, EXPIRED, DELETED, UNDELIV, ACCEPTED, UNKNOWN, REJECTED) © 2007-2009 ЧП «Нет Стайл». Страница 8 из 11
  • 9. Аутентификация клиентов SMPP Для аутентификации клиентов NetSDS SMPP Server использует подключение к любой реляционной СУБД, поддерживающей язык запросов SQL. Шаблон SQL запроса задается в файле конфигурации, в секции auth и включает два параметра, в которые помещаются имя пользователя (system-id) и пароль (password). Для успешной аутентификации требуется, чтобы при вызове SQL запроса с указанными параметрами СУБД вернула одну или более строк. Пример: SQL: -- Creating SQL table for SMPP users CREATE TABLE users ( id integer, login varchar(16), passwd varchar(16), active integer ) Конфигурация: # SQL authentication backend <auth> dsn = db:Pg:dbname=authdb db-user = smpp db-password = secret query = select user from users where login=? and passwd=? and active=1 </auth> Таким образом, NetSDS SMPP Server позволяет производить аутентификацию клиентов, используя фактически любую СУБД с языком запросов SQL, для которой существует реализация драйвера DBI. © 2007-2009 ЧП «Нет Стайл». Страница 9 из 11
  • 10. Обработка очередей сообщений Для взаимодействия с приложениями бизнес-логики NetSDS SMPP Server использует подсистему управления очередями MemcacheQ1, работающую по протоколу memcache2. Данный протокол базируется на TCP, но также может применяться взаимодействие через протокол передачи датаграмм UDP или unix socket. 1. Все сообщения, которые успешно приняты платформой от ESME, преобразуются в стандартное внутреннее представление и помещаются в очередь q_mt 2. Сообщения для передачи к ESME выбираются из очереди q_mo_SYSID, где SYSID соответствует system-id, выданному клиенту при регистрации. Таким образом, для всех MT сообщений используется одна очередь, из которой эти сообщения могут быть получены приложением, отвечающим за их дальнейшую обработку. Все MO SM и DLR помещаются в отдельные очереди для каждого ESME, что позволяет снизить нагрузку на платформу за счет обработки только событий для активных клиентов. Внутренний формат сообщений В качестве внутреннего формата для обмена сообщениями применяется JSON, сконвертированный в строку Base64 для передачи по протоколу Memcache. Каждое сообщение представляется структурой (ассоциативным массивом) приблизительно следующего вида: { "type": "mo", "from": "380672206770" "to": "12345", "text": "message text here", "coding": "gsm0338" } При этом, параметр type задает тип сообщения и может принимать следующие значения: • mo — MO SM (сообщение от абонента к сервису) • mt — MT SM (сообщение от сервера к абоненту) • dlr — DLR (уведомление о доставке) В зависимости от типа сообщения, содержимое сериализованного массива может включать различные наборы параметров. Параметры сериализованных сообщений JSON Данный раздел описывает поддерживаемые параметры JSON-представления сообщений. Поле Содержимое Формат client Идентификатор клиента (SMPP system-id) Строка ASCII id Идентификатор сообщения UUID created Дата создания сообщения ГГГГ-ММ-ДД ЧЧ:ММ:СС 1 http://memcachedb.org/memcacheq/ - официальный сайт MemcacheQ 2 http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt — описание протокола memcache © 2007-2009 ЧП «Нет Стайл». Страница 10 из 11
  • 11. from Адрес источника сообщения MSISDN или Alphanumeric to Адрес получателя сообщения MSISDN или Alphanumeric udh User Data Headers (заголовок SM) Шестнадцатиричная строка ud User Data (содержимое SM) Шестнадцатиричная строка coding Кодировка сообщения Строка с одним из вариантов: gsm0338, 8bit, ucs2 mclass Класс сообщения, если есть Число от 0 до 3. См. спецификацию GSM 03.38 priority Приоритет доставки для передачи SMSC Число от 0 до 3. validity Время жизни сообщения, если требуется ГГГГ-ММ-ДД ЧЧ:ММ:СС явное ограничение. В UTC. deferred Время отложенной доставки сообщения, ГГГГ-ММ-ДД ЧЧ:ММ:СС если требуется. В UTC. text Текстовое представление содержимого Строка в кодировке UTF-8 SMS, если допустимо. dlr_state Статус доставки сообщения Число согласно спецификации SMPP 3.4 п 5.2.28 dlr Текстовое представление DLR Строка ASCII network_error Код ошибки GSM-сети Число register_delivery Требуется ли уведомление о доставке 0, если не требуется 1, если требуется Требования к производительности 1. На незагруженной системе с CPU Intel Xeon 3300, 1GB RAM, SATA II HDD NetSDS SMPP Server должен обрабатывать не менее 1000 сообщений в секунду. 2. NetSDS SMPP Server на вышеописанной конфигурации должен корректно обрабатывать не менее 100 одновременных клиентских подключений по протоколу SMPP 3.4. 3. Система должна корректно работать при количестве необработанных сообщений в очереди до 5,000,000. Требования к системному ПО • Операционная система: Linux, FreeBSD • Интерпретатор Perl: 5.8.X • Сервер управления очередями MemcacheQ • BerkeleyDB 4.7 • Возможность инсталлировать пакеты из CPAN Рекомендуется использование системы мониторинга приложений Monit для обеспечения бесперебойной работы всех приложений и отслеживания критичной нагрузки на ресурсы системы. © 2007-2009 ЧП «Нет Стайл». Страница 11 из 11