CommuniGate Pro
Версия 6.4
 

Модуль SMPP

В модуле SMPP CommuniGate Pro реализован протокол SMPP в TCP/IP сетях.

В модуле SMPP реализована клиентская часть протокола SMPP (ESME). Модуль может подсоединяться к указанным серверам SMPP (SMSC, Short Message service Centre) и передавать Сигнальные запросы IM (Instant Message - Мгновенные сообщения) в виде сообщений SMS.

Модуль SMPP может также получать сообщения SMS с серверов SMPP и отправлять их далее в виде сигнальных запросов указанным получателям.




Short Message Peer to Peer Protocol (SMPP)

В модуле SMPP CommuniGate Pro реализованы функции протокола SMPP. Администратор Сервера может указать один или более сервер SMPP (систему SMSC), и Модуль SMPP открывает соединение TCP к указанным серверам и "связывается" с ними, используя указанные данные аутентификации.
Когда Сигнал IM маршрутизируется в модуль SMPP, Модуль находит соответствующий Сервер SMPP и отправляет ему Сигнал в соединении SMPP.

Для поддержания соединения в периоды бездействия (когда нет IM для передачи) Модуль периодически отправляет запрос enquire_link Серверу SMPP.

Если соединие с сервером не может быть установлено, или оно было разорвано и устанавливается заново, Сигналы IM ставятся в очередь. Они передаются на сервер после восстановления соединения.

Модуль SMPP обрабатывает только сигнальные запросы MESSAGE, другие запросы отвергаются.


Настройка Модуля SMPP

Для того, чтобы настроить параметры модуля SMPP, используйте Веб Интерфейс Администратора. Откройте в разделе Установки страницу Real-Time, затем откройте страницу SMPP.

Обработка
Уровень Журнала: Лимит Ожидания: Тайм-аут Диалогов: Исходящий Адрес:
Уровень Журнала
Используйте эту настройку, чтобы указать, какую информацию модуль SMPP должен сохранять в Журнале работы Сервера. Обычно используется уровень Основное (отчёты о передаче сообщений) или уровень Проблемы (передача сообщений и не фатальные ошибки). В случае, если в работе модуля SMPP возникают проблемы, возможно, целесообразным будет увеличить детализацию до уровня Подробности или Всё: в этом случае в Журнал работы Сервера будет также записываться более подробная информация о работе модуля на уровне протокола или на уровне соединения. Когда проблема решена, верните настройку Уровень Журнала в её обычное значение, иначе Системный Журнал будет очень быстро увеличивать свой размер.

Записи, помещённые модулем SMPP в Системный Журнал, имеют пометку SMPP.

Лимит Ожидания
Если сигнальный запрос не может быть передан на сервер SMPP дольше указанного времени, он отвергается.
Тайм-аут Диалогов
Эта опция задаёт тайм-аут связи Диалогов SMS.
Исходящий Адрес
Эта опция выбирает сетевой адрес-источник, используемый для установления соединений по протоколу SMPP. Вы можете позволить ОС сервера CommuniGate Pro выбирать подходящий адрес или вы можете явно выбрать один из IP адресов сервера, который будет использоваться как сетевой адрес по умолчанию.

Настройка Записей Серверов SMPP

Можно указать несколько серверов SMPP, с которыми должен соединяться модуль SMPP.

