Принимаем на colocation сервера с выделением реальных IP адресов IPV4

Аренда места в 19" стойке с реальным IP адресом. 

Предлагаем Вам специальные условия на размещение серверов и коммуникационного оборудования в серверной комнате.

К Вашим услугам:

  • 19" стойка или шкаф
  • Выделенный IP адрес IPV4 из автономной системы
  • Два независимых электрических ввода
  • Два канала Ethernet  с автоматическим переключением при отказе
  • Три кондиционера
  • Приточно-вытяжная вентиляция

Стоимость размещения уточняйте у наших специалистов по телефону +78462633600.

Колокация, колокейшн, colocation в Самаре, размещение серверов, реальные IP адреса, IPV4 адреса в аренду

 

Короткая ссылка: http://www.tms-it.ru/dd8

Состав

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

Одна копия Приложения может быть одновременно подключена к нескольким транспортным системам (взаимодействие по протоколу SMPP 3.4 или 5.0) и обеспечивать взаимодействие с несколькими контент-провайдерами (взаимодействие по протоколу HTTP(S)).

Параметры -D для передачи JVM

gateway.home — путь к каталогу размещения Приложения. -Dgateway.home=/opt/gateway gateway.conf — путь к файлу конфигурации. -Dgateway.conf=/opt/gateway/production.xml gateway.log — путь к каталогу для хранения логов. -Dgateway.log=/opt/gateway/logfiles

Пример:

$JAVA_HOME/bin/java \ -jar gateway.jar \ -Dgateway.home=/opt/gateway \ -Dgateway.conf=/opt/gateway/gateway.conf \ -Dgateway.log=/opt/gateway/logfiles/gateway

Файл конфигурации

Файл конфигурации содержит описание параметров, необходимых для запуска компонентов Приложения. Файл должен соответствовать спецификации XML и содержать текст в кодировке UTF-8.

Общий вид

  class="@class" ident="@ident">  /gateway/@version (версия >= 0.1)

Версия Приложения, для которого предназначен данный файл конфигурации. Версию можно узнать, запустив Приложение с параметром showVersion:

java -jar gateway.jar showVersion

Java SMPP Gateway Version 1.3Одна копия Приложения может быть одновременно подключена к нескольким транспортным системам (взаимодействие по протоколу SMPP 3.4 или 5.0) и обеспечивать взаимодействие с несколькими контент-провайдерами (взаимодействие по протоколу HTTP(S)).

Параметры -D для передачи JVM

gateway.home — путь к каталогу размещения Приложения. -Dgateway.home=/opt/gateway gateway.conf — путь к файлу конфигурации. -Dgateway.conf=/opt/gateway/production.xml gateway.log — путь к каталогу для хранения логов. -Dgateway.log=/opt/gateway/logfiles

Пример:

$JAVA_HOME/bin/java \ -jar gateway.jar \ -Dgateway.home=/opt/gateway \ -Dgateway.conf=/opt/gateway/gateway.conf \ -Dgateway.log=/opt/gateway/logfiles/gateway

Файл конфигурации

/gateway/process/@class (версия >= 0.1)

Каноническое имя класса, обслуживающего данный процесс.

/gateway/process/@ident (версия >= 0.1)

Уникальный идентификатор процесса.

Доступные классы

ru.tms.smpp.gateway.Listener

Предоставляет базовый механизм взаимодействия с Приложением посредством прослушивания указанного порта. Общий вид конфигурации:

 class="ru.tms.smpp.gateway.Listener" ident="@ident">  host="@host" port="@port" />  limit="@limit" timeout="@timeout" />  class="@class" /> 

В скобках после наименования параметра приводится необходимая версия Приложения. Параметры, отсутствующие в используемой версии, игнорируются.

process/@ident (версия >= 0.1)

Уникальный идентификатор процесса.

process/listen/@host (версия >= 0.1)

Имя или IP-адрес хоста, на котором будет открыт порт для прослушивания.

process/listen/@port (версия >= 0.1)

Номер порта, который будет открыт.

process/clients/@limit (версия >= 0.4)

Ограничение на количество одновременно установленных соединений.

process/clients/@timeout (версия >= 0.1)

Таймаут (в секундах) ожидания активности на установленном соединении.

process/service/@class (версия >= 0.1)

