BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 27 май 2012, 22:02 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
Доброго времени суток!
Стоит задача заменять в аккаунтинговых пакетах радиуса первую цыфру 8 на 7 в целях правильного обсчёта, для чего был написан скрипт:
Код:
import bitel.billing.server.radius.*;

prefix = "remote-media-address";
length = prefix.length();

origin = request.getVendorAttributes( 9, 26 ).get(0).getStringValue();
calledStation = request.getStringAttribute( RadiusStandartAttributes.Called_Station_Id );
if( origin != null && origin.startsWith( "answer" ) && calledStation != null && calledStation.startsWith( "8" ) )
   calledStation = calledStation.substring( 1 );
   calledStation = "7"+calledStation;
   request.setStringAttribute( RadiusStandartAttributes.Called_Station_Id, calledStation );
}

attributes = request.getVendorAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair );
if( attributes != null )
for( it = attributes.iterator(); it.hasNext(); )
{
    ra = it.next();
    value = ra.getStringValue();

    if( value.startsWith( prefix ) )
    {
        if( value.endsWith( "10.9.0.18" ) )
        {
            request.setOption( "operator", 1 );
            break;
        }
       
    }
}

Однако в почту сыпятся вот такие ошибки:
Код:
ID события: radius.request.preprocess
Время регистрации события: 27.05.2012 21:03:58

Запрос:Packet type: Accounting-Request
Identifier: 161
Authenticator: {21 13 D3 51 57 ED 27 BE 1A 0C 0E 21 60 06 32 DB}
Attributes:
  User-Name=2220220
  NAS-IP-Address=xx.xx.0.200
  Service-Type=1
  Acct-Input-Octets=365952
  Acct-Output-Octets=371520
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Time=40
  Acct-Input-Packets=2295
  Acct-Session-Id=00000000000031C8
  Acct-Output-Packets=2322
  Calling-Station-Id=2220220
  Called-Station-Id=779123138118
  cisco-avpair=call-id=b8e19930-22af-1230-4b8e-e78dcba3bb2b
  cisco-avpair=iphop=count:1
  cisco-avpair=iphop=hop1:10.9.0.23
  cisco-avpair=h323-incoming-conf-id=E6012442 A74311E1 97A5E735 7F0C61A3
  cisco-avpair=subscriber=Unknown
  cisco-avpair=session-protocol=sipv2
  cisco-avpair=gw-rxd-cdn=ton:0,npi:0,#:89123138118
  cisco-avpair=feature-vsa=fn:TWC,ft:05/27/2012 21:03:06.138,cgn:2220220,cdn:89123138118,frs:0,fid:9533,fcid:E6012442A74311E197A5E7357F0C61A3,legID:8E74
  cisco-avpair=release-source=4
  cisco-avpair=remote-media-address=10.9.0.23
  cisco-avpair=gw-rxd-cgn=ton:0,npi:0,pi:0,si:0,#:2220220
  h323-gw-id=C2691-VOIP
  h323-remote-address=10.9.0.23
  h323-setup-time=.21:03:06.138 UTC Sun May 27 2012
  h323-conf-id=E6012442 A74311E1 97A5E735 7F0C61A3
  h323-call-type=VoIP
  h323-call-origin=answer
  h323-disconnect-time=.21:03:56.896 UTC Sun May 27 2012
  h323-connect-time=.21:03:17.163 UTC Sun May 27 2012
  h323-voice-quality=0
  h323-disconnect-cause=10


Parse error at line 12, column 1.  Encountered: }
   at bsh.Parser.generateParseException(Unknown Source)
   at bsh.Parser.jj_consume_token(Unknown Source)
   at bsh.Parser.Line(Unknown Source)
   at bsh.Interpreter.Line(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:47)
   at ru.bitel.bgbilling.kernel.network.radius.nas.NasScript.processRequest(NasScript.java:63)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.preprocessAccountingRequest(RadiusProcessor.java:265)
   at ru.bitel.bgbilling.modules.voiceip.radius.VoiceIpRadiusProcessor.preprocessAccountingRequest(VoiceIpRadiusProcessor.java:245)
   at ru.bitel.bgbilling.modules.voiceip.radius.VoiceIpRadiusProcessor.preprocessAccountingRequest(VoiceIpRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:397)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.run(RadiusListenerWorker.java:176)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)