Имя Режим Адрес SMSC System ID Пароль Отправитель Получатель Диалоги Кодировка Тайм-аут
Имя
Внутреннее имя набора настроек для сервера SMPP. Может использоваться любое имя, но не должно быть двух одинаковых. Допускается пустое имя.
Режим
Режим работы этой конфигурации сервера SMPP: только передача, только приём, приём и передача. Модуль SMPP подсоединяется к серверу SMPP как "Transmitter", "Receiver" или "Transceiver".
Для отключения конфигурации сервера SMPP без её удаления выберите режим Выключено.
Адрес SMSC
Имя домена или Сетевой Адрес Сервера SMPP (SMSC) для соединения, с номером порта, отделённого двоеточием (:).
Если порт не указан, используется порт 2775.
Если соединение с сервером SMPP должно быть зашифровано (используя протокол TLS), добавьте префикс tls: перед именем домена сервера.
System ID, Пароль
Эти поля содержат данные аутентификации для подсоединения к серверу SMPP.
По умолчанию Модуль SMPP использует строку CommuniGate в качестве "Типа системы" SMPP. Некоторые серверы SMPP могут требовать другую строку в качестве "Типа системы". Вы можете указать эту строку в поле System ID после фактического System ID, отделив её символом @. Например, если System ID - user1234, а Тип системы должен быть SMPP, укажите в поле System ID значение user1234@SMPP.
Отправитель
Значение этого поля используется для указания атрибута Отправитель сообщения SMS. Обычно используется телефонный номер, связанный с пользователем на сервере SMPP, который используется для аутентификации. Используйте формат +countryCodephoneNumber для указания отправителя в "международном" формате.
Если это поле содержит символ *, подставляется адрес E-mail фактического отправителя. Если адрес задан в виде +number@telnum, подставляется только часть number. Если адрес задан в виде userName@null, подставляется только часть userName.
Если поле оставлено пустым, оно обрабатывается так же, как если бы оно содержало значение *.
Если результат начинается с символа +, он удаляется и адрес отправляется на сервер SMPP как "международный". Иначе он отправляется как "местный" (если начинается с цифры) или "алфавитно-цифровой".
Диалоги
Если эта опция включена, сообщения, отправленные и принятые через этот сервер SMPP, будут дополнительно обработаны для поддержки Диалогов SMS.
Получатель
Пустая строка или адрес E-mail получателя по умолчанию. Сформированное сообщение отправляется на указанный адрес, если:
  • опция Диалоги выключена
  • опция Диалоги включена, но для отправителя входящего сообщения не было найдено соответствующего локального получателя (не найдена диалоговая связь)
  • опция Диалоги включена, и найдена диалоговая связь, но входящее сообщение имеет префикс @@ (две "собаки" и пробел)

Если настройка не задана (поле оставлено пустым):
  • если опция Диалоги включена, но для отправителя входящего сообщения не было найдено соответствующего локального получателя (не найдена диалоговая связь), входящее сообщение отвергается.
  • если опция Диалоги выключена, сообщение маршрутизируется в указанный адрес по протоколу SMPP: если сообщение направлено на телефонный номер +74992713152, то оно отправляется на адрес +74992713152@telnum, который может маршрутизироваться локальному пользователю (через механизм Telnum или иным образом).
Кодировка
The предпочтительная кодировка для использования в отправляемых сообщениях. Если сообщение не может быть послано с использованием указанной кодировки, оно отправляется в кодировке Unicode.
Тайм-аут
Эта опция задаёт максимальный период между командами, отправляемыми на сервер SMPP.
Если в течение этого периода в очереди нет сообщений для отправки серверу SMPP, отправляется команда enquire_link для предотвращения закрытия соединения сервером.

Для того, чтобы создать новую конфигурацию сервера SMPP, введите её имя и другие настройки в последнем (пустом) элементе таблицы и нажмите кнопку Модифицировать.

Для того, что бы удалить конфигурацию SMPP, введите пустую строку в поле с именем домена (не имени конфигурации!) и нажмите кнопку Модифицировать.


Маршрутизация Сигналов в Модуль SMPP

Для направления Сигнала в Модуль SMPP:
  • направьте его на адрес phonenumber@smpp, где phonenumber - номер телефона назначения в формате E.164 (с символом + в начале). Сигнальный запрос будет отправлен через первый доступный (включённый) сервер SMPP в конфигурации. Если есть включённый сервер SMPP сервер с пустым именем конфигурации, запрос будет отправлен через этот сервер.
  • направьте запрос на адрес phonenumber@name._smpp, где name - внутреннее имя конфигурации включённого сервера SMPP.