Каноническое имя класса, обрабатывающего поступающие соединения. В качестве классов могут выступать следующие:

ru.tms.smpp.gateway.Injector

Принимает сообщения в заданном формате и помещает их в очередь исходящих сообщений. Дополнительные установки в конфигурации Listener отсутствуют.

Параметры принимаемых сообщений должны иметь вид имя=значение и завершаться символом перевода строки \n . Окончание ввода параметров обозначается символом \n .

Обязательные параметры:
process - идентификатор процесса Transceiver (маршрут отправки);
source - источник сообщения (сервисный номер);
destination - назначение сообщения (абонентский номер);
body - тело сообщения. Символы перевода строки и возврата каретки должны быть заменены на последовательность \n .

Необязательные параметры:
type - тип сообщения, может принимать значения:
hidden - сообщение будет принято абонентским оборудованием, но не отобразится на экране и не будет сохранено в памяти;
flash - сообщение будет немедленно отображено на экране при доставке на абонентское оборудование.

Пример:

 class="ru.tms.smpp.gateway.Listener" ident="Injector">  host="localhost" port="54321" />  limit="10" timeout="5" />  class="ru.tms.smpp.gateway.Injector" /> 

ru.tms.smpp.gateway.FileInjector

Принимает поток строк и помещает их в файл для последующей оффлайновой обработки и размещения в очереди исходящих сообщений. Перед отправкой строк необходимо отправить идентификатор набора для возобновления передачи в случае неудачно завершившейся предыдущей попытки, либо 0 для обозначения передачи нового набора. Строки в передаваемом потоке должны иметь вид:

Идентификатор_Процесса_Transceiver;Сервисный_Номер;Номер_Абонента;Текст\n

Если Номер_Абонента начинается с символа h, то сообщение будет принято абонентским оборудованием, но не отобразится на экране и не будет сохранено в памяти; если с символа f, то сообщение будет немедленно отображено на экране при доставке на абонентское оборудование.

При окончании чтения процесс может сгенерировать одно из следующих сообщений:

200 Received @x byte(s)

где @x — количество прочитанных байтов.

404 Set not found

в случае неверно указанного набора.

Пример:

 class="ru.tms.smpp.gateway.Listener" ident="Injector">  host="localhost" port="54321" />  limit="10" timeout="5" />  class="ru.tms.smpp.gateway.FileInjector" /> 

ru.tms.smpp.gateway.StreamInjector

Принимает поток строк и немедленно размещает в очереди исходящих сообщений. Строки в передаваемом потоке должны иметь вид:

Идентификатор_Процесса_Transceiver;Сервисный_Номер;Номер_Абонента;Текст\n

Если Номер_Абонента начинается с символа h, то сообщение будет принято абонентским оборудованием, но не отобразится на экране и не будет сохранено в памяти; если с символа f, то сообщение будет немедленно отображено на экране при доставке на абонентское оборудование.

При окончании чтения процесс может сгенерировать сообщение следующего вида:

200 Accepted, @count message(s) enqueued within set @set

где @count — количество размещённых сообщений;
@set — идентификатор набора.

Пример:

 class="ru.tms.smpp.gateway.Listener" ident="Injector">  host="localhost" port="54321" />  limit="10" timeout="5" />  class="ru.tms.smpp.gateway.StreamInjector" /> 

ru.tms.smpp.gateway.Transceiver
ru.tms.smpp.gateway.Receiver
ru.tms.smpp.gateway.Transmitter

Осуществляют взаимодействие с SMS- или USSD-центром оператора с использованием интерфейса SMPP версии 3.4 по протоколу TCP. Общий вид конфигурации:

 class="@class" ident="@ident">  host="@host" port="@port" bind="@bind" syncmode="@syncmode" retry="@retry" />  ussd="@ussd" id="@id" password="@password" type="@type" ton="@ton" npi="@npi" address-range="@address-range">  ton="@ton" npi="@npi" />  ton="@ton" npi="@npi" />  default="@default" default-segment-size="@default-segment-size" alternate="@alternate" alternate-segment-size="@alternate-segment-size">  dcs="@dcs" encoding="@encoding" />   enquire-link="@enquire-link" delivery-delta="@delivery-delta" delivery-retry-count="@delivery-retry-count" throttling-delay="@throttling-delay" />  smscid-in-response="@smscid-in-response" smscid-in-delivery-receipt="@smscid-in-delivery-receipt" /> process/@class (версия >= 1.27)

