Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1

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

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

Возможности

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

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

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

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

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

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

Установка

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

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

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

@MODULES = (
          'Sms'
          );

Настройка

Turbosms

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

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 ЛогинШлюза;

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

Отправка на Viber

С не давных пор появилась отправка на Viber через шлюз TurboSMS для того чтобы сделать отправку на Viber надо прописать в config.pl такой параметр:

$conf{SMS_TURBOSMS_VIBER} = 1;

Так же надо будет прописать параметры для того чтобы система понимала куда отправлять

ПараметрЗначения
$conf{SMS_TURBOSMS_VIBER_URL}URL шлюза для отправки 
$conf{SMS_TURBOSMS_VIBER_TOKEN}Токен пользователя в системе TurboSMS

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

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

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

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 модема

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

Eskiz sms

Eskiz.uz

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

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

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

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/

Обратите внимание что отправка может быть только на мобильные телефона Азербайджан, при попытке отправить на другой номер вам в ответ прийдет ошибка с кодом 20 и сообщениям Invalid msisdn/no valid message to send

Sms Отчёты

Отчёты находятся в меню  Отчёт>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_password_recovery.tplШаблон восстановления пароля

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

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_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 под себя, зайдите в Настройка → Другое → шаблоны и найдите данный шаблон что бы отредактировать его

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

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

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

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

Персональная информация - %FIO%, %LOGIN%, %PHONE%, %EMAIL%, %CITY%,% ADDRESS_DISTRICT%, %ADDRESS_STREET%, %ADDRESS_BUILD%, %ADDRESS_FLAT%, %ADDRESS_FULL%, %CONTRACT_ID%.

Интернет информация - %TP_NAME%, %MONTH_ABON%, %DAY_ABON%.

Параметр конфигурации

Смс после регистрации

Если вы не хотите чтобы у вас при регистрации появился дополнительный шаг с отправкой СМС тогда вам надо в конфигурационном файле прописать следующий параметр 

$conf{SMS_REG_GREETING}=1; 

Этот параметр будет отвечать за автоматическую отправку СМС пользователю если был заполнен на первом шаге "Мобильный телефон"

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

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

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

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

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

$conf{USER_LIMIT_SMS} = 20;

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

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

  • No labels