Skip to end of metadata
Go to start of metadata

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

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

Возможности

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

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

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

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

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

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

Установка

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

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

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

@MODULES = (
          'Sms'
          );

Sms Отчёты

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

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


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

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

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

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

/usr/abills/libexec/billd sms_status

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

/usr/abills/libexec/billd sms_status DEBUG=2

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

*/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 (мобильный телефон).


Пример обработки номера регулярным выражением:

$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Параметр 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%.

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

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

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

$conf{SMS_REG_GREETING}=1; 

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

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

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

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

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

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

$conf{USER_LIMIT_SMS} = 20;

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

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

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

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

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

  • No labels