Каноническое имя класса, соответствующее выбранному режиму работы транспортного соединения.

В версиях Приложения >= 1.27 доступны три класса:

ru.tms.smpp.gateway.Transceiver ru.tms.smpp.gateway.Receiver ru.tms.smpp.gateway.Transmitter

В более ранних версиях доступен только класс

ru.tms.smpp.gateway.Transceiver process/@ident (версия >= 0.1)

Уникальный идентификатор процесса.

process/connection/@host (версия >= 0.1)

Имя или IP-адрес SMS- или USSD-центра, с которым будет установлено соединение.

process/connection/@port (версия >= 0.1)

Номер порта, на котором будет установлено соединение.

process/connection/@bind (версия >= 0.9)

Имя или IP-адрес локального хоста, с которого будет установлено соединение.

process/connection/@syncmode (версия >= 1.3)

Флаг, указывающий на синхронный (значение 1) или асинхронный (значение 0) режим обмена данными с SMS- или USSD-центром.

process/connection/@retry (версия >= 0.1)

Пауза (в секундах) между повторными попытками установки соединения.

process/system (версия >= 0.1)

Данные параметры предоставляются оператором мобильной связи.

process/system/@ussd (версия >= 0.8)

Флаг, указывающий на тип подключения: 0 для SMSC, 1 для USSDC.

Поскольку кодировка текста сообщений в значительной степени зависит от реализации SMS- и USSD-центров, Приложение предоставляет механизм детектирования т. н. "базовой" и "альтернативной" кодировок. В подсекциях charset могут быть определены дополнительные кодировки.

process/charsets/@default (версия >= 0.2)

Идентификатор базовой кодировки. Должен совпадать с параметром @dcs одной из подсекций charset.

process/charsets/@default-segment-size (версия >= 0.4)

Максимальный размер сегментов сообщения, отправляемых в базовой кодировке.

process/charsets/@alternate (версия >= 0.2)

Идентификатор альтернативной кодировки. Должен совпадать с параметром @dcs одной из подсекций charset.

process/charsets/@alternate-segment-size (версия >= 0.4)

Максимальный размер сегментов сообщения, отправляемых в альтернативной кодировке.

process/charsets/charset/@dcs (версия >= 0.2)

Идентификатор схемы кодировки данных

periods/@enquire-link (версия >= 0.4)

Период (в секундах) между повторными отправками пакетов enquire_link.

periods/@delivery-delta (версия >= 0.9)

Период (в секундах) между повторными попытками доставки сообщений в случае восстановимых ошибок при передаче (например, ESME_RMSGQFUL или ESME_RSYSERR).

periods/@delivery-retry-count (версия >= 0.9)

Количество попыток повторных отправок сообщений в случае восстановимых ошибок при передаче.

periods/@throttling-delay (версия >= 0.2)

Задержка (в секундах) перед последующими попытками доставки сообщений в случае получения от SMSC ответа со статусом ESME_RTHROTTLED.

parameters/@smscid-in-response (версия >= 0.8)

Основание счисления индентификатора сообщения на стороне SMSC, полученного с пакетом submit_sm_resp.

parameters/@smscid-in-delivery-receipt (версия >= 0.9)

Основание счисления индентификатора сообщения в уведомлении о доставке (delivery_receipt).

Пример:

 class="ru.tms.smpp.gateway.Transceiver" ident="BeelineMoscow">  host="1.2.3.4" port="54321" bind="0.0.0.0" syncmode="0" retry="60" />  ussd="0" id="System_ID" password="Drowssap" type="ESME" ton="0" npi="0" address-range="">  ton="0" npi="0" />  ton="0" npi="0" />  default="0" default-segment-size="155" alternate="8" alternate-segment-size="65">  dcs="0" encoding="ie.omk.smpp.util.DefaultAlphabetEncoding" />  dcs="8" encoding="ie.omk.smpp.util.UCS2Encoding" />  enquire-link="60" delivery-delta="2" delivery-retry-count="10" throttling-delay="5" />  smscid-in-response="10" smscid-in-delivery-receipt="16" /> 

