Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

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

Table of Contents

Возможности

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

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

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

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

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

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

  • http://turbosms.ua/

  • http://www.epochtasms.ru

  • http://littlesms.ru/

  • https://smsc.ru/

  • http://www.txtlocal.com

  • Sms Broker

  • Bulksms

  • Nikita

  • IDM.KG


    Установка

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

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

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

    Code Block
    languagebash
    @MODULES = (
              'Sms'
              );

    Настройка

    Turbosms

    Image Removed

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

    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 Removed

    Image Removed

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

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

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

    Code Block
    languagebash
    MySQL [users]> SELECT * FROM ЛогинШлюза;

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

    Epochtasms

    Image Removed

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

    После настройки перейдите в меню Регистрация имен отправителей и зарегистрируйте Ваш идентификатор. После регистрации занесите его в переменную $conf{SMS_EPOCHTASMS_SENDER}='sender_name';.

    Littlesms

    Image Removed 

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

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

    textlocal

    Сайт: http://www.txtlocal.com 
    Cтрана: Испания 
    $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

    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';Номер предоставленный сервисом

    Sms Отчёты

    Отчёты находятся в меню  Отчёт>Sms.

    Система предоставляет полный отчёт по отправленным сообщениям.

    Синхронизация статусов

    Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.

    Code Block
    languagebash

    Sms Отчёты

    Отчёты находятся в меню  Отчёт>Sms.

    Система предоставляет полный отчёт по отправленным сообщениям.


    Также упрощенная версия отчета по пользователю находится по пути Клиенты>Логины>Информация>Сервисы>SMS.

    Возле названия таблицы выведена кнопка для обновления статуса СМС доставки

    Image Added

    Синхронизация статусов

    Плагин синхронизации статусов забирает статусы и вносит в билинг с sms-сервисов.

    Code Block
    languagebash
    /usr/abills/libexec/billd sms_status

    Посмотреть что выполняет скрипт

    Code Block
    languagebash
    /usr/abills/libexec/billd sms_status DEBUG=2

    Пример крона.

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

    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

    Также важно, что бы появился дополнительный шаг, должны быть кастомные шаблоны, добавлять надо параметром $conf{REG_WIZARD}="sms_send_register:Sms:SMS;"


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

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

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

    Code Block
    $conf{USER_LIMIT_SMS} = 20;

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

    Note

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


    Выбор СМС шлюза в зависимости от группы пользователя

    В настройках группы в поле СМС шлюз можно выбрать один з доступных (установленных) СМС шлюзов.

    Для всех пользователей в этой группе будет использоваться выбранный шлюз.

    Image Added