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

Image Added

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

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 нужно задать шлюз и создать подпись

Image Added

Image Added

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

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

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

Code Block
languagebash
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

Возможные ошибки

При отправки смс через шлюз TurboSMS допускаются такие внутренние ошибки

Image Added

Код ошибки доступен к просмотру в Отчет → Sms

Epochtasms

Image Added

Сайт: 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 

Image Added

После настройки перейдите в меню Регистрация имен отправителей и зарегистрируйте Ваш идентификатор. После регистрации занесите его в переменную $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

Image Added

Для работы с службой нужно установить 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

Image Added

Сайт: 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
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 .."

Eskiz sms

Eskiz.uz

Скопировать модуль в:

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 


Image Added

Протокол:

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
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_password_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.


Отправка СМС после регистрации абонента

Если у вас включен модуль Смс, тогда во время регистрации у вас появится дополнительный шаг с отправкой СМС пользователю о окончании регистрации. По стандарту будет отправлен шаблон %LOGIN%:%PASSWORD% но вы можете отредактировать шаблон 

internet_user_memo_sms под себя, зайдите в Настройка → Другое → шаблоны и найдите данный шаблон что бы отредактировать его

Image Added

Также вы будете иметь возможность отправить смс повторно чтобы напомнить пользователю что он прошел регистрацию, вам понадобится зайти в правое меню и выбрать SMS затем вы увидите данную форму отправки смс

Image Added

Для отправки СМС берётся "Мобильный номер телефона" если же вы указали контакт пользователя в поле "телефон" тогда в форме отправки поле "Телефон" будет пустым

Шаблонные переменные в теле сообщения

Также в теле сообщения можно использовать такие шаблонные переменные:

Персональная информация - %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

Также важно, что бы появился дополнительный шаг, должен быть стандартный шаблон добавления пользователя


Дополнительные параметри

Лимит смс для пользователя

Для того что бы пользователь не злоупотребляв смс-ками провайдера, есть параметр для ограничения смс в месяц

Code Block
$conf{USER_LIMIT_SMS} = 20;

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

Note

Функция относиться к функционалу по восстановлению пароля