Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Модуль отправки SMS сообщений. Может использовать локальный и удалённые шлюзы отправки смс.

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

Table of Contents

Возможности

  • Восстановление пароля через SMS

  • Отправка пароля администратором

  • Отправка отчётов модулем Ureports

  • Отправка SMS сообщений модулем Msgs

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

Для отправки СМС сообщений используются шлюзы:


Установка

Создать таблицы в базе.

Code Block
languagebash
mysql --default-character-set=utf8  -D abills < db/Sms.sql

Подключение модуля. abills/libexec/config.pl

Code Block
languagebash
@MODULES = (
          'Sms'
          );


Настройка

Turbosms

Скопировать модуль в рабочую папку

Code Block
languagebash
cp Turbosms.pm /usr/abills/Abills/modules/Sms/

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

Параметры конфигурации модуля: abills/libexec/config.pl


$conf{SMS_TURBOSMS_DBHOST} = '94.249.146.189';Хост базы данных
$conf{SMS_TURBOSMS_DBNAME} = 'users';База данных
$conf{SMS_TURBOSMS_DBCHARSET}= 'utf8';Кодировка
$conf{SMS_TURBOSMS_USER} = 'sms_test';Логин
$conf{SMS_TURBOSMS_PASSWD} = 'sms_test';Пароль
$conf{SMS_TURBOSMS_TABLE} = 'sms_test';Таблица
$conf{SMS_TURBOSMS_SEND_TIME}= '12:00:00';Время отправки
$conf{SMS_TURBOSMS_SEND_FEES}= 1;Стоимость за отправку одного СМС
$conf{SMS_TURBOSMS_DEBUG} = 6;Режим отладки 
можно использовать значения от 1 до 6 
Режимы: 
0 - Нормальный режим работы 
3 - Отображать запросы при отправке сообщений 
5,6 - Только отображать запросы отправки сообщений без их реальной отправки 
$conf{SMS_TURBOSMS_MESSAGE_HEADER}='Test ISP';Шапка смс сообщения
$conf{SMS_TURBOSMS_SIGN}='your_sign';Подпись - обязательный параметр. Берётся из личного кабинета Turbosms

В своей учетной записи на сайте turbosms.ua нужно задать шлюз и создать подпись

Проверка работы с шлюзом MySQL

Code Block
languagebash
mysql -P 3306 -h 94.249.146.189 -u ЛогинШлюза -p users

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

Code Block
languagebash
MySQL [users]> SELECT * FROM ЛогинШлюза;

Если смс есть в базе, но не отправляются пользователям - посмотрите на статус записи и код ошибки.

Epochtasms

Сайт: ePochta sms

Для работы с службой нужно установить Perl модуля JSON 

Параметры конфигурации модуля: 
abills/libexec/config.pl 

$conf{SMS_EPOCHTASMS_OPENKEY}='xxx';Публичный ключ
$conf{SMS_EPOCHTASMS_PRIVATEKEY}='xxx';Приватный ключ
$conf{SMS_EPOCHTASMS_SENDER}='sender_name';Название провайдера. Регистрируется в меню Регистрация имен отправителей аккаунта Epochta
$conf{SMS_EPOCHTASMS_TEST_MODE}=1;Режим отладки

Настройка службы Epochtasms 

После настройки перейдите в меню Регистрация имен отправителей и зарегистрируйте Ваш идентификатор. После регистрации занесите его в переменную $conf{SMS_EPOCHTASMS_SENDER}='sender_name';.


Littlesms

 

Для работы с службой нужно установить Perl модуля JSON и программу CURL

Параметры конфигурации модуля: 
abills/libexec/config.pl 

$conf{SMS_LITTLESMS_USER}='user';Логин, указанный при регистрации
$conf{SMS_LITTLESMS_KEY}='key';API-ключ пользователя или API-аккаунта
$conf{SMS_LITTLESMS_TEST_MODE}=1;Режим отладки

Настройка службы Epochtasms.

Smsc

Для работы с службой нужно установить Perl модуля JSON и программу CURL.

Параметры конфигурации модуля: 
abills/libexec/config.pl 

$conf{SMS_SMSC_USER}='user';Логин указанный при регистрации
$conf{SMS_SMSC_PASSWORD}='key';Пароль Клиента
$conf{SMS_SMSC_TEST_MODE}=1;Режим отладки

Настройка службы Smsc.

Txtlocal

textlocal

Сайт: http://www.txtlocal.com 
Страна: Испания 

