BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 20:22

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




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 21 июн 2011, 14:43 
Не в сети

Зарегистрирован: 29 дек 2009, 11:51
Сообщения: 117
Карма: 5
Через меню "Сервис/Автоматизация/Функции скриптов поведения" был создан скрипт для события "Модуль IP телефония" следующего содержания (там много лишних моментов, много чего пробовали):
Код:
import java.math.*;
import java.util.*;

import bitel.billing.server.util.*;
import bitel.billing.server.radius.*;
import ru.bitel.bgbilling.kernel.network.radius.*;

import ru.bitel.bgbilling.common.*;
import ru.bitel.bgbilling.kernel.base.phone.server.*;
import ru.bitel.bgbilling.server.util.*;
import bitel.billing.common.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.tariff.voice.calc.*;

String toNum = "100";
//int callType = 1;
//int serviceId = 6;
int mid = 10;

//этот объект производит поиск направления по зонам и нужен при тарификации по зонам
//объект создаётся лишь один раз в контексте приложения при первом обращении
ZoneDestFinder zdf = ZoneDestFinder.getZoneFinder( con, mid );


public void onEvent( event, setup, con, conSlave )
{
//   print( "Radius-Аутентификация!" );
   print( "UserName="+event.getUserName()+", ObjectID=" + event.getLogin().getObjectId() + ", Cid=" + event.getLogin().getCid() + ", Id=" + event.getLogin().getId()+", Login="+event.getLogin().getLogin());

//   print("YATE ACCESS !!! :: METHOD="+request.getStringAttribute(Vendors.CISCO, 34, ""));
   // Акцесс (REGISTER,INVITE,...)
   // Нам нужен метод INVITE
   if( event.request.getStringAttribute(Vendors.CISCO,34,"").equals("INVITE") ) {
      print("YATE INVITE !!!");
      Calendar startTime = new GregorianCalendar();
      List treeList = new ContractManager( con ).getRealtimeTariffTreeSet( event.getLogin().getCid(), startTime, "voiceip", mid, true ).getTreeList( startTime );
      for( TariffModuleTree tree : treeList ) {
         TariffRequest req = new TariffRequest();

          req.setRequestParam( "action", "calculate" );
         req.setRequestParam( "time", startTime );
         req.setRequestParam( "phone", toNum );
         req.setRequestParam( "sid", 6 );
         req.setRequestParam( "call_type", 1 );
         req.setRequestParam( "zdf", zdf );
//         req.setRequestParam( "costMapCache", costMapCache );
 
         tree.processRequest( req );
 
         Integer destCode = req.getResponseParam( "dest" );
         Float minCost = req.getResponseParam( "min_cost" );
//         VoiceTariffConfig config = req.getResponseParam( "config" );
         Integer zone = req.getResponseParam( "zone" );
         String oper1 = req.getResponseParam( "oper_id" );
         String oper2 = req.getResponseParam( "operatorId" );
         String oper3 = req.getResponseParam( "operarorid" );
         String oper4 = req.getResponseParam( "oper" );
         String oper5 = req.getResponseParam( "operator" );
         String oper6 = req.getResponseParam( "operid" );
         String oper7 = req.getResponseParam( "operId" );

//         Integer ooo = event.request.getOption("operator");

         print("YATE::destCode="+destCode+",minCost="+minCost+",zone="+zone+",oper1="+oper1+",oper2="+oper2+",oper3="+oper3+",oper4="+oper4+",oper5="+oper5+",oper6="+oper6+",oper7="+oper7);
//         if( req.wasAccepted() && destCode != null && minCost != null ) {
         //ваш код
//            print("YATE:: ACCEPTED");
//         }

      }
   }
}


Изначально предполагалось в этом скрипте добавлять в Reply-пакет какой-нибудь атрибут на основании обьекта договора, привязанного к логину.

Но как мы не пытались ObjectID всегда равен нулю.

вот пример вывода этого скрипта:
Код:
GENERATE_TIME: 21.06.11 14:26:55
EXECUTION_STOP_TIME: 21.06.11 14:26:55
PROCESS_TIME: 2

OUT:
UserName=mt101, ObjectID=0, Cid=739, Id=589, Login=571



Существует ли в принципе возможность получать значения обьекта договора привязанного к логину?
Если да то подскажите как. Серфинг по форуму и wiki результатов не дал...


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

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


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

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


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

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