ru.tms.smpp.gateway.Queue

Осуществляет управление очередями входящих, исходящих и сегментированных сообщений, регистрацию статистических сведений. Общий вид конфигурации:

 class="ru.tms.smpp.gateway.Queue" ident="@ident">  flush-statistics="@flush-statistics" expire-treshold="@expire-treshold" output-usage="@output-usage" />  database-driver="@database-driver" sink-to="@sink-to" />  incoming="@incoming" segments="@segments" outgoing="@outgoing" /> process/@ident (версия >= 0.1)

Уникальный идентификатор процесса.

process/periods/@flush-statistics (версия >= 0.1)

Интервал (в секундах) между попытками сохранения накопленных сведений в БД.

process/periods/@expire-treshold (версия >= 0.2)

Срок (в секундах) ожидания поступления всех частей сегментированного сообщения. В том случае, если в течение указанного срока не удалось получить все сегменты, остальные, принадлежащие данному набору сегментов, удаляются.

process/periods/@output-usage (версия >= 0.4)

Интервал (в секундах) между уведомлениями об интенсивности утилизации очередей.

process/statistics/@database-driver (версия >= 0.1)

Каноническое имя класса-обработчика соединения с БД.

process/statistics/@sink-to (версия >= 0.1)

Имя источника данных в формате URI.

process/cache/@incoming (версия >= 0.1)

Путь к файлу для сохранения входящих сообщений между запусками Приложения.

process/cache/@segments (версия >= 0.1)

Путь к файлу для сохранения сегментов входящих сообщений между запусками Приложения.

process/cache/@outgoing (версия >= 0.1)

Путь к файлу для сохранения исходящих сообщений и их сегментов между запусками Приложения.

Пример:

 class="ru.tms.smpp.gateway.Queue" ident="MySQLQueue">  flush-statistics="20" expire-treshold="1440" output-usage="60" />  database-driver="com.mysql.jdbc.Driver" sink-to="jdbc:mysql://localhost/smpp?user=smpp&password=password" />  incoming="/opt/gateway/cache/incoming.obj" segments="/opt/gateway/cache/segments.obj" outgoing="/opt/gateway/cache/outgoing.obj" /> 

ru.tms.smpp.gateway.Service

Выполняет обработку сообщений, используя внешнее приложение. Обмен данными с приложением выполняется по протоколу HTTP(S) методом GET. Общий вид конфигурации:

 class="ru.tms.smpp.gateway.Service" ident="@ident">  read-timeout="@read-timeout" defer-responses="@defer-responses" encoding="@encoding" source-name="@source-name" />   number="@number" /> process/@ident (версия >= 0.1)

Уникальный идентификатор процесса.

process/service/@read-timeout (версия >= 0.1)

Таймаут (в секундах) ожидания ответа от внешнего приложения.

process/service/@defer-responses (версия >= 0.8)

В обычном режиме каждый запрос от абонента сопровождается отправкой ответного сообщения с указанного абонентом сервисного номера (значение 0). В случае, если необходимо избежать отправки ответного сообщения, следует указать значение 1.

process/service/@encoding (версия >= 0.1)

Кодировка данных, получаемых от внешнего приложения (CP1251, KOI8-R, UTF-8 и т. п.)

process/service/@source-name (версия >= 0.1)

Имя источника данных в формате URI. Доступно использование следующих макроопределений:
@body@ - запрос, полученный от абонента;
@source@ - идентификатор абонентского терминала (например, номер телефона);
@destination@ - сервисный номер, на который поступил запрос;
@transport@ - идентификатор процесса Transeiver, с помощью которого был получен запрос.

process/phones/phone/@number (версия >= 0.1)

Обслуживаемый сервисный номер.

Пример:

 class="ru.tms.smpp.gateway.Service" ident="HTTPService">  read-timeout="10" defer-responses="0" encoding="UTF-8" source-name="http://services.example.org/sms/service.php?request=@body@" />   number="1234" />  number="2345" />  number="3456" /> 

ru.tms.smpp.gateway.Filter

Выполняет предварительную обработку сообщений, используя внешнее приложение, написанное на языке Rhino (модификация Javascript) или на другом, поддерживаемом Java Scripting Engine.