$conf{SMS_TXTLOCAL_APIKEY}='xxx'Ключ авторизации. Если используется ключ то hash и логин игнорируются. 
Получить ключ https://control.txtlocal.co.uk/settings/apikeys/
$conf{SMS_TXTLOCAL_USER}='user';Имя абонента
$conf{SMS_TXTLOCAL_HASH}='key';Hash верификации
$conf{SMS_TXTLOCAL_SENDER}='sms sender';Название отправителя
$conf{SMS_TXTLOCAL_TEST_MODE}=1;Режим отладки 
1 - 
2 - Система делает тестовую отправку без снятия денег с депозита 
6 - Отображать выполняемые билингом команды для отправки почты

Jasmin SMS

Jasmin - локальный смс-шлюз предназначенный для отправки СМС-сообщений напрямую в центры сообщений телекоммуникационных компаний. Шлюз использует стандартный протокол SMPP, который поддерживает большинство операторов мобильной связи.

$conf{SMS_JASMIN_USER}='username';Имя локального абонента
$conf{SMS_JASMIN_PASSWD}='pswd';Пароль
$conf{SMS_JASMIN_SENDER}='Company';Подпись сообщения (имя отправителя)
$conf{SMS_JASMIN_SERVER} = 'http:/ /localhost:1401/';Сервер Jasmin

Установка собственного сервера Jasmin - http://docs.jasminsms.com/en/latest/installation/index.html .

Smseagle

SMSEagle - железный SMS шлюз.

$conf{SMS_SMSEAGLE_USER}='username';Логин
$conf{SMS_SMSEAGLE_PASSWD}='pswd';Пароль
$conf{SMS_SMSEAGLE_SERVER} = 'http:/ /10.0.15.2/index.php';Адрес по которому доступен API

Sms Broker

Параметры настройки

$conf{SMS_PLAYMOBILE_URL}='http';
$conf{SMS_PLAYMOBILE_LOGIN}='login';
$conf{SMS_PLAYMOBILE_PASS}='pass';
$conf{SMS_PLAYMOBILE_DEBUG}=1;Включение режима отладки с выводом информации по запросам

Playmobile

Параметры настройки

$conf{SMS_BROKER_URL}='http';
$conf{SMS_BROKER_LOGIN}='login';
$conf{SMS_BROKER_PASS}='pass';
$conf{SMS_BROKER_NAME}='provider name';
$conf{SMS_BROKER_DEBUG}=1;Включение режима отладки с выводом информации по запросам

IDM.KG