Не подскажите в чём проблема?

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 02:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
if( origin != null && origin.startsWith( "answer" ) && calledStation != null && calledStation.startsWith( "8" ) )
   calledStation = calledStation.substring( 1 );
   calledStation = "7"+calledStation;
   request.setStringAttribute( RadiusStandartAttributes.Called_Station_Id, calledStation );
}

закрывающая } есть. А открывающей не вижу.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
Спасибо помогло.

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 15:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
Опять не слава богу, поправил скрипт
Код:
import bitel.billing.server.radius.*;
origin = request.getVendorAttributes( 9, 26 ).get(0).getStringValue();
calledStation = request.getStringAttribute( RadiusStandartAttributes.Called_Station_Id );

if( origin != null && origin.startsWith( "answer" ) && calledStation != null && calledStation.startsWith( "8" ) )
{
   calledStation = calledStation.substring( 1 );
   calledStation = "7"+calledStation;
   request.setStringAttribute( RadiusStandartAttributes.Called_Station_Id, calledStation );
}

if( origin != null && origin.startsWith( "answer" ) && calledStation != null && calledStation.startsWith( "2" ) )
{
   calledStation = "7351"+calledStation;
   request.setStringAttribute( RadiusStandartAttributes.Called_Station_Id, calledStation );
}

attributes = request.getVendorAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair );
if( attributes != null )
for( it = attributes.iterator(); it.hasNext(); )
{
    ra = it.next();
    value = ra.getStringValue();

    if( value.startsWith( prefix ) )
    {
        if( value.endsWith( "10.9.0.18" ) )
        {
            request.setOption( "operator", 1 );
            break;
        }
       
    }
}

