Модуль отправки SMS сообщений. Может использовать локальный и удалённые шлюзы отправки смс.
При отправке СМС система передает плагину текст сообщения и номер адресата. Плагин по протоколу шлюза отправляет данные на СМС шлюз и получает статус отправки, также заносит даныне по отправке СМС сообщения в базе.
Восстановление пароля через SMS
Отправка пароля администратором
Отправка отчётов модулем Ureports
Отправка SMS сообщений модулем Msgs
При воcстановлении пароля и отправки сообщений через техническую поддержку номер телефона берётся с учётной записи абонента, а при отправке отчётов из заполненного поля отчётов.
Для отправки СМС сообщений используются шлюзы:
|
Создать таблицы в базе.
mysql --default-character-set=utf8 -D abills < db/Sms.sql |
Подключение модуля. abills/libexec/config.pl
@MODULES = ( 'Sms' ); |
Скопировать модуль в рабочую папку
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
mysql -P 3306 -h 94.249.146.189 -u ЛогинШлюза -p users |
Далее вводите пароль шлюза. Название таблицы, с которой вы работаете в базе совпадает с логином шлюза. Посмотреть какие сообщения были занесены в таблицу, можно командой
MySQL [users]> SELECT * FROM ЛогинШлюза; |
Если смс есть в базе, но не отправляются пользователям - посмотрите на статус записи и код ошибки.
Сайт: 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';.
Для работы с службой нужно установить 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.
Для работы с службой нужно установить Perl модуля JSON и программу CURL.
Параметры конфигурации модуля:
abills/libexec/config.pl
$conf{SMS_SMSC_USER}='user'; | Логин указанный при регистрации |
---|---|
$conf{SMS_SMSC_PASSWORD}='key'; | Пароль Клиента |
$conf{SMS_SMSC_TEST_MODE}=1; | Режим отладки |
Настройка службы Smsc.
Сайт: 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 - локальный смс-шлюз предназначенный для отправки СМС-сообщений напрямую в центры сообщений телекоммуникационных компаний. Шлюз использует стандартный протокол 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 - железный SMS шлюз.
$conf{SMS_SMSEAGLE_USER}='username'; | Логин |
---|---|
$conf{SMS_SMSEAGLE_PASSWD}='pswd'; | Пароль |
$conf{SMS_SMSEAGLE_SERVER} = 'http:/ /10.0.15.2/index.php'; | Адрес по которому доступен API |
Параметры настройки
$conf{SMS_PLAYMOBILE_URL}='http'; | |
---|---|
$conf{SMS_PLAYMOBILE_LOGIN}='login'; | |
$conf{SMS_PLAYMOBILE_PASS}='pass'; | |
$conf{SMS_PLAYMOBILE_DEBUG}=1; | Включение режима отладки с выводом информации по запросам |
Параметры настройки
$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; | Включение режима отладки с выводом информации по запросам |
$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 |
$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'; | Номер предоставленный сервисом |
Описание
Для работы со службой нужно установить программу 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%
Описание
Параметры конфигурации модуля:
abills/libexec/config.pl
$conf{SMS_CMD} = '/path/to/file NUMBER=%NUMBER% MESSAGE=%MESSAGE%'; | Путь и параметры для отправки параметров |
---|
Параметны для програмы прописываем в следующем формате:
НАЗВАНИЕ_ПАРАМЕТРА=%ПАРАМЕТР%
НАЗВАНИЕ_ПАРАМЕТРА | Название может быть любое какое вам нужно для запроса |
---|---|
%ПАРАМЕТР% | Доступные параметры: %NUMBER% - номер телефона абонента %MESSAGE% - Текст сообщения |
Все остальные параметры прописываем непосредственно в запрос | Пример: login=User&pass=123456 |
sudo apt install gammu |
для настройки используем команду
gammu-config |
прописывает в коком порту находиться USB модем
Запускаем утилиту идентификации модема:
sudo gammu identify |
Если все хорошо - вывод примерно такой
Устройство : /dev/ttyUSB0 Производитель : Huawei Модель : E1550 (E1550) Прошивка : 11.608.14.11.222 IMEI : 359124036500000 Номер SIM IMSI : 255061025200000 |
Все модуль готов к отправке.
смс можно отправить спомощью команды
gammu sendsms TEXT 082111978168 -text "Halooo .." |
Отчёты находятся в меню Отчёт>Sms.
Система предоставляет полный отчёт по отправленным сообщениям.
Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.
/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 - зарезервированная переменная номера Регулярные выражения разделяются точкой с запятой (;) Система завершает преобразовании номера после первого удачного преобразования |
Пример обработки номера регулярным выражением:
$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:
$conf{SMS_NUMBER_EXPR} = '^0/+380;'; |
Sms callback - шлюз для клиентских запросов посредством Sms.
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_cgi | URL для шлюза обработки запросов |
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. |