forum.bitel.ru http://forum.bitel.ru/ |
|
Скрипт предобработки http://forum.bitel.ru/viewtopic.php?f=6&t=4567 |
Страница 1 из 1 |
Автор: | paramonies [ 21 сен 2010, 18:16 ] |
Заголовок сообщения: | Скрипт предобработки |
Пытаемся скрестить Asterisk и биддинг скрипт предобработки взял с : [url] http://wiki.bgbilling.ru/index.php/%D0% ... %B2_Radius [/url] в error.log ошибка: Код: script 09-21/16:12:22 ERROR [radiusListener-p-4-t-1] NasScript - Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; if (request.getIntAttribute(RadiusStand . . . '' : Error in method invocation: Method setVendorStringAttribute( int, java.lang.String ) not found in class'ru.bitel.bgbilling.kernel.network.radius.RadiusPacket' Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; if (request.getIntAttribute(RadiusStand . . . '' : Error in method invocation: Method setVendorStringAttribute( int, java.lang.String ) not found in class'ru.bitel.bgbilling.kernel.network.radius.RadiusPacket' : at Line: 27 : in file: inline evaluation of: ``import bitel.billing.server.radius.*; if (request.getIntAttribute(RadiusStand . . . '' : request .setVendorStringAttribute ( 26 , "originate" ) at bsh.BSHMethodInvocation.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHPrimaryExpression.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHIfStatement.eval(Unknown Source) at bsh.BSHBlock.evalBlock(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHBlock.eval(Unknown Source) at bsh.BSHIfStatement.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at bsh.Interpreter.eval(Unknown Source) at ru.bitel.bgbilling.kernel.network.radius.nas.NasScript.processRequestImpl(NasScript.java:42) at ru.bitel.bgbilling.kernel.network.radius.nas.NasScript.processRequest(NasScript.java:58) at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.preprocessAccountingRequest(RadiusProcessor.java:264) at ru.bitel.bgbilling.modules.voiceip.radius.VoiceIpRadiusProcessor.preprocessAccountingRequest(VoiceIpRadiusProcessor.java:220) at ru.bitel.bgbilling.modules.voiceip.radius.VoiceIpRadiusProcessor.preprocessAccountingRequest(VoiceIpRadiusProcessor.java:1) at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:396) at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.run(RadiusListenerWorker.java:218) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) Может кто-нибудь поделится работающим скриптом? |
Автор: | stark [ 21 сен 2010, 20:04 ] |
Заголовок сообщения: | Re: Скрипт предобработки |
какая версия биллинга ? скорее всего код устарел |
Автор: | paramonies [ 21 сен 2010, 23:09 ] |
Заголовок сообщения: | Re: Скрипт предобработки |
Подправил скрипт: Код: import bitel.billing.server.radius.*;
if (request.getIntAttribute(RadiusStandartAttributes.Acct_Status_Type) == 2) { // Устанавливаем Calling-Station-Id = Asterisk-Src CallingStationId = request.getStringAttribute(22736, 102, null); request.setStringAttribute(RadiusStandartAttributes.Calling_Station_Id, CallingStationId); // Проверяем наличие Asterisk-Acc-Code, и если он существует, // то устанавливаем User-Name = Asterisk-Acc-Code, если не существует, // то устанавливаем User-Name = Calling-Station-Id UserName = request.getStringAttribute(22736, 101, null); /* if (UserName != null) request.setStringAttribute(RadiusStandartAttributes.User_Name, UserName); else */ request.setStringAttribute(RadiusStandartAttributes.User_Name, CallingStationId); // Устанавливаем Called-Station-Id = Asterisk-Dst request.setStringAttribute(RadiusStandartAttributes.Called_Station_Id, request.getStringAttribute(22736, 103, null)); // Проверяем наличие Asterisk-User-Field, и если такой существует, // то на основании его значения устанавливаем h323-call-origin CallType = request.getStringAttribute(22736, 118, null); if (CallType != null && CallType.equals("answer")) { request.setStringAttribute(9, 26, "answer"); request.setFlag(2); } else { request.setStringAttribute(9, 26, "originate"); request.setFlag(1); } // Устанавливаем h323-call-type = VOIP request.setStringAttribute(9, 27, "VOIP"); // Устанавливаем Acct-Session-Time = Asterisk-Bill-Sec request.setIntAttribute( RadiusStandartAttributes.Acct_Session_Time, request.getIntAttribute(22736, 114, null)); // Устанавливаем h323-setup-time = Asterisk-Start-Time request.setStringAttribute(9, 25, request.getStringAttribute(22736, 110, null)); // Устанавливаем h323-connect-time = Asterisk-Answer-Time request.setStringAttribute(9, 28, request.getStringAttribute(22736, 111, null)); // Устанавливаем h323-disconnect-time = Asterisk-End-Time request.setStringAttribute(9, 29, request.getStringAttribute(22736, 112, null)); // Устанавливаем h323-disconnect-cause на основании Asterisk-Disposition AsteriskDisposition = request.getStringAttribute(22736, 115, null); if (AsteriskDisposition.equals("ANSWERED")) request.setStringAttribute(9, 30, "0"); else if (AsteriskDisposition.equals("NO ANSWER")) request.setStringAttribute(9, 30, "5"); else if (AsteriskDisposition.equals("BUSY")) request.setStringAttribute(9, 30, "17"); else request.setStringAttribute(9, 30, "22"); // Устанавливаем h323-conf-id = Acct-Session-Id request.setStringAttribute(9, 24, request.getStringAttribute(-1, RadiusStandartAttributes.Acct_Session_Id, null)); } // Конец if (Acct_Status_Type == 2) |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |