Описание 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 служит для описания возможностей оператора и может содержать следующие параметры:
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 описывает процесс отправки сообщения. Каждый узел может быть как константой, так и выражением на 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, время доставки не указано и проверка не отключена в настройках программы