Описание XML файла шлюза - evd/isendsms_gates GitHub Wiki

Скрипт шлюза представляет собой XML-файл со следующей структурой:

<?xml version="1.0" encoding="UTF-8"?>
  <gate>
  <name>GateName</name>
  <caption>Имя оператора</caption>
  <type>SMS</type>
  <class>HTTP</class>
  <version>1</version>
  <priority>10</priority>
  <prefixlist>
    <prefix start="+7 901100" end="+7 902200" format="1.3.7" tag="1"/>
    <prefix start="+7 904"/>
  </prefixlist>
  <info>
    <maxsymbols>160</maxsymbols>
    <maxunicodesymbols>70</maxunicodesymbols>
    <supportflash>0</supportflash>
    <supportdtdelivery>0</supportdtdelivery>
    <supportcheckdelivery>1</supportcheckdelivery>
    <supportunicode>1</supportunicode>
    <captcha>1</captcha>
    <gateurl>Страница отправки</gateurl>
  </info>
  <classprops>
    <encoding>UTF-8</encoding>
    ....
  </classprops>
</gate>

Параметры описания шлюза

name - внутреннее уникальное имя оператора, обычно совпадает с именем файла. Рекомендуется имя давать латинскими буквами без пробелов

caption - наименование оператора

type - тип шлюза: SMS или MMS

class - способ отправки сообщения. В данный момент программа поддерживает только 1 способ - HTTP, то есть через web-форму на сайте оператора

version - версия оператора. Представляет целое положительное число, увеличивающееся на 1 при каждом изменении оператора

priority - приоритет оператора. При совпадении префиксов операторы отображаются в порядке убывания приоритета. По умолчанию 10

prefixlist - список диапозонов номеров для автоопределения операторов.

Каждый диапозон описывается через узел prefix, который имеет следующие параметры:

start - начало диапазона

end - конец диапазона. Необязательно если конец совпадает с началом диапазона

format - формат номера. Описывает количество цифр используемых для обозначения страны, префикса и номера. По умолчанию 1.3.7

tag - метка диапазона. Используется на свое усмотрение, например для отправки через альтернативные web-формы для определенного диапазона

Описание блока info

Блок info служит для описания возможностей оператора и может содержать следующие параметры:

maxsymbols - максимальное количество латинских символов

maxunicodesymbols - максимальное количество русских символов

supportflash - оператор поддерживает отправку быстрых (flash) сообщений. Возможные значения 0/1

supportdtdelivery - оператор поддерживает указание времени доставки сообщения. Возможные значения 0/1

supportcheckdelivery - оператор поддерживает проверку статуса доставки сообщения. Возможные значения 0/1

supportunicode - оператор поддерживает символы национального языка (например русский). Возможные значения 0/1

captcha - оператор требует ввода кода подтверждения. Возможные значения 0/1

gateurl - страница отправки. Справочная инфорация отображающаяся в информации об операторе

Дополнительные поля для MMS-сообщений:

supportmultimedia - оператор поддерживает вложения изображения или аудиофайла. Возможные значения 0/1.

supportaudio - оператор поддерживает вложение аудиофайла. Возможные значения 0/1.

supportimage - оператор поддерживает вложение изображения. Возможные значения 0/1.

multimediacount - максимальное количество допустимых вложений. В данный момент поддерживается только 1 вложение.

maxmultimediasize - максимальный размер вложения в байтах

Описание блока classprops

Блок classprops описывает процесс отправки сообщения. Каждый узел может быть как константой, так и выражением на Pascal заключенное в eval(). Возможные поля следующие:

encoding - используемая кодировка (Windows-1251, UTF-8 итд)

handleredirects - обрабатывать перенаправления URL (ответы 301 и 302)

sendinit - выполняется при начале отправки сообщения

pageurl - URL страницы с формой отправки

imageurl - скрипт возвращающий URL изображения с кодом

posturl - URL отправки сообщения

multipart - если 1, то способ кодирования multipart/form-data, иначе application/x-www-form-urlencoded

referer - произвольный referer в HTTP-запросе

custommime - произвольный тип данных

postdata - скрипт для формирования данных для отправки

dontloadresult - после отправки не присваивать объекту Html страницу с результатом

success - скрипт проверки успешной отправки сообщения. Возращает true/false

error - скрипт формирования текста ошибки при отправке. Возвращает строку с текстом ошибки

uploadmultimedia - для MMS-сообщений перед отправкой сообщения выполнить загрузку мультимедиа (узлы mu_*)

Узлы для загрузки мультимедиа:

mu_posturl - URL отправки мультимедиа

mu_multipart - если 1, то способ кодирования multipart/form-data, иначе application/x-www-form-urlencoded

mu_referer - произвольный referer в HTTP-запросе

mu_custommime - произвольный тип данных

mu_postdata - скрипт для формирования данных для отправки

mu_dontloadresult - после отправки не присваивать объекту Html страницу с результатом

mu_success - скрипт проверки успешной отправки мультимедиа. Возращает true/false

mu_error - скрипт формирования текста ошибки при отправке мультимедиа. Возвращает строку с текстом ошибки

Узлы для проверки статуса доставки

cd_method - метод запроса GET или POST

cd_url - URL для проверки статуса при cd_method = GET

cd_posturl - URL для POST-запроса при cd_method=POST

cd_postdata - данные для POST-запроса (обрабатывается аналогично postdata)

cd_success - скрипт проверки успешной отправки сообщения. Возращает (1)true, false или строку WAIT если сообщение в процессе отправки

cd_error - скрипт формирования текста ошибки при отправке. Возвращает строку с текстом ошибки

Описание процесса отправки

Процесс отправки выглядит следующим образом:

1.Выполняется скрипт sendinit

2.Загружается страница (узел pageurl)

3.Загружается код (узел imageurl)

4.Для MMS-сообщений происходит отправка мультимедиа, если uploadmultimedia = 1 (узлы mu_*)

5.Отправка сообщения

6.Проверка статуса доставки (узлы cd_*), если supportcheckdelivery = 1, время доставки не указано и проверка не отключена в настройках программы

⚠️ **GitHub.com Fallback** ⚠️