forum.bitel.ru
http://forum.bitel.ru/

Событие при смены зоны в ТП модуль DialUp
http://forum.bitel.ru/viewtopic.php?f=5&t=4261
Страница 1 из 1

Автор:  focus [ 06 июл 2010, 14:45 ]
Заголовок сообщения:  Событие при смены зоны в ТП модуль DialUp

Здравствуйте.

Есть ли (возможно ли добавить) событие, генерируемое при изменении зоны в тарифном плане (модуль DialUp).
Ниже картинка, о какой зоне идет речь.
Вложение:
8.jpg
8.jpg [ 30.27 КБ | Просмотров: 4394 ]

Нужно, это для того, чтобы оперативно среагировать на то, что пользователь исчерпал предоплаченный трафик
и далее сообщить ему об этом.

Автор:  Администратор [ 26 окт 2010, 10:21 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

http://www.bgbilling.ru/v5.1/javadoc/ru ... Event.html
Сделали.

Автор:  Cromeshnic [ 18 янв 2011, 13:44 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

Работает.
Чтобы событие выстреливало, нужно указать в поле "Событие BGBS" какую-нибудь строку:
Вложение:
zone_event.jpg
zone_event.jpg [ 12.75 КБ | Просмотров: 4322 ]

Эта строка передается в событие через getEventName() класса TariffZoneChangedEvent.

Только вот есть баг интерфейса: указываю там стороку, закрываю вкладку "Редактор тарифных планов", открываю заново, открываю тариф - строка не прописана. В базе в это время она есть. Дальше понятно, что при нажатии "ОК" строка стирается.

Плюс немного сбивает с толку название "Событие BGBS". Лучше было бы "Метка для события BGBS".

Автор:  Cromeshnic [ 24 янв 2011, 16:07 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

^ - АП!
Поправьте баг, редактироавть неудобно очень

Цитата:
Только вот есть баг интерфейса: указываю там стороку, закрываю вкладку "Редактор тарифных планов", открываю заново, открываю тариф - строка не прописана.

Автор:  Cromeshnic [ 11 фев 2011, 09:10 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

Всё отлично, но есть маааленькая хотелка:
сделать метод
ru.bitel.bgbilling.kernel.network.radius.nas.NasConnection.getNas() из protected -> public

Иначе я в скрипте на событие смены зоны Nas могу получить только так:

Код:
      DialUpSessionRealtime session = event.getSession();
      if(session==null){
         error("event.getSession() is null");
         return;
      }

      int nas_id = session.getNasID();
      if(nas_id==0){//Common law bug - всегда возвращает 0 - см http://forum.bgbilling.ru/viewtopic.php?f=5&t=5017&p=36153#p36153
         PreparedStatement ps = con.prepareStatement("select nas_id from "+ServerUtils.getModuleMonthTableName("log_session", new Date(), setup.getModuleId())+" where id=?");
         ps.setInt(1, session.getLogRecordId());
         ResultSet rs = ps.executeQuery();
         if(rs.next()){
            nas_id=rs.getInt(1);
         }
      }

      Nas nas = NasList.getInstance().get(nas_id);

Автор:  Администратор [ 25 фев 2011, 10:59 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

А с какой целью NAS получаете?

Автор:  Cromeshnic [ 25 фев 2011, 11:12 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

Я на него произвольные CoA посылаю собственным сендером (глобальный Runnable объект в контексте радиуса, не связан с инспекторами) :roll: Мне нужен конфиг Nas-а, ip, secret и пр..
Через неделю вернусь с отпуска и выложу наверное всю нашу обвязку.

Автор:  Администратор [ 25 фев 2011, 12:36 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

Обновление выложено.

Автор:  Cromeshnic [ 25 фев 2011, 12:59 ]
Заголовок сообщения:  Re: Событие при смены зоны в ТП модуль DialUp

Спасибо!

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/