Описание
Средство связи SMS предназначено для формирования и отправки СМС сообщений через провайдеров, поддерживающих отправку сообщений по протоколам HTTP\HTTPS. Поддерживается работа через HTTP прокси сервер, сжатие трафика, Basic авторизация. Компонента позволяет формировать HTTP GET или POST запросы с параметрами, необходимыми для работы с различными СМС сервис провайдерами.
Описание параметров файла конфигурации config.json
- description: Описание средства связи, например "Sending email via SMTP"
- address: Описание адреса средства связи, например "E-mail address" или ""Phone number"
- re: регулярное выражение с помощью которого можно проверить корректность адреса для средства связи
- <configID>: идентификатор конфигурации средства связи. Для одного средства связи можно сделать несколько конфигураций и в дальнейшем выбирать требуемую конфигурацию при отправке сообщения. Например, в разных конфигурациях одного и того же средства связи могут быть различные провайдеры для отправки СМС.
- transport: объект с параметрами для средства связи. Если значение transport не объект, а строка, то она будет интерпретирована как ссылка на идентификатор конфигурации, из которого необходимо взять параметры средства связи.
- message: объект, который служит в качестве шаблона сообщения для средства связи. Параметр message может отсутствовать.
Описание transport
- protocol:
- http или https. Если не указан, то используется http - method:
- GET или POST. Если не указан, то используется GET - host:
- имя хоста с помощью которого будут отправляться СМС сообщения - port: <0-65536> - TCP порт сервиса для отправки сообщений СМС. Если не указано, то для протокола http будет выбран порт 80, а для http будет выбран порт 443
- path:
- путь в URL до сервиса СМС провайдера. Например в URL https://go.sms.com/services/send_sms/?user=smsUser&pass=smsPass путь будет "/services/send_sms/" - user:
- пользователь для авторизации на сервере СМС сервис провайдера Поддерживается Basic авторизация. Если не указан, авторизация не осуществляется - pass:
- пароль для авторизации на сервере СМС сервис провайдера - family: <4|6> - используется IPv4 или IPv6. Если не указано, используется доступный
- localAddress:
- если указан, то подключение будет осуществляться с указанного IP адреса - timeout:
- таймаут для сокета в миллисекундах. Инициализируется до установки соединения - proxyHost:
- имя хоста HTTP прокси. Если не указан, то прокси не используется - proxyPort: <0-65536> - TCP порт HTTP прокси
- proxyUser:
- пользователь для авторизации на HTTP прокси сервере. Поддерживается Basic авторизация. Если не указан, авторизация не осуществляется - proxyPass:
- пароль для авторизации на HTTP прокси сервере - phonesDiv:
- если СМС сервис провайдер поддерживает одновременную отправку СМС на несколько телефонных номеров, объединенных в строку, с помощью этого параметра можно указать для них разделитель. Если не указан, то используется запятая ',' - phonePrefix:
префикс, который будет устанавливаться перед каждым телефонным номером. Например это может быть префикс выхода на линию '98' или внутренний префикс для междугородних номеров '8' и т.д. - phoneLen:
- длина телефонного номера. Если в телефонном номере символов больше, чем указано в phoneLen, то лишние символы слева будут удалены. Пробелы и тире не считаются символами и будут удалены в любом случае. Если указан параметр phonePrefix, он будет добавлен в начало номера после удаления лишних символов. Таким образом, например если phonePrefix = 8, phoneLen = 10, то номер телефона "+7 913 988 01-23" будет преобразован в "89139880123". - response:
- регулярное выражение для проверки значения, возвращаемого СМС сервис провайдером. Если в response есть переменная %:PHONE:%, она будет заменена на номер телефона, на который было отправлена СМС сообщение. В этом случае проверка возвращаемого значение будет осуществляться для каждого номера телефона, на который было отправлено СМС сообщение.
Описание message
Объект message состоит из параметров и значений, которые будут превращены в GET запрос для отправки СМС сервис провайдеру. В значениях можно использовать следующие переменные:
- %:TEXT:% - заменяется на текст сообщения
- %:SENDER_PHONE:% - заменяется на номер телефона отправителя
- %:PHONES:% - заменяется на номера телефонов получателей, соединенных между собой разделителем, указанным в transport.phonesDiv. По умолчанию это запятая ','
- %:PHONE:% - заменяется на один номер телефона получателя. Если получателей несколько и в message указана переменная %:PHONE:%, то для каждого получателя будет сформирован свой запрос СМС сервис провайдеру.
Пример конфигурации SMS
Данная конфигурация сформирует следующий запрос СМС сервис провайдеру:
https://go.sms.com:443/services/send_sms/?user=userName&pass=password&action=post_sms&sender=<sender phone>&message=<message>&target=<phone1,phone2,phone3>
Отправка сообщения будет осуществлена через HTTP прокси сервер proxy.my-domain.com, порт 3128 с использованием Basic авторизации с пользователем proxyUserName и паролем proxyUserPassword
{ "description": "Sending SMS via SMS provider", "address": "SMS phone number", "re": "^+\\d{11}$", "default": { "transport": { "protocol": "https", "method": "GET", "host": "go.sms.com", "port": 443, "path": "/services/send_sms", "family": 4, "localAddress": "192.168.0.1, "timeout": 30000, "proxyHost": "proxy.my-domain.com", "proxyPort": 3128, "proxyUser": "proxyUserName", "proxyPass": "proxyUserPassword", "phonesDiv": ",", "phonePrefix": 8, "phoneLen": 10, "response": "phone=\"%:PHONE:%\" sms_res_count=\"1\"" }, "message": { "user": "userName", "pass": "password", "action": "post_sms", "sender": "%:SENDER_PHONE:%", "message": "%:TEXT:%", "target": "%:PHONES:%" } } }