$conf{SMS_IDM_LOGIN} ='username';Логин
$conf{SMS_IDM_PASSWORD ='pswd';Пароль
$conf{SMS_IDM_SENDER} = 'sms sender';Подпись сообщения (имя отправителя)
$conf{SMS_IDM_SERVER} = 'http:/ /localhost:1401';Cервер по которому доступен IDM.KG

Bulksms

$conf{SMS_BULKSMS_LOGIN} ='username';Логин
$conf{SMS_BULKSMS_PASSWORD} ='pswd';Пароль
$conf{SMS_BULKSMS_SENDER} = 'sms sender';Подпись сообщения (имя отправителя)
$conf{SMS_BULKSMS_API} = 'http:/ /10.0.15.2/index.php';Адрес по которому доступен API

Nikita

$conf{SMS_NIKITA_URL} = 'http://www.nikita.am/';Сервер обрабатывающий запрос
$conf{SMS_NIKITA_LOGIN} = 'login';Логин
$conf{SMS_NIKITA_PASSWORD} = 'password';Пароль
$conf{SMS_NIKITA_SERVICE_NUMBER} = 'service_num';Номер предоставленный сервисом

Universal_sms_module

Описание

Для работы со службой нужно установить программу CURL.

Параметры конфигурации модуля: 
abills/libexec/config.pl 

$conf{SMS_UNIVERSAL_URL} = 'http://URL?number=%NUMBER%&message=%MESSAGE%';

URL для отправки смс

URL - Сервер обрабатывающий запрос 

В запрос прописываем параметры в следующем формате:

НАЗВАНИЕ_ПАРАМЕТРА=%ПАРАМЕТР%

НАЗВАНИЕ_ПАРАМЕТРАНазвание может быть любое какое вам нужно для запроса
%ПАРАМЕТР%

Доступные параметры:

  %NUMBER% - номер телефона абонента

  %MESSAGE% - Текст сообщения

  %HEX_MESSAGE% - Текст сообщения в хексе.


Все остальные параметры прописываем непосредственно в запрос

Пример: 

login=User&pass=123456


Пример:

http://192.168.1.1/index.cgi?login=User&pass=123456&number=%NUMBER%&message=%MESSAGE%


CMD

Описание

Параметры конфигурации модуля: 
abills/libexec/config.pl 

$conf{SMS_CMD} = '/path/to/file NUMBER=%NUMBER% MESSAGE=%MESSAGE%';

Путь и параметры для отправки параметров

Параметны для програмы прописываем в следующем формате:

НАЗВАНИЕ_ПАРАМЕТРА=%ПАРАМЕТР%

НАЗВАНИЕ_ПАРАМЕТРАНазвание может быть любое какое вам нужно для запроса
%ПАРАМЕТР%

Доступные параметры:

  %NUMBER% - номер телефона абонента

  %MESSAGE% - Текст сообщения

Все остальные параметры прописываем непосредственно в запрос

Пример: 

login=User&pass=123456

Установка Gammu для отправки с ubs модема

Code Block
languagebash
sudo apt install gammu

для настройки используем команду

Code Block
languagebash
gammu-config

прописывает в коком порту находиться USB модем

Запускаем утилиту идентификации модема:

Code Block
languagebash
sudo gammu identify

Если все хорошо - вывод примерно такой

Code Block
languagebash
Устройство     : /dev/ttyUSB0
Производитель  : Huawei
Модель         : E1550 (E1550)
Прошивка       : 11.608.14.11.222
IMEI           : 359124036500000
Номер SIM IMSI : 255061025200000

Все модуль готов к отправке.

смс можно отправить спомощью команды 

Code Block
languagebash
gammu sendsms TEXT 082111978168 -text "Halooo .."


Sms Отчёты

Отчёты находятся в меню  Отчёт>Sms.

Система предоставляет полный отчёт по отправленным сообщениям.

Синхронизация статусов

Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.

Code Block
languagebash
/usr/abills/libexec/billd sms_status


Дополнительные настройки

$conf{SMS_LIMIT} = 3;Ограничение количества отправляемых смс одному пользователю в день
$conf{SMS_FEES}='2.00';Оплата за отправку смс
$conf{SMS_TRANSLIT}=1;Транслитерировать отправляемые сообщения
$conf{SMS_DEBUG}=1;Глобальный режим отладки для всех систем
$conf{SMS_NUMBER}='[0-9]{12}';Проверка правильности номера отправки. 
Формат номера по умолчанию [0-9]{12} 
Украина : [0-9]{12} 
Россия: [0-9]{11}
$conf{SMS_NUMBER_EXPR}='search_side/replace_side;search_side/replace_side';Регулярные выражения преобразования номера. 
search_side/replace_side - права левая часть регулярного выражения 
$number - зарезервированная переменная номера 
Регулярные выражения разделяются точкой с запятой (;) 
Система завершает преобразовании номера после первого удачного преобразования 


Пример обработки номера регулярным выражением:

Code Block
languagebash
$conf{SMS_NUMBER_EXPR} = '^([0-9]{4,6})$/74832;'. 
    '^2([0-9]{6})$/7483;'.
    '(^9[0-9]{9})/7;'. 
    '^810/;'.
    '^8/7;'. 
    '^*8/7;'. 
    '^4832/74832';

Изменения номеров формата 050xxxxxxx на +380xxxxxxx:

Code Block
languagebash
$conf{SMS_NUMBER_EXPR} = '^0/+380;'; 


sms_passwor_recovery.tplШаблон восстановления пароля

Работа с шаблонами

Sms callback - шлюз для клиентских запросов посредством Sms.

Подключение

Code Block
languagebash
cd /usr/abills/cgi-bin/
ln -s ../Abills/modules/Sms/sms_callback.cgi sms_callback.cgi
chmod +x sms_callback.cgi

Настройки

$conf{SMS_CALLBACK_LANGUAGE}='russian';Настройка для загрузки нужного словаря


Пример запроса:

https://192.168.1.169:9443/sms_callback_cgi?apikey=1234567890abcdef&sender=0681234567&text=123+03+12345678

ПараметрОписание
https://192.168.1.169:9443/sms_callback_cgiURL для шлюза обработки запросов
apikeyПараметр Apikey из информации админстратора. Рекомендуется создавать отдельного администратора от имени которого будут выполняться команды.
senderНомер телефона отправителя
textТекст самого сообщения


Пример SMS сообщения: 123+03+12345678, где

123Это UID абонента
03Тип команды
12345678Дополнительная информация

Все поддерживаемые типы команды

01Отправит шаблон internet_user_memo_sms.tpl пользователю
02Отправит шаблон sms_callback_user_info.tpl пользователю
03Выполняет внешнюю команду для пользователя. Например, изменения пароля Wi-fi, где параметр «Дополнительная информация» будет использоваться как новый Wi-fi пароль
04Переводит пользователя в статус Приостановлен
05Переводит пользователя в статус Активно
06Перевод денег другому абоненту. Пример команда 123+06+321+99  переведет сумму 99 пользователю с uid 321.