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