Документация по версии 1.5 — различия между версиями
Admin (обсуждение | вклад) (→Установка) |
Admin (обсуждение | вклад) (→Платёжные системы) |
||
(не показаны 52 промежуточные версии 2 участников) | |||
Строка 17: | Строка 17: | ||
Кроме этого ExpertBilling 1.5 стал гораздо безопаснее и надёжнее. Мы проделали огромную работу и надеемся, что это не напрасно. | Кроме этого ExpertBilling 1.5 стал гораздо безопаснее и надёжнее. Мы проделали огромную работу и надеемся, что это не напрасно. | ||
− | Обратите внимание, что выложенная версия ExpertBilling 1.5 является | + | Обратите внимание, что выложенная версия ExpertBilling 1.5 является RC версией и вы её используете на свой страх и риск. Мы просим вас сообщать на форуме о всех найденных проблемах, чтобы они были быстрее исправлены. |
= Установка = | = Установка = | ||
Строка 28: | Строка 28: | ||
<pre> | <pre> | ||
− | #apt-get install fabric | + | #apt-get install fabric python-psycopg2 |
+ | </pre> | ||
+ | |||
+ | Установка postgresql 9.1 | ||
+ | <pre> | ||
+ | #apt-get update | ||
+ | #apt-get install fabric postgresql-9.1 postgresql-contrib-9.1 postgresql-server-dev-9.1 | ||
</pre> | </pre> | ||
Строка 35: | Строка 41: | ||
− | + | == Установка с нуля == | |
Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке. | Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке. | ||
<pre> | <pre> | ||
Строка 42: | Строка 48: | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Создание директории: | Создание директории: | ||
Строка 65: | Строка 66: | ||
Запустите установку биллинга с нуля с правами root-а из директории /opt/. | Запустите установку биллинга с нуля с правами root-а из директории /opt/. | ||
<pre> | <pre> | ||
− | #fab deploy: | + | #fab deploy:demo1.5_x64.tar.gz для 64-бит версии демо |
+ | #fab deploy:demo1.5_x32.tar.gz для 32-бит версии демо | ||
</pre> | </pre> | ||
− | + | или подставить ваш скачанынй архив с системой. | |
После того, как устанвока завершится - откройте в браузере айпи вашего сервера и войдите в веб-кабинет | После того, как устанвока завершится - откройте в браузере айпи вашего сервера и войдите в веб-кабинет | ||
− | + | == Апгрейд == | |
Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке. | Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке. | ||
<pre> | <pre> | ||
Строка 77: | Строка 79: | ||
</pre> | </pre> | ||
− | + | И | |
+ | |||
<pre> | <pre> | ||
#fab upgrade:demo.tar.gz | #fab upgrade:demo.tar.gz | ||
</pre> | </pre> | ||
− | + | == Апгрейд с версии 1.4.1 == | |
Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке. | Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке. | ||
<pre> | <pre> | ||
Строка 88: | Строка 91: | ||
#tar -xvzf путь к архиву с биллингом fabfile.py install.txt | #tar -xvzf путь к архиву с биллингом fabfile.py install.txt | ||
</pre> | </pre> | ||
− | + | При апгрейде с версии 1.4.1 нужно: | |
− | При апгрейде с версии 1.4.1 нужно | + | 1. Установить postgresql-9.1 postgresql-contrib-9.1. |
+ | 2. Выполнить дамп базы данных с биллингом с помощью pg_dump | ||
+ | <pre> | ||
+ | su postgres | ||
+ | pg_dump ebs >/tmp/ebs.dump | ||
+ | exit | ||
+ | cp /tmp/ebs.dump /opt/ebs.dump | ||
+ | </pre> | ||
+ | 3. Удалить postgresql-8.4. | ||
+ | <pre> | ||
+ | apt-get remove postgresql-8.4 | ||
+ | </pre> | ||
+ | 4. Настроить postgresql-9.1 на запуск на порту 5432 (/etc/postgres/9.1/main/postgresql.conf). | ||
+ | 5. Перезапустить postgresql, | ||
+ | 6. Создать БД ebs с пользователем ebs | ||
+ | <pre> | ||
+ | createuser -s -P ebs | ||
+ | createdb -O ebs ebs | ||
+ | </pre> | ||
+ | 7. Импортировать в созданную базу дамп: | ||
+ | <pre> | ||
+ | su postgres | ||
+ | psql ebs -f /opt/ebs.dump | ||
+ | </pre> | ||
+ | 8. Запустить апгрейд: | ||
<pre> | <pre> | ||
#fab upgrade_14:demo.tar.gz | #fab upgrade_14:demo.tar.gz | ||
Строка 100: | Строка 127: | ||
#/etc/init.d/apache2 reload | #/etc/init.d/apache2 reload | ||
− | '''Внимание!!! Это | + | '''Внимание!!! Это не финальная версия 1.5. О всех найденных прблемах просьба писать на форуме http://forum.expertbilling.ru/''' |
Имя и пароль по-умолчанию для входа в веб-кабинет admin/admin. | Имя и пароль по-умолчанию для входа в веб-кабинет admin/admin. | ||
+ | |||
+ | = Компоненты биллинг-системы = | ||
+ | * процесс core - занимается списанием периодиеских и разовых услуг, контроллирует RADIUS сессии, тарифицирует их, производит сервисные процедуры по проверке баланса для блокировок и их снятия. | ||
+ | * процесс nf - коллектор NetFlow. Занимается её сбором, упаковкой и отсылкой на обработку посредством брокера очередей RabbitMQ | ||
+ | * процесс nffilter - фильтр и агрегатор NetFlow. Занимается фильтрацией NetFlow, соотношением статистики и аккаунтов, поиск подходящих классов. | ||
+ | * процесс nfroutine - тарификатор NetFlow. | ||
+ | * процесс nfwriter - получает от nffilter через RabbitMQ пачки сырой отфильтрованной NetFlow статистики и записывает её на диск | ||
+ | * процесс rad_auth - RADIUS сервер. Занимается авторизацией и аутентификацией | ||
+ | * процесс rad_acct - RADIUS Accounting сервер. | ||
+ | * процесс celery - асинхронный обработчик заданий на взаимодействие с серверами доступа, отсылку SMS и выполнение сервисных процедур | ||
+ | * веб-кабинет | ||
+ | |||
+ | '''В нормальном состоянии все процессы должны быть запущены'''. | ||
+ | Для обеспечения работы биллинг-системы должны быть запущены следующие процессы: | ||
+ | * postgresql - СУБД | ||
+ | * rabbitmq-server - брокер очередей | ||
+ | * memcached - кэширующий сервер для RADIUS - сервера и веб-кабинета. | ||
+ | |||
+ | |||
+ | = Платёжные системы = | ||
+ | В ExpertBilling 1.5 реализован приём следующих типов платежей: | ||
+ | * QIWI | ||
+ | * Единая Касса w1.ru | ||
+ | * Сбербанк РФ | ||
+ | * Liqpay | ||
+ | * EasyPay | ||
+ | * MasterPlat | ||
+ | * SimpleTerminal | ||
+ | * Robokassa | ||
+ | * Privat24 | ||
+ | |||
+ | Настройка производится разово в файле settings_local.py веб-кабинета: | ||
+ | |||
+ | <pre> | ||
+ | GETPAID_BACKENDS = ('payments.easypay', | ||
+ | 'payments.liqpay', | ||
+ | 'payments.ru_sberbank', | ||
+ | 'payments.w1ru', | ||
+ | 'payments.qiwiru', | ||
+ | 'payments.simplaterminal', | ||
+ | 'payments.robokassa', | ||
+ | ) | ||
+ | |||
+ | GETPAID_BACKENDS_SETTINGS = { | ||
+ | # Please provide your settings for backends | ||
+ | 'payments.liqpay' : { | ||
+ | 'TYPE': 'frontend', | ||
+ | 'DEFAULT_CURRENCY' : 'UAH', | ||
+ | 'PUBLIC_KEY' : 'XXXXXXXX', | ||
+ | 'PRIVATE_KEY' : 'XXXXXXXXXXXXXXXXXXXXXXX', | ||
+ | 'LANGUAGE' : 'ru', | ||
+ | 'PAY_WAY': ('card', 'liqpay', 'delayed'), | ||
+ | 'EXPIRE_TIME': 36, | ||
+ | |||
+ | }, | ||
+ | |||
+ | 'payments.easypay' : { | ||
+ | 'TYPE': 'backend', | ||
+ | 'DEFAULT_CURRENCY' : 'UAH', | ||
+ | 'SERVICE_ID' : '1', | ||
+ | 'allowed_ip': ('93.183.196.28', '93.183.196.26'), | ||
+ | |||
+ | }, | ||
+ | 'payments.ru_sberbank' : { | ||
+ | 'TYPE': 'backend', | ||
+ | 'DEFAULT_CURRENCY' : 'RUB', | ||
+ | 'PASSWORD' : '12345', | ||
+ | 'allowed_ip': ('93.183.196.28', '93.183.196.26'), | ||
+ | |||
+ | }, | ||
+ | 'payments.robokassa' : { | ||
+ | 'TYPE': 'frontend', | ||
+ | 'DEFAULT_CURRENCY' : 'RUB', | ||
+ | 'MERCHANT_LOGIN' : 'login', | ||
+ | 'PASSWORD1' : 'password1', | ||
+ | 'PASSWORD2' : 'password2', | ||
+ | 'TEST_MODE': False, | ||
+ | }, | ||
+ | 'payments.w1ru' : { | ||
+ | 'TYPE': 'frontend', | ||
+ | 'DEFAULT_CURRENCY' : 'RUB', | ||
+ | 'MERCHANT_ID': '163789612661', | ||
+ | 'MERCHANT_PASSWORD': 'MFVSdmZNajdBRXdcWmE3Z191cjBLWFJsZjhb', | ||
+ | #======================================================================= | ||
+ | # 'PTENABLED':[ | ||
+ | # 'YandexMoneyRUB', | ||
+ | # 'WebMoneyRUB', | ||
+ | # ], | ||
+ | #======================================================================= | ||
+ | 'PTDISABLED':[ | ||
+ | ], | ||
+ | 'allowed_ip': ('93.183.196.28', '93.183.196.26'), | ||
+ | 'EXPIRE_DAYS': 31, | ||
+ | |||
+ | }, | ||
+ | 'payments.qiwiru' : { | ||
+ | 'TYPE': 'frontend', | ||
+ | 'DEFAULT_CURRENCY' : 'RUB', | ||
+ | 'TERMINAL_ID' : '12345', | ||
+ | 'TERMINAL_PASSWORD' : '12345', | ||
+ | 'LIFETIME': 48, | ||
+ | 'ALARM_SMS': 0, | ||
+ | 'ACCEPT_CALL': 0, | ||
+ | 'MIN_SUM': 100, | ||
+ | |||
+ | }, | ||
+ | 'payments.masterplat' : { | ||
+ | 'TYPE': 'backend', | ||
+ | 'DEFAULT_CURRENCY' : 'RUB', | ||
+ | 'DUSER' : 'test', | ||
+ | 'DPASS': 'test', | ||
+ | |||
+ | }, | ||
+ | 'payments.simpleterminal' : { | ||
+ | 'TYPE': 'backend', | ||
+ | 'DEFAULT_CURRENCY' : 'RUB', | ||
+ | 'SECRET': '12345678901234567890hgh55g54', | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </pre> | ||
+ | Дополнительно нужно зайти через веб-интерфейс в закрытую часть интерфейса администрирвоания по пути /admin/, зайти в раздел sites и для сайта по-умолчанию указать доменное имя сервера, которое доступно снаружи. УДАЛЯТЬ ЗАПИСЬ НЕЛЬЗЯ. ЕЁ НУЖНО ИМЕННО ОТРЕДАКТИРОВАТЬ. | ||
+ | |||
+ | |||
+ | Для приёма QIWI требуется прописать в cron (crontab -e) следующее: | ||
+ | <pre> | ||
+ | */5 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python manage.py process_qiwi_payments | ||
+ | </pre> | ||
+ | При работе с терминалами qiwi ссылка для постбэка будет выглядеть следующим образом: | ||
+ | <pre> | ||
+ | http://<server>/payments.qiwiru/qiwiru/payment/ | ||
+ | </pre> | ||
+ | При работе с единой кассой ссылка для постбэка: | ||
+ | <pre> | ||
+ | http://<server>/payments.w1ru/w1ru/postback/ | ||
+ | </pre> | ||
+ | Для единой кассы дополнительно нужно авторизовать сайт. Для этого добавьте в файл | ||
+ | <pre> | ||
+ | /opt/ebs/web/ebscab/templates/site_verify_codes.html | ||
+ | </pre> | ||
+ | тэг, который вы получили в интерфейсе единой кассы. | ||
+ | |||
+ | За то, какие способы оплаты будут доступны пользователям, отвечает переменная GETPAID_BACKENDS. | ||
+ | Настройки конкретного платёжного шлюза находятся в соответствующих секциях GETPAID_BACKENDS_SETTINGS. | ||
+ | |||
+ | Все типы платежей разбиты на 2 логических типа - frontend и backend. Frontend доступен для выбора через веб-кабинет. Backend используется, если оплата происходит без взаимодействия пользователя с веб-кабинетом. К примеру через терминал. Не меняйте эти значения. | ||
+ | |||
+ | === Платёжная система SimpleTerminal === | ||
+ | Это псевдо-платёжная система, которая позволяет использовать API биллинга для пополнения счёта с помощью HTTP запросов. | ||
+ | Типичный запрос на пополнение выглядит так: sum=100&uid=contract&trans=123456&secret=1235453423423g4 | ||
+ | Полный URL | ||
+ | <pre> | ||
+ | http://<server>/payments.simpleterminal/simpleterminal/payment/?sum=100&uid=contract&trans=123456&secret=1235453423423g4 | ||
+ | </pre> | ||
+ | Если в настройках указан SECRET - его необходимо указывать в запросе в качестве параметра. | ||
+ | |||
+ | |||
+ | Просмотр оплаченных счетов доступен через интерфейс администратора по ссылке /ebsadmin/payment/. Допускается изменять статус платежа. Пополнение счёта абонента или удаление пополнения произойдёт автоматически. | ||
+ | |||
+ | = Импорт платежей = | ||
+ | В ExpertBilling 1.5 реализован импорт выписок о проведённых платежах. Скрипт находится в директории /opt/ebs/data/scripts/payments/. Система импорта автономна и может работать на другом сервере или по любому пути на файловой системе. | ||
+ | |||
+ | Перед началом работы нужно переименовать файл pattern.ini.tmpl в pattern.ini и настроить формат обрабатываемых платёжек. | ||
+ | |||
+ | Пример: | ||
+ | <pre> | ||
+ | [belpost] | ||
+ | active=1 | ||
+ | folderin=belpost/IN/ | ||
+ | folderout=belpost/OUT/ | ||
+ | foldererr=belpost/ERR/ | ||
+ | mask=*.alt | ||
+ | rmask=r*.alt | ||
+ | separator=; | ||
+ | payment_type=BELPOST_PAYMENT_IMPORT | ||
+ | fieldnames=DATETIME;ACC;FIO;SUM;EMPTY;PID;EMPTY | ||
+ | fielddefault=;;;;;; | ||
+ | datetime_fmt=%d/%m/%Y %H:%M:%S | ||
+ | reversal_payments=False | ||
+ | |||
+ | |||
+ | [Belarusbank] | ||
+ | active=1 | ||
+ | folder_in=Belarusbank/IN/ | ||
+ | folder_out=Belarusbank/OUT/ | ||
+ | folder_err=Belarusbank/ERR/ | ||
+ | file_mask=*.asb | ||
+ | exclude_mask=lan.* | ||
+ | separator=; | ||
+ | payment_type=BELARUSBANK_PAYMENT_IMPORT | ||
+ | encoding=cp855 | ||
+ | fieldnames=ACC;FIO;DATETIME;TIME;SUM;EMPTY;EMPTY;EMPTY;PID | ||
+ | datetime_fmt=%d/%m/%Y | ||
+ | time_fmt=%H:%M | ||
+ | reversal_payments=False | ||
+ | |||
+ | [Webmoney] | ||
+ | active=1 | ||
+ | folder_in=WebMoney/IN/ | ||
+ | folder_out=WebMoney/OUT/ | ||
+ | folder_err=WebMoney/ERR/ | ||
+ | file_mask=*.* | ||
+ | exclude_mask=r*.* | ||
+ | separator=; | ||
+ | payment_type=WEBMONEY_PAYMENT_IMPORT | ||
+ | fieldnames=DATETIME;ACC;SUM;EMPTY;EMPTY;PID;EMPTY;EMPTY;EMPTY;EMPTY | ||
+ | datetime_fmt=%d/%m/%Y %H:%M:%S | ||
+ | time_fmt= | ||
+ | encoding=utf-8 | ||
+ | reversal_payments=False | ||
+ | |||
+ | [EasyPay] | ||
+ | active=1 | ||
+ | folder_in=EasyPay/IN/ | ||
+ | folder_out=EasyPay/OUT/ | ||
+ | folder_err=EasyPay/ERR/ | ||
+ | file_mask=*.txt | ||
+ | exclude_mask=r*.txt | ||
+ | separator=; | ||
+ | payment_type=EASYPAY_PAYMENT_IMPORT | ||
+ | fieldnames=DATETIME;ACC;PID;FIO;SUM | ||
+ | datetime_fmt=%d/%m/%Y %H:%M:%S | ||
+ | encoding=utf-8 | ||
+ | time_fmt= | ||
+ | reversal_payments=False | ||
+ | |||
+ | [PriorBank] | ||
+ | active=1 | ||
+ | folder_in=Priorbank/IN/ | ||
+ | folder_out=PriorBank/OUT/ | ||
+ | folder_err=Priorbank/ERR/ | ||
+ | file_mask=*.prb | ||
+ | exclude_mask=r*.prb | ||
+ | separator=; | ||
+ | payment_type=PRIORBANK_PAYMENT_IMPORT | ||
+ | fieldnames=SUM;EMPTY;ACC;EMPTY;PID;EMPTY;EMPTY;EMPTY;DATETIME;EMPTY | ||
+ | datetime_fmt=%d%m%y | ||
+ | encoding=utf-8 | ||
+ | time_fmt= | ||
+ | reversal_payments=False | ||
+ | </pre> | ||
+ | |||
+ | Опция reversal_payments=True говорит, что платёж нужно сторнировать - отменить. Директории folder_in, folder_out, folder_err содержат входящие платежи (вы должны помещать их туда чем-либо в раздельных файлах с расширением, указанным в переменной file_mask), обработанные платежи и платежи с ошибками соответственно. | ||
+ | |||
+ | Для обработки платежей, вам нужно настроить crontab на вызов файла process.py раз в 10-15 минут. | ||
+ | <pre> | ||
+ | */10 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python process.py | ||
+ | </pre> | ||
+ | |||
+ | = SMS рассылка = | ||
+ | В ExpertBilling 1.5 реализован механизм рассылки SMS. Он позволяет: | ||
+ | * Слать SMS конкретному пользователю, используя шаблон сообщения. | ||
+ | * Слать SMS группе пользователей, используя шаблон сообщения. | ||
+ | * Создавать отложенные сообщения для отправки их в будущем | ||
+ | * Выполнять рассылку сообщений о балансе. | ||
+ | |||
+ | Настройка SMS подсистемы производится в файле settings_local.py | ||
+ | <pre> | ||
+ | SENDSMS_BACKENDS = ( | ||
+ | ('sendsms.backends.websms.SmsBackend', 'websms.ru'), | ||
+ | ('sendsms.backends.smsru.SmsBackend', 'sms.ru'), | ||
+ | ) | ||
+ | |||
+ | SENDSMS_BACKENDS_SETTINGS = { | ||
+ | 'sendsms.backends.websms': { | ||
+ | 'FROM_NAME': '', # http://websms.ru/FromName.asp | ||
+ | 'USERNAME': '', | ||
+ | 'PASSWORD': '', | ||
+ | }, | ||
+ | 'sendsms.backends.smsru': { | ||
+ | 'FROM_NAME': '', | ||
+ | 'API_ID': '', | ||
+ | 'TRANSLIT': '1', | ||
+ | 'TEST': '0', | ||
+ | 'PARTNER_ID': '', | ||
+ | }, | ||
+ | 'sendsms.backends.smspilotru': { | ||
+ | 'FROM_NAME': '', | ||
+ | 'API_ID': '', | ||
+ | } | ||
+ | } | ||
+ | |||
+ | SENDSMS_IF_BALLANCE_AMOUNT = 0 | ||
+ | SENDSMS_DEFAULT_BACKEND = 'sendsms.backends.websms.SmsBackend' | ||
+ | </pre> | ||
+ | |||
+ | Переменная SENDSMS_BACKENDS содержит пути к бэкэндам для работы с соответствующими SMS-операторами. По-умолчанию реализована поддержка sms.ru и websms.ru | ||
+ | Переменная SENDSMS_BACKENDS_SETTINGS содержит настройки конкретного оператора. | ||
+ | |||
+ | Если вы планируете использовать рассылку о балансе - вам необходимо также заполнить переменные SENDSMS_IF_BALLANCE_AMOUNT (минимальный баланс, ниже которого будут слаться уведомления) и SENDSMS_DEFAULT_BACKEND (бэкэнд, используемый при отсылке сообщений из скриптов). | ||
+ | |||
+ | Шаблон самого сообщения вы можете отредактировать в интерфейсе администратора Справочники->Шаблоны->Минимальный баланс. Шаблон будет обработан шаблонизатором Django. Внутри него вы можете использовать объект account, который содержит текущие значения из полей аккаунта. К примеру {{account.balance}} - подставит баланс, {{account.password}} - пароль. Парсинг шаблона и подстановка будут выполняться непосредственно в момент отсылки. До отсылки сообщение будет храниться в базе в виде шаблона. | ||
+ | |||
+ | Для автоматизации ежемесячной рассылки нужно добавить в crontab следующие записи: | ||
+ | <pre> | ||
+ | 12 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python manage.py ballance_sms_messages # раз в сутки в 12 дня слат ь нотификации о балансе | ||
+ | */5 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python manage.py process_sms_messages # каждые 5 минут выполнять отсылку отложенных SMS сообщений. | ||
+ | </pre> | ||
+ | |||
+ | = Резервное копирование = | ||
+ | Основную ценность предоставляет база данных, паэтому рекомендуется настроить регулярное создание бэкапов с копированием их на удалённый сервер. Ниже описаны способы создания бэкапов и дана необходимая информация о их восстановлении. | ||
+ | |||
+ | == Бэкапы при обновлении системы == | ||
+ | При каждом обновлении скрипт обновления автоматически создаёт бэкапы | ||
+ | * базы данных | ||
+ | * содержимого директории /opt/ebs/data/ | ||
+ | * содержимого директории /opt/ebs/web/ | ||
+ | |||
+ | == Ручной бэкап базы данных == | ||
+ | *sudo -s | ||
+ | *su postgres | ||
+ | *pg_dump ebs>/tmp/ebs.dump | ||
+ | *exit | ||
+ | *mv /tmp/ebs.dump /opt/ebs/backups/датавремя.sql | ||
+ | |||
+ | == Восстановление ручного бэкапа базы данных == | ||
+ | sudo -s | ||
+ | billing force-stop | ||
+ | su postgres | ||
+ | dropdb ebs | ||
+ | createdb -O ebs ebs | ||
+ | psql ebs -f /путь к несжатому бэкапу | ||
+ | exit | ||
+ | billing start | ||
+ | |||
+ | = Настройка работы Биллинг-системы с Микротиком = | ||
+ | Подымем адрес Микротика в сторону клиентов, допустим 192.168.1.1/24 | ||
+ | |||
+ | ---- | ||
+ | Смотрим список доступных в системе интерфейсов: | ||
+ | <pre> | ||
+ | [test@MikroTik] > interface print | ||
+ | # NAME TYPE RX-RATE TX-RATE MTU | ||
+ | 0 R ether1 ether 0 0 1500 | ||
+ | 1 R ether2 ether 0 0 1500 | ||
+ | </pre> | ||
+ | пусть ether1 будет смотреть локальную сеть. Активируем | ||
+ | <pre> | ||
+ | [test@MikroTik] > interface enable 0 | ||
+ | [test@MikroTik] > ip address add address 192.168.1.1/24 interface ether1 | ||
+ | </pre> | ||
+ | Подымаем адрес биллинга, естественно. что в этой схеме он должен соответствовать диапазону адресов локальной сети | ||
+ | Проверяем подключенные сетевые устройства | ||
+ | $ sudo lshw -C network | ||
+ | По умолчанию обычно это eth0. Присваиваем статический адрес. | ||
+ | <pre> | ||
+ | #nano /etc/network/interfaces | ||
+ | |||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address 192.168.1.2 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 192.168.1.1 | ||
+ | </pre> | ||
+ | Перезагружаем сетевой интерфейс для вступления в силу изменений: | ||
+ | <pre> | ||
+ | #/etc/init.d/networking restart | ||
+ | </pre> | ||
+ | |||
+ | После установки набираем в адресной строке браузера 192.168.1.2 - отобразиться вебкабинет биллинга. входим дефолтным логином/паролем: admin/admin в администраторскую часть, где вам будут предоставлены | ||
+ | все возможности настроек биллинга. | ||
+ | Теперь переходим на биллинг в интерфейс администратора. | ||
+ | ==Параметры сервера доступа== | ||
+ | Справочники-Серверы Доступа-Добавить | ||
+ | Имя: - имя сервиса, произвольный, но для простоты можно повторить радиус имя<br> | ||
+ | Type: - из списка выберите версию оборудования <br> | ||
+ | И кликните на '''"Значения для выбранного типа"''' <br> | ||
+ | Версия SNMP: - поддерживающий тип протокола для оборудования в сети <br> | ||
+ | |||
+ | ==RADIUS параметры== | ||
+ | <br> | ||
+ | RADIUS имя: - '''(Важно!)''' должно соответствовать системному имени Mikrotik. То есть вы должны проверить, по умолчанию | ||
+ | <pre> | ||
+ | [test@Mikrotik] > system identity print | ||
+ | name: Mikrotik | ||
+ | </pre> | ||
+ | если Вы переименовали системное имя, то должны его продублировать тем же образом. В другом случае SSH протокол не будет обрабатывать запросы с биллинга! <br> | ||
+ | Секретная фраза: - Пароль для аутентификации по радиусу <br> | ||
+ | |||
+ | Атрибуты установки скорости - выставляются по умолчанию после клика на "Значения для выбранного типа" <br> | ||
+ | |||
+ | ==Параметры SSH== | ||
+ | Имя пользователя: Пароль: - по умолчанию ebs/ebspassword, логин и пароль для обмена пакетами по ssh протоколу. | ||
+ | Переходим на Mikrotik. System->Users Подымаем нового активного пользователя именем ebs и паролем ebspassword. Дополняем адресс адресом биллинга и в итоге должно получиться | ||
+ | <pre> | ||
+ | [test@Mikrotik] > user print | ||
+ | Flags: X - disabled | ||
+ | # NAME GROUP ADDRESS | ||
+ | 0 ;;; system default user | ||
+ | test full | ||
+ | 1 ebs full 192.168.1.2/32 | ||
+ | </pre> | ||
+ | С биллинга проверяем SSH подключение "Проверить SSH подключение". Если все сделано правильно, тест пройдет успешно. | ||
+ | На этом начальный этап связки оборудования окончен | ||
+ | |||
+ | |||
+ | = Тарифный план, Расчетный Период, Пул для PPPoE,L2TP,PPTP= | ||
+ | ==Создание Пула== | ||
+ | Перед созданием тарифных планов следует определиться каким образом будут вестись расходы клиентов, каким образом доступ станет ограниченным, как будет сниматься сумма и многое другое. Правила биллинга позволяют широкие многогранные возможности для этого. | ||
+ | определим стандарный вариант. | ||
+ | Создаем для начала пул для сессии, Не смотря что протоколы различны, пул для них создается по единому правилу IPv4. | ||
+ | СПРАВОЧНИКИ -> IP пулы -> Добавить <br> | ||
+ | |||
+ | '''Название*''' - имя пула, памятка, можете назвать на свое усмотрение <br> | ||
+ | '''Тип''' - IPv4 VPN - для реализации данных протоколов <br> | ||
+ | '''C IP*''' - начало диапазона, пример 10.0.128.0 <br> | ||
+ | '''По IP*''' - конец диапазона, пример 10.0.131.255 <br> | ||
+ | то есть в результате получили единый диапазон адресов 10.0.128.0/22 на 1023 клиента <br> | ||
+ | '''Следующий Пул''' - тут же после создания данного пула можно добавить новый <br> | ||
+ | [[Файл:2.jpg]] | ||
+ | ==Создание Расчетного Периода== | ||
+ | Расчетный период обязателен, именно таким образом биллинг будет снимать вложенную сумму клиента. Не смотря на то, что сумма будет отчисляться ежедневно или раз месяц, этот момент необходим для полной формы взаимодействий. | ||
+ | Допустим для разных тарифов будут разные условия, тогда стоит добавить несколько пунктов, к примеру один тариф отсчитывает сумму с момента подключения, другой обязательно вычитает с указанной даты или период даты (день,месяц, год) | ||
+ | |||
+ | СПРАВОЧНИКИ -> Расчетные периоды -> Добавить <br> | ||
+ | '''Параметры расчётного периода''' <br> | ||
+ | '''Название''' - Любое для памятки, в тестовом варианте отметим "Месяц" <br> | ||
+ | '''Начинать при активации''' - установка галочки уберет дату снятия суммы, так как каждому клиенту будет принят индивидуальный подход расчета, начиная с момента активации аккаунта. <br> | ||
+ | '''Длина Промежутка''' - через какой определенный момент будет определяться правило. | ||
+ | Пример: создаем с расчетным периодом Месяц и начинать при активации. Сумма снятия допустим будет 1000 условных единиц. Клиент ложит 23 числа сумму, с этой суммы 23 числа другого | ||
+ | месяца снимается именно 1000 условных единиц. | ||
+ | Другой пример: есть подключенная гостиница, где любой постоялец может активировать карточку и подключить свой ноутбук | ||
+ | через wi-fi. Правило с расчетным периодом День даст суточный режим активации данного аккаунта | ||
+ | Все остальные тонкости правил по отношению к акканту рассмотрим ниже <br> | ||
+ | [[Файл:3.jpg]] | ||
+ | |||
+ | ==Тарифные Планы== | ||
+ | Перейдем во вкладку Тарифные Планы, где и создадим все необходимые условия правил выхода в интернет для аккаунтов.Варианты как все будет работать безграничны, для начала мы создадим стандартный вариант <br> | ||
+ | Добавить - <br> | ||
+ | '''Общие параметры:''' <br> | ||
+ | '''Название:''' Имя тарифного Плана. Именно это название будет отображаться в кабинете пользователя. Учтите этот момент <br> | ||
+ | '''Способ Доступа:''' Выбираете тип аутентификации. <br> | ||
+ | '''Выполнять IPN действия:''' - этот момент нужно активировать при получение DHCP адресов с биллинга, если выдача идет с Mikrotik или коммутаторов второго уровня, то пункт следует пропустить <br> | ||
+ | '''VPN IP пул:''' - в списке отобразится все созданные до ныне пулы ( смотреть Ip Пулы) Примечание: Можно создать несколько тарифных планов и дать им один и тот же пул, если количество адресов позволяет это, в принципе, количество адресов можно увеличить в любой момент. Сам по себе пул не играет ни какой активной роли, все активные правила задаются в тарифных и дополнительных планах к аккаунту. <br> | ||
+ | '''Гостевой VPN IP пул:'''- служит для задач поднятия сессий, не входящий для роли к выходу в интернет. Например, для гостей сети, и как удачный вариант, для выдачи других адресов аккаунтам, которые попали в список должников. Таким образом удобно назначить в нате дополнительные правила для этих адресов и пересылать, к примеру, при любом запросе на страницу - заглушку с информационным листом, о том, что закончились деньги на счету. <br> для этого создаете в IP пуле еще один IPv4 VPN , отличный по адресному пространству от основного. Например, основной 192.168.1.1/24. дополнительный 192.168.2.1/24 - и назовите его,например, "блокировка". | ||
+ | Отсюда в списке Гостевой Пул выберите Блокировка. Подробно об этом опишется в разделе Страница- заглушка. <br> | ||
+ | '''Доступ разрешён:''' Здесь Вы можете определить в каком периоде будет работать тарифный план. <br> | ||
+ | '''Расчётный период:''' - Определяется для тарифного плана созданный до ныне расчетный период для снятия денег <br> | ||
+ | '''Стоимость пакета:''' - стоимость тарифного плана. Именно с этого значения определяется расчетный период и формулируется подсчет <br> | ||
+ | '''Требовать наличия стоимости пакета:''' <br> | ||
+ | |||
+ | '''Производить доснятие:''' - дополнительное условие, при котором в конце месяца не смотря на установленные правила снимется данная сумма. указанная в стоимости пакета. Если правила сформулированы через Периодические услуги, '''ВНИМАНИЕ!''', не отмечайте данный пункт, иначе сумма вычитается вдвойне. <br> | ||
+ | '''Оплата экспресс картами:''' - Разрешить через веб-кабинет оплату экспресс-картами <br> | ||
+ | '''Разрешить услугу перевода баланса:''' - пункт разрешает из своего счета-балланса пользователю перевести заданную сумму другому пользователю единой биллинговой системы. Разрешать или не разрешать зависит от ваших предпочтений. <br> | ||
+ | '''Описание тарифного плана:''' - текст, который отобразится в клиентской части вебкабинета, при описаниях тарифных планов, особенно удобен, если разрешить самостоятельно пользователю переходить по истечению срока на другие тарифные планы.<br> | ||
+ | '''Активен:''' Активация тарифного плана. Без галочки все что вы здесь сделали работать не будет на сторону аккаунта <br> | ||
+ | |||
+ | ==Параметры блокировки== | ||
+ | '''Разрешить пользовательскую блокировку:''' - пункт, разрешающий пользователю через вебкабинет приостановить услугу провайдера на период указанный ниже. при активации закрывается доступ по заданному протоколу и "замораживается" вычет баланса. <br> | ||
+ | '''Стоимость блокировки:''' Сумма для услуги данного тарифного плана <br> | ||
+ | '''MAX длительность блокировки:''' - число, определяющее количество дней <br> | ||
+ | '''Минимальный баланс для блокировки:''' - сумма, которая должна присутствовать на балансе в момент блокировки <br> | ||
+ | Удобен: для категории лиц, которые работают вахтовым методом, а также летний сезон с отпусками. | ||
+ | == Параметры Доступа == | ||
+ | '''Способ доступа''' - в списке выбираем метод аутентификации для данного тарифа <br> | ||
+ | '''Выполнять IPN действия:''' - ставим галочку, если требуется <br> | ||
+ | '''Доступ разрешён''' - здесь есть несколько моментов, особенно при учете изменения скорости в зависимости от времени или дня недели. К примеру у Вас есть смена тарифа с Дневного на Ночной. Определим, что дневная скорость будет по умолчанию и в списке выберем имя, для которого вы задавали временной промежуток для данного правила, ниже в Настройках скорости по-умолчанию зададим параметры MAX tx (kbps) | ||
+ | Rx (kbps) именно для этого времени <br> | ||
+ | '''Одноверменных RADIUS сессий на субаккаунт''' - крайне важная функция, не стоит ей пренебрегать, особенно учитывая протоколы PPP . Известно, что сессию, например PPPOE можно поднять повторно на другом компьютере. То есть одним логим и паролем можно подключиться с нескольких машин, момент правила на микротике дает лишь момент. при котором дублирующая сессия не способна нормально получать трафик. <br> | ||
+ | <pre> | ||
+ | [test@Mikrotik] /ppp profile> print | ||
+ | Flags: * - default | ||
+ | 0 * name="default" local-address=10.64.0.0 use-mpls=default use-compression=no | ||
+ | use-vj-compression=no use-encryption=no only-one=yes change-tcp-mss=no | ||
+ | address-list=internet_users | ||
+ | |||
+ | 1 * name="default-encryption" local-address=10.64.0.0 use-mpls=default | ||
+ | use-compression=default use-vj-compression=default use-encryption=yes | ||
+ | only-one=yes change-tcp-mss=default address-list=internet_users | ||
+ | </pre> | ||
+ | |||
+ | Здесь проблема, почему так приходиться на ней заострять, не заключается именно в попытке получить с одной сессии трафик на две и более клиентской машины, а в принципе работы биллинговой системы. Для биллинговой системы такая ситуация является коллизионной, и эту коллизию она решает сбросом данных сессий. В этот круговорот в итоге вовлекается дополнительно все клиентские сессии, не прошедшие допустимый временной интервал. То есть возникнет проблемы с клиентами, у которых в момент коллизии начнет рваться сесиия. Поэтому необходимо '''строго''' задать условия в данном пункте. если по умолчанию канал присваивается одной работающей машине так и укажите цифрой 1. Остальные попытки подключении на данный адрес пула будут отброшены. <br> | ||
+ | |||
+ | Конечный момент в настройках скоростях, добавляем дополнительные правила смены скорости в зависимости выставленных временных условий. допустим до этого вы задали временной параметр Ночной. кликаем '''Добавить''' .'''Time''' - выбираем имя ночного правила и задаем ниже все необходимые параметры скорости для данного временного промежутка | ||
+ | |||
+ | = Списания = | ||
+ | Позволяют сделать детальную настройку списания аккаунта <br> | ||
+ | Периодические услуги -> Добавить <br> | ||
+ | '''Название*''' - имя услуги <br> | ||
+ | '''Период*''' - выбираем из списка созданных расчетных периодов <br> | ||
+ | '''Стоимость''' - вычитаемая сумма за данный период <br> | ||
+ | '''Способ списания''' - каким образом по отношению к дате производится вычет ( в начале месяца снимается тарифная сумма, в конце или ежедневное списание методом деления стоимости на число календарных дней текущего месяца) | ||
+ | '''Кол-во списаний в сутки''' - При ежедневном списании можно увеличить деление в суточном режиме <br> | ||
+ | '''Условие списания*''' - вычет суммы производится до определенного момента, определяется числом, больше или меньше которого возможен дополнительный вычет <br> | ||
+ | '''Сумма для условия''' - Число для условия списания <br> | ||
+ | '''Активировать''' и '''Отключить''' - период времени для правила данного списания | ||
+ | |||
+ | ==Разовые услуги== | ||
+ | Сумма для условия активации аккаунта к данному тарифному плану <br> | ||
+ | |||
+ | С этого момента можно приступить к созданию акканта и проверить работоспособность системы | ||
+ | |||
+ | =Смена скорости трафика в зависимости от времени "Дневной" и "Ночной план", дней недели= | ||
+ | |||
+ | Создадим услугу смены скоростей в зависимости от времени суток. <br> | ||
+ | '''Период тарификации'''<br> | ||
+ | '''Добавить период''' - назовем первый период "Дневной". После этого выбираем его в общем списке и заполняем для него требуемые условия.<br> | ||
+ | '''Название подпериода''' - дублируем словом "Дневной" <br> | ||
+ | '''Начало периода*''' - время, с которого активируется данное правило, часы, минуты и секунды определяем моментом запуска данной скорости, год ставим прошедшим на данный момент временем<br> | ||
+ | '''Конец периода*''' - время, с которого деактивируется данное правило, часы, минуты и секунды опять же определяем моментом остановки данной скорости, год ставим с расчетом очень далекого будущего <br> | ||
+ | '''Повторять через''' - выбираем "День" <br> | ||
+ | Сохранить подпериод <br> | ||
+ | Аналогично для периода "Ночной". Время окончания одного периода совпадает с началом другого. <br> | ||
+ | Переходим во вкладку '''Тарифные планы'''. Для каждого тарифного плана, для которого будет руководствоваться данное правило нужно будет отдельно добавить следующее в Параметрах тарифного плана. В кладке "Параметры Доступа" в "Доступ раздрешен" в списке выбираем период. который у нас будет по умолчанию, к примеру это будет "Дневной", | ||
+ | Настройки скорости по-умолчанию заполняем требуемые для этого временного интервала и сохраняем. Теперь нам нужно изменить скорость на ночной. Кликаем на кнопку "Добавить" и заполняем "Добавить параметры изменения скорости" уже в списке "Time" выбрав имя ночного временного интервала, у нас он определен именем "Ночной" заполняем необходимые параметры скорости для этого времени суток.<bre> | ||
+ | Таким образом можно сутки раздробить еще на несколько временных интервалов, каждому выставив свой скоростной приоритет.<br> | ||
+ | Теперь давайте возьмем за образец смену скорости от дней недели, причем совместить данное правило с суточным изменением вполне резонно, главное в добавлении не создать противоречия со временем. <br> | ||
+ | Допустим есть ситуация, когда в будничные дни общий поток не имеет максимальной планки, а в субботние и ,особенно воскресенье, линия перегружена. То есть требуется как-то занизить скорость всех или определенных тарифных планов.<br> | ||
+ | '''Период тарификации'''<br> | ||
+ | '''Добавить период''' - назовем период "Будничный".<br> | ||
+ | '''Название подпериода''' - дублируем слово "Будничный" <br> | ||
+ | И начало периода с помощью календаря определяем. что у нас есть понедельник в прошедшем времени. Выставляем число понедельника и время с которого можно запустить данное правило. Конец периода определим пятницу той же календарной недели. Повторять через "Неделя". Сохраняем подпериод. Таким же образом определяем субботний и воскресный день и опять же повторяем через неделю и сохраняем подпериод. Далее в тарифных планах в "Добавить" выставляем в "Time" данные периоды и определяем требуемые параметры скоростей. |
Текущая версия на 18:27, 11 мая 2014
Содержание
- 1 Введение
- 2 Установка
- 3 Компоненты биллинг-системы
- 4 Платёжные системы
- 5 Импорт платежей
- 6 SMS рассылка
- 7 Резервное копирование
- 8 Настройка работы Биллинг-системы с Микротиком
- 9 Тарифный план, Расчетный Период, Пул для PPPoE,L2TP,PPTP
- 10 Списания
- 11 Смена скорости трафика в зависимости от времени "Дневной" и "Ночной план", дней недели
Введение
Этот раздел wiki будет посвящён новой версии биллинг-системы ExpertBilling 1.5.
ExpertBilling 1.5 принципиально другая биллинга система и не многим похожа на предыдущие версии. Она содержит веб-интерфейс, рассчитанный на работу с абонентскими базами до 300 000 - 500 000 абонентов и вертикально/горизонтально масштабируемую структуру, которая способна плавно наращивать вычислительные мощности.
Код ExpertBilling теперь открыт на 70%. Вы свободно можете модифицировать интерфейс и логику отсылки команд на сервера доступа.
ExpertBilling использует зарекомендовавшие себя production решения RabbitMQ, Celery, PostgreSQL, которые используются такими гигантами как Twitter, VmWare и многими другими.
ExpertBilling стал гораздо аккуратнее и логичнее в своей работе.
ExpertBilling теперь не привязывается к жёсткому диску. Вы сможете переустановить систему в любой момент, используя свою лицензию.
Увеличение количества абонентов стало возможно без обновления системы.
Кроме этого ExpertBilling 1.5 стал гораздо безопаснее и надёжнее. Мы проделали огромную работу и надеемся, что это не напрасно.
Обратите внимание, что выложенная версия ExpertBilling 1.5 является RC версией и вы её используете на свой страх и риск. Мы просим вас сообщать на форуме о всех найденных проблемах, чтобы они были быстрее исправлены.
Установка
Перед началом работы выполните следующее:
Выполните в консоли с правами суперпользователя:
$sudo -s
#apt-get install fabric python-psycopg2
Установка postgresql 9.1
#apt-get update #apt-get install fabric postgresql-9.1 postgresql-contrib-9.1 postgresql-server-dev-9.1
Возможно 3 варианта установки ExpertBilling 1.5. Обновление, апгрейд, апгрейд с версии 1.4.1. Апгрейд с более ранних версий не предусмотрен.
Установка с нуля
Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке.
#cd /opt/ #tar -xvzf путь к архиву с биллингом fabfile.py install.txt
Создание директории:
#mkdir /opt/ebs
Создание пользователя базы данных и базы данных. Рекомендуемый пароль - ebspassword:
#su postgres $createuser -P -s ebs $createdb -O ebs ebs $exit $exit
Запустите установку биллинга с нуля с правами root-а из директории /opt/.
#fab deploy:demo1.5_x64.tar.gz для 64-бит версии демо #fab deploy:demo1.5_x32.tar.gz для 32-бит версии демо
или подставить ваш скачанынй архив с системой. После того, как устанвока завершится - откройте в браузере айпи вашего сервера и войдите в веб-кабинет
Апгрейд
Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке.
#cd /opt/ #tar -xvzf путь к архиву с биллингом fabfile.py install.txt
И
#fab upgrade:demo.tar.gz
Апгрейд с версии 1.4.1
Скачанный архив нужно положить в /opt/ и распаковать из него только скрипт-инсталлятор fabfile.py и инструкцию по установке.
#cd /opt/ #tar -xvzf путь к архиву с биллингом fabfile.py install.txt
При апгрейде с версии 1.4.1 нужно: 1. Установить postgresql-9.1 postgresql-contrib-9.1. 2. Выполнить дамп базы данных с биллингом с помощью pg_dump
su postgres pg_dump ebs >/tmp/ebs.dump exit cp /tmp/ebs.dump /opt/ebs.dump
3. Удалить postgresql-8.4.
apt-get remove postgresql-8.4
4. Настроить postgresql-9.1 на запуск на порту 5432 (/etc/postgres/9.1/main/postgresql.conf). 5. Перезапустить postgresql, 6. Создать БД ebs с пользователем ebs
createuser -s -P ebs createdb -O ebs ebs
7. Импортировать в созданную базу дамп:
su postgres psql ebs -f /opt/ebs.dump
8. Запустить апгрейд:
#fab upgrade_14:demo.tar.gz
После установки откройте файл /opt/ebs/web/ebscab/settings_local.py и переопределите в нём значения из файла /opt/ebs/web/ebscab/settings.py. Этот файл не будет перезатираться при обновлениях.
После настройки веб-кабинета:
- /etc/init.d/apache2 reload
Внимание!!! Это не финальная версия 1.5. О всех найденных прблемах просьба писать на форуме http://forum.expertbilling.ru/
Имя и пароль по-умолчанию для входа в веб-кабинет admin/admin.
Компоненты биллинг-системы
- процесс core - занимается списанием периодиеских и разовых услуг, контроллирует RADIUS сессии, тарифицирует их, производит сервисные процедуры по проверке баланса для блокировок и их снятия.
- процесс nf - коллектор NetFlow. Занимается её сбором, упаковкой и отсылкой на обработку посредством брокера очередей RabbitMQ
- процесс nffilter - фильтр и агрегатор NetFlow. Занимается фильтрацией NetFlow, соотношением статистики и аккаунтов, поиск подходящих классов.
- процесс nfroutine - тарификатор NetFlow.
- процесс nfwriter - получает от nffilter через RabbitMQ пачки сырой отфильтрованной NetFlow статистики и записывает её на диск
- процесс rad_auth - RADIUS сервер. Занимается авторизацией и аутентификацией
- процесс rad_acct - RADIUS Accounting сервер.
- процесс celery - асинхронный обработчик заданий на взаимодействие с серверами доступа, отсылку SMS и выполнение сервисных процедур
- веб-кабинет
В нормальном состоянии все процессы должны быть запущены. Для обеспечения работы биллинг-системы должны быть запущены следующие процессы:
- postgresql - СУБД
- rabbitmq-server - брокер очередей
- memcached - кэширующий сервер для RADIUS - сервера и веб-кабинета.
Платёжные системы
В ExpertBilling 1.5 реализован приём следующих типов платежей:
- QIWI
- Единая Касса w1.ru
- Сбербанк РФ
- Liqpay
- EasyPay
- MasterPlat
- SimpleTerminal
- Robokassa
- Privat24
Настройка производится разово в файле settings_local.py веб-кабинета:
GETPAID_BACKENDS = ('payments.easypay', 'payments.liqpay', 'payments.ru_sberbank', 'payments.w1ru', 'payments.qiwiru', 'payments.simplaterminal', 'payments.robokassa', ) GETPAID_BACKENDS_SETTINGS = { # Please provide your settings for backends 'payments.liqpay' : { 'TYPE': 'frontend', 'DEFAULT_CURRENCY' : 'UAH', 'PUBLIC_KEY' : 'XXXXXXXX', 'PRIVATE_KEY' : 'XXXXXXXXXXXXXXXXXXXXXXX', 'LANGUAGE' : 'ru', 'PAY_WAY': ('card', 'liqpay', 'delayed'), 'EXPIRE_TIME': 36, }, 'payments.easypay' : { 'TYPE': 'backend', 'DEFAULT_CURRENCY' : 'UAH', 'SERVICE_ID' : '1', 'allowed_ip': ('93.183.196.28', '93.183.196.26'), }, 'payments.ru_sberbank' : { 'TYPE': 'backend', 'DEFAULT_CURRENCY' : 'RUB', 'PASSWORD' : '12345', 'allowed_ip': ('93.183.196.28', '93.183.196.26'), }, 'payments.robokassa' : { 'TYPE': 'frontend', 'DEFAULT_CURRENCY' : 'RUB', 'MERCHANT_LOGIN' : 'login', 'PASSWORD1' : 'password1', 'PASSWORD2' : 'password2', 'TEST_MODE': False, }, 'payments.w1ru' : { 'TYPE': 'frontend', 'DEFAULT_CURRENCY' : 'RUB', 'MERCHANT_ID': '163789612661', 'MERCHANT_PASSWORD': 'MFVSdmZNajdBRXdcWmE3Z191cjBLWFJsZjhb', #======================================================================= # 'PTENABLED':[ # 'YandexMoneyRUB', # 'WebMoneyRUB', # ], #======================================================================= 'PTDISABLED':[ ], 'allowed_ip': ('93.183.196.28', '93.183.196.26'), 'EXPIRE_DAYS': 31, }, 'payments.qiwiru' : { 'TYPE': 'frontend', 'DEFAULT_CURRENCY' : 'RUB', 'TERMINAL_ID' : '12345', 'TERMINAL_PASSWORD' : '12345', 'LIFETIME': 48, 'ALARM_SMS': 0, 'ACCEPT_CALL': 0, 'MIN_SUM': 100, }, 'payments.masterplat' : { 'TYPE': 'backend', 'DEFAULT_CURRENCY' : 'RUB', 'DUSER' : 'test', 'DPASS': 'test', }, 'payments.simpleterminal' : { 'TYPE': 'backend', 'DEFAULT_CURRENCY' : 'RUB', 'SECRET': '12345678901234567890hgh55g54', } }
Дополнительно нужно зайти через веб-интерфейс в закрытую часть интерфейса администрирвоания по пути /admin/, зайти в раздел sites и для сайта по-умолчанию указать доменное имя сервера, которое доступно снаружи. УДАЛЯТЬ ЗАПИСЬ НЕЛЬЗЯ. ЕЁ НУЖНО ИМЕННО ОТРЕДАКТИРОВАТЬ.
Для приёма QIWI требуется прописать в cron (crontab -e) следующее:
*/5 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python manage.py process_qiwi_payments
При работе с терминалами qiwi ссылка для постбэка будет выглядеть следующим образом:
http://<server>/payments.qiwiru/qiwiru/payment/
При работе с единой кассой ссылка для постбэка:
http://<server>/payments.w1ru/w1ru/postback/
Для единой кассы дополнительно нужно авторизовать сайт. Для этого добавьте в файл
/opt/ebs/web/ebscab/templates/site_verify_codes.html
тэг, который вы получили в интерфейсе единой кассы.
За то, какие способы оплаты будут доступны пользователям, отвечает переменная GETPAID_BACKENDS. Настройки конкретного платёжного шлюза находятся в соответствующих секциях GETPAID_BACKENDS_SETTINGS.
Все типы платежей разбиты на 2 логических типа - frontend и backend. Frontend доступен для выбора через веб-кабинет. Backend используется, если оплата происходит без взаимодействия пользователя с веб-кабинетом. К примеру через терминал. Не меняйте эти значения.
Платёжная система SimpleTerminal
Это псевдо-платёжная система, которая позволяет использовать API биллинга для пополнения счёта с помощью HTTP запросов. Типичный запрос на пополнение выглядит так: sum=100&uid=contract&trans=123456&secret=1235453423423g4 Полный URL
http://<server>/payments.simpleterminal/simpleterminal/payment/?sum=100&uid=contract&trans=123456&secret=1235453423423g4
Если в настройках указан SECRET - его необходимо указывать в запросе в качестве параметра.
Просмотр оплаченных счетов доступен через интерфейс администратора по ссылке /ebsadmin/payment/. Допускается изменять статус платежа. Пополнение счёта абонента или удаление пополнения произойдёт автоматически.
Импорт платежей
В ExpertBilling 1.5 реализован импорт выписок о проведённых платежах. Скрипт находится в директории /opt/ebs/data/scripts/payments/. Система импорта автономна и может работать на другом сервере или по любому пути на файловой системе.
Перед началом работы нужно переименовать файл pattern.ini.tmpl в pattern.ini и настроить формат обрабатываемых платёжек.
Пример:
[belpost] active=1 folderin=belpost/IN/ folderout=belpost/OUT/ foldererr=belpost/ERR/ mask=*.alt rmask=r*.alt separator=; payment_type=BELPOST_PAYMENT_IMPORT fieldnames=DATETIME;ACC;FIO;SUM;EMPTY;PID;EMPTY fielddefault=;;;;;; datetime_fmt=%d/%m/%Y %H:%M:%S reversal_payments=False [Belarusbank] active=1 folder_in=Belarusbank/IN/ folder_out=Belarusbank/OUT/ folder_err=Belarusbank/ERR/ file_mask=*.asb exclude_mask=lan.* separator=; payment_type=BELARUSBANK_PAYMENT_IMPORT encoding=cp855 fieldnames=ACC;FIO;DATETIME;TIME;SUM;EMPTY;EMPTY;EMPTY;PID datetime_fmt=%d/%m/%Y time_fmt=%H:%M reversal_payments=False [Webmoney] active=1 folder_in=WebMoney/IN/ folder_out=WebMoney/OUT/ folder_err=WebMoney/ERR/ file_mask=*.* exclude_mask=r*.* separator=; payment_type=WEBMONEY_PAYMENT_IMPORT fieldnames=DATETIME;ACC;SUM;EMPTY;EMPTY;PID;EMPTY;EMPTY;EMPTY;EMPTY datetime_fmt=%d/%m/%Y %H:%M:%S time_fmt= encoding=utf-8 reversal_payments=False [EasyPay] active=1 folder_in=EasyPay/IN/ folder_out=EasyPay/OUT/ folder_err=EasyPay/ERR/ file_mask=*.txt exclude_mask=r*.txt separator=; payment_type=EASYPAY_PAYMENT_IMPORT fieldnames=DATETIME;ACC;PID;FIO;SUM datetime_fmt=%d/%m/%Y %H:%M:%S encoding=utf-8 time_fmt= reversal_payments=False [PriorBank] active=1 folder_in=Priorbank/IN/ folder_out=PriorBank/OUT/ folder_err=Priorbank/ERR/ file_mask=*.prb exclude_mask=r*.prb separator=; payment_type=PRIORBANK_PAYMENT_IMPORT fieldnames=SUM;EMPTY;ACC;EMPTY;PID;EMPTY;EMPTY;EMPTY;DATETIME;EMPTY datetime_fmt=%d%m%y encoding=utf-8 time_fmt= reversal_payments=False
Опция reversal_payments=True говорит, что платёж нужно сторнировать - отменить. Директории folder_in, folder_out, folder_err содержат входящие платежи (вы должны помещать их туда чем-либо в раздельных файлах с расширением, указанным в переменной file_mask), обработанные платежи и платежи с ошибками соответственно.
Для обработки платежей, вам нужно настроить crontab на вызов файла process.py раз в 10-15 минут.
*/10 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python process.py
SMS рассылка
В ExpertBilling 1.5 реализован механизм рассылки SMS. Он позволяет:
- Слать SMS конкретному пользователю, используя шаблон сообщения.
- Слать SMS группе пользователей, используя шаблон сообщения.
- Создавать отложенные сообщения для отправки их в будущем
- Выполнять рассылку сообщений о балансе.
Настройка SMS подсистемы производится в файле settings_local.py
SENDSMS_BACKENDS = ( ('sendsms.backends.websms.SmsBackend', 'websms.ru'), ('sendsms.backends.smsru.SmsBackend', 'sms.ru'), ) SENDSMS_BACKENDS_SETTINGS = { 'sendsms.backends.websms': { 'FROM_NAME': '', # http://websms.ru/FromName.asp 'USERNAME': '', 'PASSWORD': '', }, 'sendsms.backends.smsru': { 'FROM_NAME': '', 'API_ID': '', 'TRANSLIT': '1', 'TEST': '0', 'PARTNER_ID': '', }, 'sendsms.backends.smspilotru': { 'FROM_NAME': '', 'API_ID': '', } } SENDSMS_IF_BALLANCE_AMOUNT = 0 SENDSMS_DEFAULT_BACKEND = 'sendsms.backends.websms.SmsBackend'
Переменная SENDSMS_BACKENDS содержит пути к бэкэндам для работы с соответствующими SMS-операторами. По-умолчанию реализована поддержка sms.ru и websms.ru Переменная SENDSMS_BACKENDS_SETTINGS содержит настройки конкретного оператора.
Если вы планируете использовать рассылку о балансе - вам необходимо также заполнить переменные SENDSMS_IF_BALLANCE_AMOUNT (минимальный баланс, ниже которого будут слаться уведомления) и SENDSMS_DEFAULT_BACKEND (бэкэнд, используемый при отсылке сообщений из скриптов).
Шаблон самого сообщения вы можете отредактировать в интерфейсе администратора Справочники->Шаблоны->Минимальный баланс. Шаблон будет обработан шаблонизатором Django. Внутри него вы можете использовать объект account, который содержит текущие значения из полей аккаунта. К примеру Шаблон:Account.balance - подставит баланс, Шаблон:Account.password - пароль. Парсинг шаблона и подстановка будут выполняться непосредственно в момент отсылки. До отсылки сообщение будет храниться в базе в виде шаблона.
Для автоматизации ежемесячной рассылки нужно добавить в crontab следующие записи:
12 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python manage.py ballance_sms_messages # раз в сутки в 12 дня слат ь нотификации о балансе */5 * * * * cd /opt/ebs/web/ebscab/ && /opt/ebs/venv/bin/python manage.py process_sms_messages # каждые 5 минут выполнять отсылку отложенных SMS сообщений.
Резервное копирование
Основную ценность предоставляет база данных, паэтому рекомендуется настроить регулярное создание бэкапов с копированием их на удалённый сервер. Ниже описаны способы создания бэкапов и дана необходимая информация о их восстановлении.
Бэкапы при обновлении системы
При каждом обновлении скрипт обновления автоматически создаёт бэкапы
- базы данных
- содержимого директории /opt/ebs/data/
- содержимого директории /opt/ebs/web/
Ручной бэкап базы данных
- sudo -s
- su postgres
- pg_dump ebs>/tmp/ebs.dump
- exit
- mv /tmp/ebs.dump /opt/ebs/backups/датавремя.sql
Восстановление ручного бэкапа базы данных
sudo -s billing force-stop su postgres dropdb ebs createdb -O ebs ebs psql ebs -f /путь к несжатому бэкапу exit billing start
Настройка работы Биллинг-системы с Микротиком
Подымем адрес Микротика в сторону клиентов, допустим 192.168.1.1/24
Смотрим список доступных в системе интерфейсов:
[test@MikroTik] > interface print # NAME TYPE RX-RATE TX-RATE MTU 0 R ether1 ether 0 0 1500 1 R ether2 ether 0 0 1500
пусть ether1 будет смотреть локальную сеть. Активируем
[test@MikroTik] > interface enable 0 [test@MikroTik] > ip address add address 192.168.1.1/24 interface ether1
Подымаем адрес биллинга, естественно. что в этой схеме он должен соответствовать диапазону адресов локальной сети Проверяем подключенные сетевые устройства $ sudo lshw -C network По умолчанию обычно это eth0. Присваиваем статический адрес.
#nano /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1
Перезагружаем сетевой интерфейс для вступления в силу изменений:
#/etc/init.d/networking restart
После установки набираем в адресной строке браузера 192.168.1.2 - отобразиться вебкабинет биллинга. входим дефолтным логином/паролем: admin/admin в администраторскую часть, где вам будут предоставлены все возможности настроек биллинга. Теперь переходим на биллинг в интерфейс администратора.
Параметры сервера доступа
Справочники-Серверы Доступа-Добавить
Имя: - имя сервиса, произвольный, но для простоты можно повторить радиус имя
Type: - из списка выберите версию оборудования
И кликните на "Значения для выбранного типа"
Версия SNMP: - поддерживающий тип протокола для оборудования в сети
RADIUS параметры
RADIUS имя: - (Важно!) должно соответствовать системному имени Mikrotik. То есть вы должны проверить, по умолчанию
[test@Mikrotik] > system identity print name: Mikrotik
если Вы переименовали системное имя, то должны его продублировать тем же образом. В другом случае SSH протокол не будет обрабатывать запросы с биллинга!
Секретная фраза: - Пароль для аутентификации по радиусу
Атрибуты установки скорости - выставляются по умолчанию после клика на "Значения для выбранного типа"
Параметры SSH
Имя пользователя: Пароль: - по умолчанию ebs/ebspassword, логин и пароль для обмена пакетами по ssh протоколу. Переходим на Mikrotik. System->Users Подымаем нового активного пользователя именем ebs и паролем ebspassword. Дополняем адресс адресом биллинга и в итоге должно получиться
[test@Mikrotik] > user print Flags: X - disabled # NAME GROUP ADDRESS 0 ;;; system default user test full 1 ebs full 192.168.1.2/32
С биллинга проверяем SSH подключение "Проверить SSH подключение". Если все сделано правильно, тест пройдет успешно. На этом начальный этап связки оборудования окончен
Тарифный план, Расчетный Период, Пул для PPPoE,L2TP,PPTP
Создание Пула
Перед созданием тарифных планов следует определиться каким образом будут вестись расходы клиентов, каким образом доступ станет ограниченным, как будет сниматься сумма и многое другое. Правила биллинга позволяют широкие многогранные возможности для этого.
определим стандарный вариант.
Создаем для начала пул для сессии, Не смотря что протоколы различны, пул для них создается по единому правилу IPv4.
СПРАВОЧНИКИ -> IP пулы -> Добавить
Название* - имя пула, памятка, можете назвать на свое усмотрение
Тип - IPv4 VPN - для реализации данных протоколов
C IP* - начало диапазона, пример 10.0.128.0
По IP* - конец диапазона, пример 10.0.131.255
то есть в результате получили единый диапазон адресов 10.0.128.0/22 на 1023 клиента
Следующий Пул - тут же после создания данного пула можно добавить новый
Файл:2.jpg
Создание Расчетного Периода
Расчетный период обязателен, именно таким образом биллинг будет снимать вложенную сумму клиента. Не смотря на то, что сумма будет отчисляться ежедневно или раз месяц, этот момент необходим для полной формы взаимодействий. Допустим для разных тарифов будут разные условия, тогда стоит добавить несколько пунктов, к примеру один тариф отсчитывает сумму с момента подключения, другой обязательно вычитает с указанной даты или период даты (день,месяц, год)
СПРАВОЧНИКИ -> Расчетные периоды -> Добавить
Параметры расчётного периода
Название - Любое для памятки, в тестовом варианте отметим "Месяц"
Начинать при активации - установка галочки уберет дату снятия суммы, так как каждому клиенту будет принят индивидуальный подход расчета, начиная с момента активации аккаунта.
Длина Промежутка - через какой определенный момент будет определяться правило.
Пример: создаем с расчетным периодом Месяц и начинать при активации. Сумма снятия допустим будет 1000 условных единиц. Клиент ложит 23 числа сумму, с этой суммы 23 числа другого
месяца снимается именно 1000 условных единиц.
Другой пример: есть подключенная гостиница, где любой постоялец может активировать карточку и подключить свой ноутбук
через wi-fi. Правило с расчетным периодом День даст суточный режим активации данного аккаунта
Все остальные тонкости правил по отношению к акканту рассмотрим ниже
Файл:3.jpg
Тарифные Планы
Перейдем во вкладку Тарифные Планы, где и создадим все необходимые условия правил выхода в интернет для аккаунтов.Варианты как все будет работать безграничны, для начала мы создадим стандартный вариант
Добавить -
Общие параметры:
Название: Имя тарифного Плана. Именно это название будет отображаться в кабинете пользователя. Учтите этот момент
Способ Доступа: Выбираете тип аутентификации.
Выполнять IPN действия: - этот момент нужно активировать при получение DHCP адресов с биллинга, если выдача идет с Mikrotik или коммутаторов второго уровня, то пункт следует пропустить
VPN IP пул: - в списке отобразится все созданные до ныне пулы ( смотреть Ip Пулы) Примечание: Можно создать несколько тарифных планов и дать им один и тот же пул, если количество адресов позволяет это, в принципе, количество адресов можно увеличить в любой момент. Сам по себе пул не играет ни какой активной роли, все активные правила задаются в тарифных и дополнительных планах к аккаунту.
Гостевой VPN IP пул:- служит для задач поднятия сессий, не входящий для роли к выходу в интернет. Например, для гостей сети, и как удачный вариант, для выдачи других адресов аккаунтам, которые попали в список должников. Таким образом удобно назначить в нате дополнительные правила для этих адресов и пересылать, к примеру, при любом запросе на страницу - заглушку с информационным листом, о том, что закончились деньги на счету.
для этого создаете в IP пуле еще один IPv4 VPN , отличный по адресному пространству от основного. Например, основной 192.168.1.1/24. дополнительный 192.168.2.1/24 - и назовите его,например, "блокировка".
Отсюда в списке Гостевой Пул выберите Блокировка. Подробно об этом опишется в разделе Страница- заглушка.
Доступ разрешён: Здесь Вы можете определить в каком периоде будет работать тарифный план.
Расчётный период: - Определяется для тарифного плана созданный до ныне расчетный период для снятия денег
Стоимость пакета: - стоимость тарифного плана. Именно с этого значения определяется расчетный период и формулируется подсчет
Требовать наличия стоимости пакета:
Производить доснятие: - дополнительное условие, при котором в конце месяца не смотря на установленные правила снимется данная сумма. указанная в стоимости пакета. Если правила сформулированы через Периодические услуги, ВНИМАНИЕ!, не отмечайте данный пункт, иначе сумма вычитается вдвойне.
Оплата экспресс картами: - Разрешить через веб-кабинет оплату экспресс-картами
Разрешить услугу перевода баланса: - пункт разрешает из своего счета-балланса пользователю перевести заданную сумму другому пользователю единой биллинговой системы. Разрешать или не разрешать зависит от ваших предпочтений.
Описание тарифного плана: - текст, который отобразится в клиентской части вебкабинета, при описаниях тарифных планов, особенно удобен, если разрешить самостоятельно пользователю переходить по истечению срока на другие тарифные планы.
Активен: Активация тарифного плана. Без галочки все что вы здесь сделали работать не будет на сторону аккаунта
Параметры блокировки
Разрешить пользовательскую блокировку: - пункт, разрешающий пользователю через вебкабинет приостановить услугу провайдера на период указанный ниже. при активации закрывается доступ по заданному протоколу и "замораживается" вычет баланса.
Стоимость блокировки: Сумма для услуги данного тарифного плана
MAX длительность блокировки: - число, определяющее количество дней
Минимальный баланс для блокировки: - сумма, которая должна присутствовать на балансе в момент блокировки
Удобен: для категории лиц, которые работают вахтовым методом, а также летний сезон с отпусками.
Параметры Доступа
Способ доступа - в списке выбираем метод аутентификации для данного тарифа
Выполнять IPN действия: - ставим галочку, если требуется
Доступ разрешён - здесь есть несколько моментов, особенно при учете изменения скорости в зависимости от времени или дня недели. К примеру у Вас есть смена тарифа с Дневного на Ночной. Определим, что дневная скорость будет по умолчанию и в списке выберем имя, для которого вы задавали временной промежуток для данного правила, ниже в Настройках скорости по-умолчанию зададим параметры MAX tx (kbps)
Rx (kbps) именно для этого времени
Одноверменных RADIUS сессий на субаккаунт - крайне важная функция, не стоит ей пренебрегать, особенно учитывая протоколы PPP . Известно, что сессию, например PPPOE можно поднять повторно на другом компьютере. То есть одним логим и паролем можно подключиться с нескольких машин, момент правила на микротике дает лишь момент. при котором дублирующая сессия не способна нормально получать трафик.
[test@Mikrotik] /ppp profile> print Flags: * - default 0 * name="default" local-address=10.64.0.0 use-mpls=default use-compression=no use-vj-compression=no use-encryption=no only-one=yes change-tcp-mss=no address-list=internet_users 1 * name="default-encryption" local-address=10.64.0.0 use-mpls=default use-compression=default use-vj-compression=default use-encryption=yes only-one=yes change-tcp-mss=default address-list=internet_users
Здесь проблема, почему так приходиться на ней заострять, не заключается именно в попытке получить с одной сессии трафик на две и более клиентской машины, а в принципе работы биллинговой системы. Для биллинговой системы такая ситуация является коллизионной, и эту коллизию она решает сбросом данных сессий. В этот круговорот в итоге вовлекается дополнительно все клиентские сессии, не прошедшие допустимый временной интервал. То есть возникнет проблемы с клиентами, у которых в момент коллизии начнет рваться сесиия. Поэтому необходимо строго задать условия в данном пункте. если по умолчанию канал присваивается одной работающей машине так и укажите цифрой 1. Остальные попытки подключении на данный адрес пула будут отброшены.
Конечный момент в настройках скоростях, добавляем дополнительные правила смены скорости в зависимости выставленных временных условий. допустим до этого вы задали временной параметр Ночной. кликаем Добавить .Time - выбираем имя ночного правила и задаем ниже все необходимые параметры скорости для данного временного промежутка
Списания
Позволяют сделать детальную настройку списания аккаунта
Периодические услуги -> Добавить
Название* - имя услуги
Период* - выбираем из списка созданных расчетных периодов
Стоимость - вычитаемая сумма за данный период
Способ списания - каким образом по отношению к дате производится вычет ( в начале месяца снимается тарифная сумма, в конце или ежедневное списание методом деления стоимости на число календарных дней текущего месяца)
Кол-во списаний в сутки - При ежедневном списании можно увеличить деление в суточном режиме
Условие списания* - вычет суммы производится до определенного момента, определяется числом, больше или меньше которого возможен дополнительный вычет
Сумма для условия - Число для условия списания
Активировать и Отключить - период времени для правила данного списания
Разовые услуги
Сумма для условия активации аккаунта к данному тарифному плану
С этого момента можно приступить к созданию акканта и проверить работоспособность системы
Смена скорости трафика в зависимости от времени "Дневной" и "Ночной план", дней недели
Создадим услугу смены скоростей в зависимости от времени суток.
Период тарификации
Добавить период - назовем первый период "Дневной". После этого выбираем его в общем списке и заполняем для него требуемые условия.
Название подпериода - дублируем словом "Дневной"
Начало периода* - время, с которого активируется данное правило, часы, минуты и секунды определяем моментом запуска данной скорости, год ставим прошедшим на данный момент временем
Конец периода* - время, с которого деактивируется данное правило, часы, минуты и секунды опять же определяем моментом остановки данной скорости, год ставим с расчетом очень далекого будущего
Повторять через - выбираем "День"
Сохранить подпериод
Аналогично для периода "Ночной". Время окончания одного периода совпадает с началом другого.
Переходим во вкладку Тарифные планы. Для каждого тарифного плана, для которого будет руководствоваться данное правило нужно будет отдельно добавить следующее в Параметрах тарифного плана. В кладке "Параметры Доступа" в "Доступ раздрешен" в списке выбираем период. который у нас будет по умолчанию, к примеру это будет "Дневной",
Настройки скорости по-умолчанию заполняем требуемые для этого временного интервала и сохраняем. Теперь нам нужно изменить скорость на ночной. Кликаем на кнопку "Добавить" и заполняем "Добавить параметры изменения скорости" уже в списке "Time" выбрав имя ночного временного интервала, у нас он определен именем "Ночной" заполняем необходимые параметры скорости для этого времени суток.<bre>
Таким образом можно сутки раздробить еще на несколько временных интервалов, каждому выставив свой скоростной приоритет.
Теперь давайте возьмем за образец смену скорости от дней недели, причем совместить данное правило с суточным изменением вполне резонно, главное в добавлении не создать противоречия со временем.
Допустим есть ситуация, когда в будничные дни общий поток не имеет максимальной планки, а в субботние и ,особенно воскресенье, линия перегружена. То есть требуется как-то занизить скорость всех или определенных тарифных планов.
Период тарификации
Добавить период - назовем период "Будничный".
Название подпериода - дублируем слово "Будничный"
И начало периода с помощью календаря определяем. что у нас есть понедельник в прошедшем времени. Выставляем число понедельника и время с которого можно запустить данное правило. Конец периода определим пятницу той же календарной недели. Повторять через "Неделя". Сохраняем подпериод. Таким же образом определяем субботний и воскресный день и опять же повторяем через неделю и сохраняем подпериод. Далее в тарифных планах в "Добавить" выставляем в "Time" данные периоды и определяем требуемые параметры скоростей.