BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 июн 2025, 13:14

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 02 янв 2014, 11:01 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
6.0
Как синхронизировать состояние сервиса в соответствии со статусом договора?
То есть если у договора статус закрыт, то и состояние сервиса перевести в состояние отключен.
Так как есть договоры со статусом закрыт а состояние сервиса у них включен.
Возможно появляются такие договоры когда договор закрывается по недостатку средств баланса, а в это время BGInetAccess в зависшем состоянии, и после перезапуска BGInetAccess`а сервисы не выключаются, остаются в состоянии включен.
Или когда абонент имея статус договора закрыт, сменил тарифный план через web статистику, сервис на закрытом договоре включается.
Видимо скрипт поведения "изменения тарифа договора" включает сервис, он не проверят статус договора.
Код:
//package ru.maglan.bgbilling.script.contract;

import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.util.ArrayList;
import java.util.List;
 
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ;
import ru.bitel.bgbilling.modules.inet.api.common.bean.InetServOption;
import ru.bitel.bgbilling.modules.inet.api.common.service.InetServService;
//import ru.bitel.bgbilling.modules.inet.api.server.event.InetServModifiedEvent;
import ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

public class MyTariffChange
   extends EventScriptBase
{
   private static int DLINK_SERV_TYPE = 1;
   private static int INET_MODULE_ID = 1;

   @Override
   public void onEvent( Event event, Setup setup2, ConnectionSet connectionSet3 )
      throws Exception
   {
ServerContext context = ServerContext.get();      
      InetServService wsServ = context.getService( InetServService.class, INET_MODULE_ID );
 
      List<InetServ> servList = wsServ.inetServList( event.getContractId() );
 
      for ( InetServ serv : servList )
      {
         if ( serv.getTypeId() == DLINK_SERV_TYPE )
         {
            print( "publish InetSaServModifyEvent ");
            //context.publishAfterCommit( new InetServModifiedEvent( INET_MODULE_ID, event.getContractId(), User.USER_SERVER, serv, serv, new ArrayList<InetServOption> () ) );
            context.publishAfterCommit( new InetSaServModifyEvent( INET_MODULE_ID, 0, serv, serv, InetServ.STATE_ENABLE, new ArrayList<InetServOption> ()  ) );
         }
      }
   }

}


Последний раз редактировалось lan31 05 янв 2014, 10:44, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 янв 2014, 08:08 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
в шедулере есть активация деактивация сервисов, настройте задание

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 янв 2014, 10:33 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
skyb писал(а):
в шедулере есть активация деактивация сервисов, настройте задание

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 янв 2014, 14:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
lan31 писал(а):
skyb писал(а):
в шедулере есть активация деактивация сервисов, настройте задание

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

а руками ели попробовать на договоре включить, тоже фиг? паходу у меня такая же проблема, правда возникла она раньше, и решить ее не могут посихпор. на инете с самого начала? или перешли с другого модуля
?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 янв 2014, 02:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А этот скрипт точно нужен?
Попробуйте
context.publishAfterCommit( new InetSaStateModifyEvent( INET_MODULE_ID, 0, serv, InetServ.STATE_ENABLE, 0, true ) );
вместо
context.publishAfterCommit( new InetSaServModifyEvent( INET_MODULE_ID, 0, serv, serv, InetServ.STATE_ENABLE, new ArrayList<InetServOption> () ) );

Означает команду на включение, но последний аргумент - recheck - означает, что Access выполнит проверку (авторизацию) сервиса.
В конфигурации модуля должно быть указано authorization.mode=1, чтобы recheck работал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 янв 2014, 13:25 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Цитата:
паходу у меня такая же проблема, правда возникла она раньше, и решить ее не могут посихпор
...
100 раз подтверждаю!
Будь проклят тот день когда я связался с модулем inet
Типичная ситуация :
INET управляет микротиком по inteserviceactivator
Всё настроено по http://wiki.bitel.ru/index.php/%D0%9E%D ... tik_api%29
инициализация сервиса - по трафику, нетфлоу логи есть!

Клиент уходит в минус, разрешающие правила с микротика удаляются, клиент заносит денежку, разрешающие правила на микротике не появляются, статус сервиса - открыт, состояние - отключён!
начинаю манипулировать пунктами контекстного меню :
1.Синхронизировать сервис на устройсте ( отладка ) - в логах вижу что , внячале вызываюся команды sa.command.serv.create, потом -sa.command.serv.disable, команда sa.command.serv.enable не вызывается!

2 Включить сервис на устройстве (отладка) - вместо команд sa.command.serv.enable вижу в логах только :

Код:
mq 01-15/10:59:32  INFO [event-proc-p-2-t-1] InetServRuntimeMap - Caught event: Event[ru.bitel.bgbilling.modules.inet.api.server.event.InetServModifiedEvent] moduleId: 10; pluginId: no; cid: 10724; scid: -1; userId: 1; timestamp: 1389769172213
mq 01-15/10:59:32  INFO [event-proc-p-2-t-1] InetServRuntimeMap - Reload InetServRuntime: 857
mq 01-15/10:59:32  INFO [event-proc-p-2-t-1] InetServRuntimeMap - Removing InetServRuntime: 857
mq 01-15/10:59:32  INFO [event-proc-p-2-t-1] InetServRuntimeMap - Adding InetServRuntime: 857
mq 01-15/10:59:32  INFO [event-proc-p-2-t-1] InetServRuntimeMap - ContractId: 10724; status: 0; servId: 857
        1142:192.168.144.104-192.168.144.104:222.123:16
        Options [] TariffModuleTreeSet [28:02.04.2013-…; ]
        Device state: 0; optionSet:


В результате клиента включаю руками на микротике :cry:
В чём смысл этих команд ? зачем они ваще нужны если нихрена не работают ?

http://www.bgbilling.ru/v6.0/doc/ch17s10.html :
Цитата:
Состояние сервиса может быть "подключён", либо "отключен", отображает реальное состояние, которое было установлено на устройстве. Между состояниями "подключен" и "отключен" модуль осуществляет автоматическое переключение в зависимости от состояния баланса (больше, либо меньше лимита), статуса договора, статуса сервиса. Сервис подключен, когда в договоре установлен активный для него статус, сервис в статусе открыт и баланс больше лимита.

Договор у клиента - активен! сервис - открыт ! баланс больше лимита! ВСе условия выполняются! Но сотояние сервиса всёравно - ОТКЛЮЧЁН! Хоть ты тресни! Даже трафик с него в нетфлоу-логах есть !
ЧТО ещё надо БЖБ чтобы включить в стостояние "подключён" ?
Как его заставить выполнить команды включения разрешающих правил на микротике ?

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 янв 2014, 14:33 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
в таких сисуациях нада оба А А сервера перепустить, помогает, ну и брокер, его кстати первым

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 янв 2014, 15:14 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Все проблемы, описанные ниже с первым сообщением никак не соотносятся.
Там именно в скрипте предобработки изменения тарифа неправильный вызов:
Цитата:
Видимо скрипт поведения "изменения тарифа договора" включает сервис, он не проверят статус договора.

ok-2004: Билд последний? После обновления делали "Скомпилировать все" в динамических классах перед тем как обновить/перезапустить Access/Accounting?
Нужен доступ по ssh и номер договора, на котором можно посмотреть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 янв 2014, 15:57 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
2amir:
билд последнйи. конечно компилил перед обновлением и перезапуском акцессов, Вам очевидно нужен будет доступ как к серверу BGB, так и к серверу inet. Я подготовлю доступ ко второму компу ( он у нас на левых ипах ) и скину данные Вам в личку.

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 янв 2014, 16:30 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Amir , отправил данные по доступу в ЛС

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.043s | 35 Queries | GZIP : On ]