Модуль отправки SMS сообщений. Может использовать локальный и удалённые шлюзы отправки смс.
При отправке СМС система передает плагину текст сообщения и номер адресата. Плагин по протоколу шлюза отправляет данные на СМС шлюз и получает статус отправки, также заносит данные по отправке СМС сообщения в базе.
Table of Contents |
---|
Возможности
Восстановление пароля через SMS
Отправка пароля администратором
Отправка отчётов модулем Ureports
Отправка SMS сообщений модулем Msgs
При воcстановлении пароля и отправки сообщений через техническую поддержку номер телефона берётся с учётной записи абонента, а при отправке отчётов из заполненного поля отчётов.
Для отправки СМС сообщений используются шлюзы:
Установка
Создать таблицы в базе.
Code Block | ||
---|---|---|
| ||
mysql --default-character-set=utf8 -D abills < db/Sms.sql |
Подключение модуля. abills/libexec/config.pl
Code Block | ||
---|---|---|
| ||
@MODULES = ( 'Sms' ); |
Настройка
Turbosms
Скопировать модуль в рабочую папку
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
mysql -P 3306 -h 94.249.146.189 -u ЛогинШлюза -p users |
Далее вводите пароль шлюза. Название таблицы, с которой вы работаете в базе совпадает с логином шлюза. Посмотреть какие сообщения были занесены в таблицу, можно командой
Code Block | ||
---|---|---|
| ||
MySQL [users]> SELECT * FROM ЛогинШлюза; |
Если смс есть в базе, но не отправляются пользователям - посмотрите на статус записи и код ошибки.
Отправка на Viber
С не давных пор появилась отправка на Viber через шлюз TurboSMS для того чтобы сделать отправку на Viber надо прописать в config.pl такой параметр:
Code Block |
---|
$conf{SMS_TURBOSMS_VIBER} = 1; |
Так же надо будет прописать параметры для того чтобы система понимала куда отправлять
Параметр | Значения |
---|---|
$conf{SMS_TURBOSMS_VIBER_URL} | URL шлюза для отправки |
$conf{SMS_TURBOSMS_VIBER_TOKEN} | Токен пользователя в системе TurboSMS |
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
Сайт: 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_BROKER_URL}='http'; | |
---|---|
$conf{SMS_BROKER_LOGIN}='login'; | |
$conf{SMS_BROKER_PASS}='pass'; | |
$conf{SMS_BROKER_NAME}='provider name'; | Имя отправителя |
$conf{SMS_BROKER_API_VER} = 'JSON'; | Версия API, JSON или XML |
$conf{SMS_BROKER_DEBUG}=1; | Включение режима отладки с выводом информации по запросам |
Playmobile
Параметры настройки
$conf{SMS_PLAYMOBILE_URL}='http'; | |
---|---|
$conf{SMS_PLAYMOBILE_LOGIN}='login'; | |
$conf{SMS_PLAYMOBILE_PASS}='pass'; | |
$conf{SMS_PLAYMOBILE_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 для отправки с usb модема
Code Block | ||
---|---|---|
| ||
sudo apt install gammu |
для настройки используем команду
Code Block | ||
---|---|---|
| ||
gammu-config |
прописывает в каком порту находится USB модем
Запускаем утилиту идентификации модема:
Code Block | ||
---|---|---|
| ||
sudo gammu identify |
Если все хорошо - вывод примерно такой
Code Block | ||
---|---|---|
| ||
Устройство : /dev/ttyUSB0 Производитель : Huawei Модель : E1550 (E1550) Прошивка : 11.608.14.11.222 IMEI : 359124036500000 Номер SIM IMSI : 255061025200000 |
Все модуль готов к отправке.
смс можно отправить спомощью команды
Code Block | ||
---|---|---|
| ||
gammu sendsms TEXT 082111978168 -text "Halooo .." |
Eskiz sms
Скопировать модуль в:
Code Block |
---|
cp Eskizsms.pm /usr/abills/Abills/modules/Sms/ |
Параметры конфигурации модуля:
abills/libexec/config.pl
$conf{SMS_ESKIZ_URL}='notify.eskiz.uz/api/message/sms/send' | Cмс шлюз |
---|---|
$conf{SMS_ESKIZ_LOGIN}='test@eskiz.uz' | Логин пользователя в системе eskiz |
$conf{SMS_ESKIZ_PASSWD}='j6DWtQjjpLDNjWEk74Sx' | Пароль пользователя в системе eskiz |
Omnicell
Скопировать модуль в:
Code Block |
---|
cp Omnicell.pm /usr/abills/Abills/modules/Sms/ |
Параметры конфигурации модуля:
abills/libexec/config.pl
$conf{SMS_OMNICELL_URL} | Смс шлюз: https://api.omnicell.com.ua/ip2sms/ |
---|---|
$conf{SMS_OMNICELL_LOGIN} | Логин пользователя в системе Omnicell |
$conf{SMS_OMNICELL_PASSWD} | Пароль пользователя в системе Omnicell |
$conf{SMS_OMNICELL_EXT} | Регулярное выражения для проверки мобильного номера, система Omnicell требует международный форма с '+' и кодом странны, в суме 12 цифр должно быть. Регулярное выражения: (\+)([0-9]{0,12}) |
$conf{SMS_OMNICELL_ALPHA_NAME} | Альфа имя в системе Omnicell |
Также доступна отправка на Viber, для такой отправки вам надо в конфигурационном файле прописать $conf{SMS_OMNICELL_VIBER} = 1; после чего при создание сообщения вы сможете выбрать пункт Viber
Протокол:
https://docs.omnicell.com.ua/pages/viewpage.action?pageId=4358324
Likon Sms
Параметры платежной системы выглядят следующим образом
$conf{SMS_LIKON_URL} | Ссылка на шлюз (куда отправлять) |
---|---|
$conf{SMS_LIKON_LOGIN} | Логин шлюза для отправки |
$conf{SMS_LIKON_PASSWD} | Пароль шлюза для отправки |
$conf{SMS_LIKON_TITLE} | Подпись смс (шапка смс) |
Отправлять надо на шлюз - http://89.108.99.126/sendsmsapi/
Note |
---|
Обратите внимание что отправка может быть только на мобильные телефона Азербайджан, при попытке отправить на другой номер вам в ответ прийдет ошибка с кодом 20 и сообщениям Invalid msisdn/no valid message to send |
Sms Отчёты
Отчёты находятся в меню Отчёт>Sms.
Система предоставляет полный отчёт по отправленным сообщениям.
Синхронизация статусов
Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.
Code Block | ||
---|---|---|
| ||
/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 | ||
---|---|---|
| ||
$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 | ||
---|---|---|
| ||
$conf{SMS_NUMBER_EXPR} = '^0/+380;'; |
Sms Callback
Sms callback - шлюз для клиентских запросов посредством Sms.
Подключение
Code Block | ||
---|---|---|
| ||
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. |
Отправка СМС после регистрации абонента
Если у вас включен модуль Смс, тогда во время регистрации у вас появится дополнительный шаг с отправкой СМС пользователю о окончании регистрации. По стандарту будет отправлен шаблон %LOGIN%:%PASSWORD% но вы можете отредактировать шаблон
internet_user_memo_sms под себя, зайдите в Настройка → Другое → шаблоны и найдите данный шаблон что бы отредактировать его
Также вы будете иметь возможность отправить смс повторно чтобы напомнить пользователю что он прошел регистрацию, вам понадобится зайти в правое меню и выбрать SMS затем вы увидите данную форму отправки смс
Для отправки СМС берётся "Мобильный номер телефона" если же вы указали контакт пользователя в поле "телефон" тогда в форме отправки поле "Телефон" будет пустым
Шаблонные переменные в теле сообщения
Также в теле сообщения можно использовать такие шаблонные переменные:
Персональная информация - %FIO%, %LOGIN%, %PHONE%, %EMAIL%, %CITY%,% ADDRESS_DISTRICT%, %ADDRESS_STREET%, %ADDRESS_BUILD%, %ADDRESS_FLAT%, %ADDRESS_FULL%, %CONTRACT_ID%.
Интернет информация - %TP_NAME%, %MONTH_ABON%, %DAY_ABON%.
Параметр конфигурации
Смс после регистрации
Если вы не хотите чтобы у вас при регистрации появился дополнительный шаг с отправкой СМС тогда вам надо в конфигурационном файле прописать следующий параметр
Code Block |
---|
$conf{SMS_REG_GREETING}=1; |
Этот параметр будет отвечать за автоматическую отправку СМС пользователю если был заполнен на первом шаге "Мобильный телефон"
То есть если данная переменная будет прописана, тогда у вас данное окно отправки смс будет только доступно из меню.
Также важно, что бы появился дополнительный шаг, должен быть стандартный шаблон добавления пользователя
Дополнительные параметри
Лимит смс для пользователя
Для того что бы пользователь не злоупотребляв смс-ками провайдера, есть параметр для ограничения смс в месяц
Code Block |
---|
$conf{USER_LIMIT_SMS} = 20; |
В данном примере пользователю будет доступно только 20 смс в месяц, после того как он превысит этот лимит он не сможет отправить в этом месяце больше смс, но как прийдет следующий месяц ему снова будет доступно 20 смс.