Пример:
при использовании конфигурации выше сигналы на +74992713152@smpp будут отправлены через сервер provider1 (сервер SMPP по адресу 64.173.55.161:901), тогда как сигналы на +74992713152@masslist._smpp будут отправлены с использованием конфигурации masslist (сервер SMPPsmpp.provider.dom:950).

Обычно сообщения SMS направляются на стандартные номера телефонов, то есть некоторый адрес вида +countryCode phoneNumber@telnum. По умолчанию такие адреса маршрутизируются через приложение gatewaycaller, которое передаёт мгновенные сообщения через один из настроенных серверов SMPP. Приложение может получить имя конкретной конфигурации сервера SMPP из настройки пользователя PSTNSMSGateway или, если настройка не задана, из параметра приложения.
Для использования сервера SMPP конфигурации provider1 по умолчанию добавьте следующую запись в Таблицу Маршрутизатора:

IM:<*@telnum> = gatewaycaller{*,provider1}#pbx

Диалоги SMS

Модуль SMPP поддерживает "Диалоги SMS": когда пользователь CommuniGate Pro отправляет мгновенное сообщение на некий адрес SMPP (например, мобильный телефон), ответы с этого адреса доставляются этому пользователю CommuniGate Pro в виде SMS.

Когда мгновенное сообщение от некоторого адреса user1@domain1 направляется в виде SMS на телефонный номер XXXXXXX, Модуль SMPP добавляет в текст сообщения префикс:
@a=user1@domain1 текст сообщения

Последующие мгновенные сообщения от того же пользователя user1@domain1 отправляются на номер XXXXXXX с "коротким" префиксом:
@a текст сообщения

Когда мгновенное сообщение от некоторого другого адреса user2@domain2 направляется в виде SMS на тот же телефонный номер XXXXXXX, Модуль SMPP добавляет в текст сообщения другой префикс:
@b=user2@domain2 текст сообщения

Последующие мгновенные сообщения от того же пользователя user2@domain2 отправляются на номер XXXXXXX с "коротким" префиксом:
@b текст сообщения

Модуль SMPP запоминает эти "связки", состоящие из адреса отправителя, номера назначения и префикса (буквы в нижнем регистре).

Когда владелец телефона XXXXXXX отвечает на сообщение, модуль SMPP проверяет все "связки" с этим номером XXXXXXX. Если есть ровно одна связка, модуль направляет полученное сообщение SMS в виде мгновенного сообщения на адрес из этой связки.
Если связок не найдено, или их две или больше, сообщение SMS не принимается.

Владелец телефона может ответить с SMS, текст которого начинается с префикса @x: или @x_, где "_" - символ пробела.
В этом случае модуль SMPP пытается найти указанную связку для номера XXXXXXX с префиксом x. Если она найдена, сообщение SMS отправляется на адрес из найденной связки, в противном случае сообщение SMS не принимается.

Пример: один диалог на экране мобильного телефона:

@[email protected] Hi! Got good news about that contract.
Great. Signed?
@a They've signed it, we'll get it tomorrow.
Congrats, CU!

Пример: два диалога на экране мобильного телефона:

@[email protected] Will you be in town this weekend?
Yes
@a Please come visit us on saturday, we'll be at home all day long.
@[email protected] Hey, just received their signed contract!
@b good! I'll be there in 30m
@a Thnx a lot, I will!

Модуль SMPP забывает про связки, которые не были использованы дольше, чем значение настройки Тайм-аут Диалогов.
Если значение настройки слишком мало, то владелец мобильного телефона может не суметь ответить на недавно полученное сообщение, поскольку к моменту обнаружения SMS, связка может быть забыта. Если же значение настройки слишком велико, пользователям мобильных телефонов придётся чаще явно вставлять префиксы @x.


Руководство CommuniGate Pro. Copyright © 2020-2023, АО СталкерСофт