Общий вид конфигурации:

 class="ru.tms.smpp.gateway.Filter" ident="@ident">  path="@path" rescan-interval="@rescan-interval" /> process/@ident (версия >= 0.1)

Уникальный идентификатор процесса.

process/filter/@path (версия >= 1.3)

Каталог, в котором размещены файлы с функциональным описанием фильтров.

process/filter/@rescan-interval (версия >= 1.3)

Период (в секундах) пересканирования изменений в составе функционального описания фильтров.

Пример:

 class="ru.tms.smpp.gateway.Filter" ident="CommonFilters">  path="/opt/gateway/filters/" rescan-interval="5" /> 

Стадии вызова фильтров

Получение запроса от SMSC (USSDC) — LinkToTransport.
Передача запроса на внешний обработчик — ServiceToHandler.
Получение ответа от внешнего обработчика — HandlerToService.
Передача ответа на SMSC (USSDC) - TransportToLink.

Определение точек входа в обработчики фильтров (Rhino)

function LinkToTransport( message, transport ) { // Методы объекта message message.getCreated(); // Возвращает время появления сообщения в памяти в unixtime. message.getTLV(); // Возвращает таблицу TLV message.getDestination(); // Возвращает назначение сообщения (сервисный или абонентский номер). message.getId(); // Возвращает идентификатор сообщения, присвоенный при инициализации. message.getRetry(); // Возвращает количество попыток доставки сообщения на SMSC. message.getSource(); // Возвращает источник сообщения (сервисный или абонентский номер). message.getState(); // Возвращает состояние сообщения[1] message.getSMSCId(); // Возвращает идентификатор сообщения, присвоенный SMSC. message.getText(); // Возвращает текст сообщения. message.getTransport(); // Возвращает идентификатор SMSC (транспорт сообщения). message.getType(); // Возвращает тип сообщения[2] message.getMsgRefNum(); // Возвращает идентификатор последовательности // для мультисегментного сообщения. message.getRetryCount(); // Возвращает количество попыток отправки. message.getTotalSegments(); // Возвращает количество сегментов для мультисегментного сообщения. message.getSegmentSeqNum(); // Возвращает номер сегмента в последовательности // для мультисегментного сообщения. message.getTransactionId(); // Возвращает идентификатор транзакции. message.getSetId(); // Возвращает идентификатор набора сообщений или // пустую строку, если идентификатор не был ранее задан. message.setText( text ); // Устанавливает содержимое сообщения. // [1] Состояния сообщений 'RECEIVED' — сообщение поступило из SMSC (USSDC) в очередь; 'PROCESSING' — сообщение передано в сервис; 'PENDING' — сообщение находится в очереди на передачу в SMSC (USSDC); 'DELIVERING' — сообщение передано в SMSC (USSDC), ожидается подтверждение получения; 'DELIVERED' — сообщение получено; 'UNDELIVERABLE' — сообщение не могло быть доставлено. // [2] Типы сообщений 'REGULAR' — обычное сообщение; 'FLASH' — сообщение отображается на абонентском устройстве по факту получения; 'HIDDEN' — факт получения сообщения не регистрируется абонентским устройством. // Методы объекта transport transport.getIdent(); // Возвращает идентификатор транспорта. transport.getLogger(); // Возвращает ссылку на регистратор событий. } // LinkToTransport() function ServiceToHandler( message, service ) { // Методы объекта message см. в описании LinkToTransport() // Методы объекта service service.getIdent(); // Возвращает идентификатор сервиса. service.getPhones(); // Возвращает список назначенных сервисных номеров. service.getLogger(); // Возвращает ссылку на регистратор событий. // Не выполнять запрос к внешнему обработчику (выполняется по умолчанию) result.setProperty( 'performHttpRequest', 'false' ); } // ServiceToHandler() function HandlerToService( message, service ) { // Методы объекта message см. в описании LinkToTransport() // Методы объекта service см. в описании ServiceToHandler() } // HandlerToService() function TransportToLink( message, transport ) { // Методы объекта message см. в описании LinkToTransport() // Методы объекта transport см. в описании LinkToTransport() } // TransportToLink()

Пример:

function ServiceToHandler( message, service ) { if ( service.getIdent() == "HTTPService" ) { message.setText( "Услуга временно недоступна" ); result.setProperty( "performHttpRequest", "false" ); } }