Модуль отправки SMS сообщений. Может использовать локальный и удалённые шлюзы отправки смс.
При отправке СМС система передает плагину текст сообщения и номер адресата. Плагин по протоколу шлюза отправляет данные на СМС шлюз и получает статус отправки, также заносит данные по отправке СМС сообщения в базе.
Table of Contents |
---|
- Настройка
- Импорт Sms-систем с config.pl
Возможности
Восстановление пароля через 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
можно использовать значения от 1 до 6
Режимы:
0 - Нормальный режим работы
3 - Отображать запросы при отправке сообщений
5,6 - Только отображать запросы отправки сообщений без их реальной отправки
В своей учетной записи на сайте turbosms.ua нужно задать шлюз и создать подпись
Проверка работы с шлюзом MySQL
Code Block | ||
---|---|---|
| ||
mysql -P 3306 -h 94.249.146.189 -u ЛогинШлюза -p users |
Далее вводите пароль шлюза. Название таблицы, с которой вы работаете в базе совпадает с логином шлюза. Посмотреть какие сообщения были занесены в таблицу, можно командой
Code Block | ||
---|---|---|
| ||
MySQL [users]> SELECT * FROM ЛогинШлюза; |
Если смс есть в базе, но не отправляются пользователям - посмотрите на статус записи и код ошибки.
Epochtasms
Сайт: ePochta sms
Для работы с службой нужно установить Perl модуля JSON
Параметры конфигурации модуля:abills/libexec/config.pl
Настройка службы Epochtasms
После настройки перейдите в меню Регистрация имен отправителей и зарегистрируйте Ваш идентификатор. После регистрации занесите его в переменную $conf{SMS_EPOCHTASMS_SENDER}='sender_name';.
Littlesms
Для работы с службой нужно установить Perl модуля JSON и программу CURL
Параметры конфигурации модуля:abills/libexec/config.pl
Настройка службы Epochtasms.
Smsc
Для работы с службой нужно установить Perl модуля JSON и программу CURL.
Параметры конфигурации модуля:abills/libexec/config.pl
Настройка службы Smsc.
Txtlocal
Сайт: http://www.txtlocal.com
Страна: Испания
Получить ключ https://control.txtlocal.co.uk/settings/apikeys/
1 -
2 - Система делает тестовую отправку без снятия денег с депозита
6 - Отображать выполняемые билингом команды для отправки почты
Jasmin SMS
Jasmin - локальный смс-шлюз предназначенный для отправки СМС-сообщений напрямую в центры сообщений телекоммуникационных компаний. Шлюз использует стандартный протокол SMPP, который поддерживает большинство операторов мобильной связи.
Установка собственного сервера Jasmin - http://docs.jasminsms.com/en/latest/installation/index.html .
Smseagle
SMSEagle - железный SMS шлюз.
Sms Broker
Параметры настройки
Playmobile
Параметры настройки
IDM.KG
Bulksms
Nikita
Universal_sms_module
Описание
Для работы со службой нужно установить программу CURL.
Параметры конфигурации модуля:
abills/libexec/config.pl
$conf{SMS_UNIVERSAL_URL} = 'http://URL?number=%NUMBER%&message=%MESSAGE%';
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
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}
$conf{SMS_OMNICELL_PASSWD}
$conf{SMS_OMNICELL_EXT}
Регулярное выражения для проверки мобильного номера, система Omnicell требует международный форма с '+' и кодом странны, в суме 12 цифр должно быть.
Регулярное выражения:
(\+)([0-9]{0,12})
Также доступна отправка на Viber, для такой отправки вам надо в конфигурационном файле прописать $conf{SMS_OMNICELL_VIBER} = 1; после чего при создание сообщения вы сможете выбрать пункт Viber
Протокол:
https://docs.omnicell.com.ua/pages/viewpage.action?pageId=4358324
Sms Отчёты
Отчёты находятся в меню Отчёт>Sms.
Система предоставляет полный отчёт по отправленным сообщениям.
Синхронизация статусов
Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.
language | bash |
---|
Sms Отчёты
Отчёты находятся в меню Отчёт>Sms.
Система предоставляет полный отчёт по отправленным сообщениям.
Также упрощенная версия отчета по пользователю находится по пути Клиенты>Логины>Информация>Сервисы>SMS.
Возле названия таблицы выведена кнопка для обновления статуса СМС доставки
Синхронизация статусов
Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.
Code Block | ||
---|---|---|
| ||
/usr/abills/libexec/billd sms_status |
Посмотреть что выполняет скрипт
Code Block | ||
---|---|---|
| ||
/usr/abills/libexec/billd sms_status DEBUG=2 |
Пример крона.
Code Block | ||
---|---|---|
| ||
*/10 * * * * root /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_CONTACT_ID} = '1;2'; | Типы контактов, на которые отправлять SMS (в виде номеров, номера типов контактов можно узнать здесь). По умолчанию 1 (мобильный телефон). |
Пример обработки номера регулярным выражением:
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 API_KEY из информации админстратораадминистратора. Рекомендуется создавать отдельного администратора от имени которого будут выполняться команды. |
sender | Номер телефона отправителя |
text | Текст самого сообщения |
Пример SMS сообщения: 123+03+124+12345678, где
123 | Это UID абонента |
---|---|
03 | Тип команды |
124 | Это UID абонента номер 2 (если операции не надо второго UID то и прописывать не надо) |
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. |
07 | Включения/отключения оповещений (Ureports) Пример: /sms_callback.cgi?apikey=<api_key>&sender=<number>&text=1+07+2+disabled text=(uid + operations + tp_id + disabled/enabled) |
Отправка СМС после регистрации абонента
Если у вас включен модуль Смс, тогда во время регистрации у вас появится дополнительный шаг с отправкой СМС пользователю о окончании регистрации. По стандарту будет отправлен шаблон %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; |
Этот параметр будет отвечать за автоматическую отправку СМС пользователю если был заполнен на первом шаге "Мобильный телефон"
То есть если данная переменная будет прописана, тогда у вас данное окно отправки смс будет только доступно из меню.
Note |
---|
Также важно, что бы появился дополнительный шаг, |
должны быть кастомные шаблоны, добавлять надо параметром $conf{REG_WIZARD}="sms_send_register:Sms:SMS;" |
Дополнительные параметры
Лимит смс для пользователя
Для того что бы пользователь не злоупотреблял смс-ками провайдера, есть параметр для ограничения смс в месяц
Code Block |
---|
$conf{USER_LIMIT_SMS} = 20; |
В данном примере пользователю будет доступно только 20 смс в месяц, после того как он превысит этот лимит он не сможет отправить в этом месяце больше смс, но как прийдет следующий месяц ему снова будет доступно 20 смс.
Note |
---|
Функция относится к функционалу по восстановлению пароля |
Выбор СМС шлюза в зависимости от группы пользователя
В настройках группы в поле СМС шлюз можно выбрать один з доступных (установленных) СМС шлюзов.
Для всех пользователей в этой группе будет использоваться выбранный шлюз.