Модуль отправки SMS сообщений. Может использовать локальный и удалённые шлюзы отправки смс.
При отправке СМС система передает плагину текст сообщения и номер адресата. Плагин по протоколу шлюза отправляет данные на СМС шлюз и получает статус отправки, также заносит данные по отправке СМС сообщения в базе.
- Настройка
- Импорт Sms-систем с config.pl
Возможности
Восстановление пароля через 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 Callback
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_cgi | URL для шлюза обработки запросов |
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 смс.
Функция относится к функционалу по восстановлению пароля
Выбор СМС шлюза в зависимости от группы пользователя
В настройках группы в поле СМС шлюз можно выбрать один з доступных (установленных) СМС шлюзов.
Для всех пользователей в этой группе будет использоваться выбранный шлюз.