Теперь ругается на вторую строчку:
Код:
Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; origin = request.getVendorAttributes( 9, 2 . . . '' : Undefined argument: prefix  : at Line: 25 : in file: inline evaluation of: ``import bitel.billing.server.radius.*; origin = request.getVendorAttributes( 9, 2 . . . '' : ( prefix )

   at bsh.BSHArguments.getArguments(Unknown Source)
   at bsh.BSHMethodInvocation.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHIfStatement.evaluateCondition(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.BSHForStatement.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:47)
   at ru.bitel.bgbilling.kernel.network.radius.nas.NasScript.processRequest(NasScript.java:63)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.preprocessAccountingRequest(RadiusProcessor.java:265)
   at ru.bitel.bgbilling.modules.voiceip.radius.VoiceIpRadiusProcessor.preprocessAccountingRequest(VoiceIpRadiusProcessor.java:245)
   at ru.bitel.bgbilling.modules.voiceip.radius.VoiceIpRadiusProcessor.preprocessAccountingRequest(VoiceIpRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:397)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.run(RadiusListenerWorker.java:176)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 18:13 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Цитата:
Undefined argument: prefix


в первом скрипте у вас он объявляется
Код:
prefix = "remote-media-address";
length = prefix.length();

а во втором?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 18:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
СПС

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июл 2012, 18:58 
Не в сети

Зарегистрирован: 28 сен 2011, 11:40
Сообщения: 60
Карма: 0
У меня скрипт предобработки вот такой:
Код:
import bitel.billing.server.radius.*;
import java.util.regex.*;

prefix = "remote-media-address";
length = prefix.length();

//Матчим и заменяем DID
if (request.getStringAttribute(RadiusStandartAttributes.Called_Station_Id) != null ) {
calledStationId = RadiusStandartAttributes.Called_Station_Id;
String DID = request.getStringAttribute(calledStationId).replaceFirst("^8(\\d{10})$","7$1");
if (DID != request.getStringAttribute(calledStationId)) { request.setStringAttribute(calledStationId, DID); };
String DID = request.getStringAttribute(calledStationId).replaceFirst("^(\\d{10})$","7$1");
if (DID != request.getStringAttribute(calledStationId)) { request.setStringAttribute(calledStationId, DID); };
String DID = request.getStringAttribute(calledStationId).replaceFirst("^777(\\d)$","7812313772$1");
if (DID != request.getStringAttribute(calledStationId)) { request.setStringAttribute(calledStationId, DID); };
};

//Матчим и заменяем ANI
if ( request.getStringAttribute(RadiusStandartAttributes.Calling_Station_Id) != null ) {
callingStationId = RadiusStandartAttributes.Calling_Station_Id;
String ANI = request.getStringAttribute(callingStationId).replaceFirst("^8(\\d{10})$","7$1");
if (ANI != request.getStringAttribute(callingStationId)) { request.setStringAttribute(callingStationId, ANI); };
String ANI = request.getStringAttribute(callingStationId).replaceFirst("^(\\d{10})$","7$1");
if (ANI != request.getStringAttribute(callingStationId)) { request.setStringAttribute(callingStationId, ANI); };
String ANI = request.getStringAttribute(callingStationId).replaceFirst("^(\\d{3})$","78120000$1");
if (ANI != request.getStringAttribute(callingStationId)) { request.setStringAttribute(callingStationId, ANI); };
String ANI = request.getStringAttribute(callingStationId).replaceFirst("^(\\d{4})$","7812000$1");
if (ANI != request.getStringAttribute(callingStationId)) { request.setStringAttribute(callingStationId, ANI); };
};

attributes = request.getVendorAttributes( Vendors.CISCO, CiscoVendor.Cisco_AVPair );
if( attributes != null )
for( it = attributes.iterator(); it.hasNext(); )
{
    ra = it.next();
    value = ra.getStringValue();

        if( value.endsWith( "80.75.130.132" ) )
        {
            request.setOption( "operator", 1 );
            break;
        }
        else if( value.endsWith( "172.16.101.18" ) )
        {
            request.setOption( "operator", 2 );
            break;
        }
}


при это ошибка совсем другая

Код:
07-13/16:57:43 ERROR [rdsLstnr-p-4-t-5] NasScriptInvoker - Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; import java.util.regex.*;  prefix = "remot . . . '' : Error in method invocation: Method getStringValue() not found in class'ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute$RadiusAttributeString'
Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; import java.util.regex.*;  prefix = "remot . . . '' : Error in method invocation: Method getStringValue() not found in class'ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute$RadiusAttributeString' : at Line: 36 : in file: inline evaluation of: ``import bitel.billing.server.radius.*; import java.util.regex.*;  prefix = "remot . . . '' : ra .getStringValue ( )



Информация о версии:

Клиент: вер. 5.2 сборка 1009 от 12.07.2012 15:43:58
os: Mac OS X; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_33
Сервер: вер. 5.2 сборка 1236 от 12.07.2012 19:36:57
os: Linux; java: Java HotSpot(TM) Server VM, v.1.6.0_29

bill вер. 5.2 сборка 268 от 12.07.2012 18:43:42
npay вер. 5.2 сборка 184 от 12.07.2012 15:44:20
phone вер. 5.2 сборка 241 от 12.07.2012 15:44:21
reports вер. 5.2 сборка 178 от 28.06.2012 14:17:45
ru.bitel.bgbilling.plugins.crm вер. 5.2 сборка 183 от 06.07.2012 15:45:03
ru.bitel.bgbilling.plugins.dispatch вер. 5.2 сборка 39 от 09.07.2012 17:11:51
ru.bitel.bgbilling.plugins.helpdesk вер. 5.2 сборка 163 от 13.06.2012 11:34:11
voiceip вер. 5.2 сборка 183 от 25.06.2012 12:54:06

_________________
Клиент: вер. 5.2 сборка 1027 от 27.08.2012 12:07:51
Сервер: вер. 5.2 сборка 1283 от 28.08.2012 11:38:39


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Цитата:
Код:
Error in method invocation: Method getStringValue() not found in class'ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute$RadiusAttributeString'

RadiusAttribute говорит о том, что в нем нет getStringValue(), но зато от класса ru.bitel.bgbilling.kernel.network.tlv.Tlv наследуется getValue()

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

Зарегистрирован: 28 сен 2011, 11:40
Сообщения: 60
Карма: 0
Phricker писал(а):
Цитата:
Код:
Error in method invocation: Method getStringValue() not found in class'ru.bitel.bgbilling.kernel.network.radius.RadiusAttribute$RadiusAttributeString'

RadiusAttribute говорит о том, что в нем нет getStringValue(), но зато от класса ru.bitel.bgbilling.kernel.network.tlv.Tlv наследуется getValue()


Я совсем не програмист, что мне делать?

_________________
Клиент: вер. 5.2 сборка 1027 от 27.08.2012 12:07:51
Сервер: вер. 5.2 сборка 1283 от 28.08.2012 11:38:39


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 июл 2012, 16:22 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
вместо getStringValue() написать getValue()

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

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


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

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


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

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