forum.bitel.ru http://forum.bitel.ru/ |
|
Скрипт поведения и доступ к обьекту договора. http://forum.bitel.ru/viewtopic.php?f=6&t=5623 |
Страница 1 из 1 |
Автор: | Магнитка.RU [ 21 июн 2011, 14:43 ] |
Заголовок сообщения: | Скрипт поведения и доступ к обьекту договора. |
Через меню "Сервис/Автоматизация/Функции скриптов поведения" был создан скрипт для события "Модуль 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 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |