LANBilling позволяет отправлять абонентам уведомления в мессенджерах. За работу с мессенджерами отвечает плагин. Он состоит из двух файлов, которые находятся в директории /usr/local/billing/plugins/messengers/
:
В системе уже есть готовый плагин. Также вы можете добавить собственный:
Создайте файл. Пример:
nano /usr/local/billing/plugins/messengers/my_messenger.py
В этом файле нужно описать логику работу плагина.
Определите класс «Messenger», унаследованный от MessengerPlugin
.
Переопределите функцию send(self, *args, **kwargs)
. Она может принимать 4 параметра:
Параметр | Данные | Как обращаться |
---|---|---|
numbers |
Cписок телефонных номеров | Весь список: args[0] Номер «N»: args[0][N] |
message |
Текст сообщения | args[1] |
template_id |
Идентификатор шаблона уведомления | kwargs['template_id'] |
template_params |
Значения для подстановки в шаблон | Весь список: kwargs['template_id'] Значение параметра «param»: kwargs['template_params']['param'] |
billing_identity |
Идентификатор оператора из одноимённой опции | kwargs['billing_id'] |
Если message
не передан, то система попробует сформировать сообщение по шаблону из template_id
.
yapsy
. Плагин будет писать лог в файл, указанный в менеджере плагинов.Пример:
#!/usr/bin/python
# -*- coding: utf-8
import logging
from messenger_plugin_management.messenger_plugin import MessengerPlugin
logger = logging.getLogger('yapsy')
class Messenger(MessengerPlugin):
def send(self, *args, **kwargs):
numbers = args[0]
message = args[1]
for number in numbers:
logger.debug('My Messenger: %s %s' % (number, message))
Создайте файл. Пример:
nano /usr/local/billing/plugins/messengers/my_messenger.cfg
Добавьте обязательные параметры в секцию [Core]
.
Name
— название плагина. Его нужно будет указать в менеджере плагинов.Module
— имя python-файла. Расширение «.py» писать не нужно.Также можно добавить кастомные секции и параметры. В примере ниже это «Settings» и «Token». В python-файле обращаться к параметру можно так:
self.config.get('Settings', 'Token', '')
Все значения указываются без кавычек. Пример конфигурационного файла:
[Core]
Name = My Messenger
Module = my_messenger
[Settings]
Token = 47ad74a951cf90276e2e3531ee4d654094155a728411cb6af1b74309
Если вы раньше не работали с файлом messenger_plugin.cfg
, его нужно создать. Для этого скопируйте файл из примера:
cp /usr/local/billing/pymodules/messenger_plugin_management/messenger_plugin.cfg.sample /usr/local/billing/pymodules/messenger_plugin_management/messenger_plugin.cfg
Откройте менеджер плагинов messenger_plugin.cfg
:
nano /usr/local/billing/pymodules/messenger_plugin_management/messenger_plugin.cfg
``
Введите название плагина — параметр Name
из конфигурационного файла.
Plugin = My Messenger
``
Укажите путь к файлу с логами. В этом файле будут логи и от менеджера плагинов, и от самого плагина.
Log = /var/log/billing/messenger.log
``
Перезапустите модуль LBcore. Команды различаются в разных ОС.
systemctl restart lbcore
service lbcore restart
Плагин готов к работе. Система может отправлять абонентам уведомления в мессенджерах.
Есть вопросы по документации? Пожалуйста, напишите их