BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 26 июн 2025, 00:40

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 18 янв 2011, 18:52 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Помогите написать скрипт предобработки чтобы к числовым логинам добавлялась буква N
bgbilling 5.0


Последний раз редактировалось jek815 14 фев 2011, 17:05, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 18 янв 2011, 20:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Код:
import bitel.billing.server.radius.*;
import ru.bitel.bgbilling.kernel.network.radius.*;

userName = request.getStringAttribute(-1, 1, "")

if (request.getCode() == RadiusPacket.ACCESS_REQUEST) {
   if (userName.matches("^[0-9]+$")) {
      request.setStringAttribute(-1, RadiusStandartAttributes.User_Name, "N"+userName);
   }
}


- для 5.1, например.

А задача какая у вас?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 18 янв 2011, 22:33 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
версия 5.0
Дело в том что у нас цифровые логины для авторизации пользователя (к примеру 000300) соответственно числовые алиасы не допустимы,а договора уже на руках и логины прописаны числовые. Выход завести алиасы в билинге с буквой N000300. Пользователь вводит логин "000300" - скрипт приписывает букву "N" - билинг распознает алиас как N000300 и все счастливы!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 18 янв 2011, 22:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Проще и правильнее в базе руками поменять алиасы на числовые - всё будет работать. У самого так определённый класс договоров заведён.
По факту только в клиенте при задании алиаса проверяется, числовой он или нет.

Код:
update  user_alias_<mid> set login_alias= <...> where <...>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 00:15 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
А можно немного поподробнее про команду?
update user_alias_<код модуля> set login_alias=<значение> where <строка>

вот к примеру если алиас под логином №8 назначить 100 то как выглядит команда?
update user_alias_2 set login_alias=100 where 8?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 07:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Это mysql - запрос.
"Под номером 8" - это как? У него логин "8" или id в базе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 11:37 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
да ,у него логин 8
но видимо надо знать ID в базе для этой команды.
Посмотрел в таблице базы user_alias_2, логин с пустыми алиасами не записываюся и соответственно позиция ID не совпадает с номерным логиным


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 11:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
так они же у вас есть, вам же только поменять нужно?
и у вас все одинаковые? можно посмотреть в сторону как мускул работает с текстовыми полями. либо скриптик написать который апдетит запросы подставляя regxp в поле where

не...а че не воспользоваться скриптом который предоставили выше?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 11:44 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
вот кстати если кому надо еще скрипт

Скрипт такой должен работать, тут если User-Name начинается не с цифры к
нему прибавляется N.
Скрипт располагается в конфигурации NASа.

userName = request.getStringAttribute( 1 );
if( userName!=null && !Character.isDigit( userName.charAt( 0 ) ) )
{
request.setStringAttribute( 1, "N" + userName);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 11:48 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
просто заинтересовала команда update
в самой базе сейчас ковыряю с помощью MySQL Developer Studio


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 19 янв 2011, 12:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
http://phpclub.ru/mysql/doc/update.html
так же можно посмотреть возможности работы mysql с текстовыми полями.
и
используйте консоль mysql будете лучше разбираться во всем этом ;)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 20 янв 2011, 23:00 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
при использовании скрипта

import bitel.billing.server.radius.*;
import java.util.*;
userName = request.getStringAttribute( RadiusStandartAttributes.User_Name );
if( Character.isDigit( userName.charAt(1) ) )
{
request.setStringAttribute( 1, "N" + userName);
}

выдается ошибка
{02} Неверный пароль логина
почему такое происходит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 21 янв 2011, 11:37 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вы какой тип авторизации используете? Нельзя MS-CHAP v.2 использовать при такой схеме, т.к. там в алгоритме проверки пароля используется User-Name.
Попробуйте Chap.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 21 янв 2011, 12:52 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Спасибо, отключил MS-CHAP и всё прекрасно заработало !!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 12:18 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Авторизация пользователей работает нормально, но теперь возникла другая сложность:
Не сбрасываются подключенные сессии. Видимо дело в том что не совпадают логины в mikrotike (висит сессия логина 000111) и билинга (радиус передает имя пользователя N000111).. Что можно сделать в этой ситуации?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 12:32 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
А по Acct-Session-Id микротик скидывать не умеет? Вы PoD ом отключаете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 13:30 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
отклучаем
nas.inspector.class=bitel.billing.server.processor.PoDNASConnectionInspector
nas.inspector.pod.port=1700
nas.inspector.pod.attributes=User-Name;Framed-IP-Address;Acct-Session-Id


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 13:42 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Ну попробуйте User-Name из атрибутов убрать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 14:16 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
User-Name убрали, не помогает

вот что в микротике
11:22:26 hotspot,error,info,debug Radius disconnect request for unknown ip 10.10.10.10
11:22:26 radius,debug,packet received Disconnect-Request with id 250 from 172.16
8.1.240:1288
11:22:26 radius,debug,packet Signature = 0x90e3e4a24f20ad4184fe95050d898a93
11:22:26 radius,debug,packet Framed-IP-Address = 10.10.10.10
11:22:26 radius,debug,packet Acct-Session-Id = "8160009d"
11:22:26 radius,debug received remote request 252 code=Disconnect-Request from 1
72.168.1.240:1288
11:22:26 radius,debug sending Disconnect-NAK to remote request 252
11:22:26 radius,debug,packet sending Disconnect-NAK with id 250 to 172.168.1.240:1288
11:22:26 radius,debug,packet Signature = 0x48cabbc2d50865257a798f32ee435c8d
11:22:26 radius,debug,packet Error-Cause = 406
11:22:26 radius,debug,packet NAS-Identifier = "MikroTik"
11:22:26 radius,debug,packet NAS-IP-Address = 172.168.1.252


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 14:58 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
странно почему ip не известный..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 24 янв 2011, 17:31 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Кто-нибудь может подсказать как в данной ситуации сбросить сессию?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 25 янв 2011, 10:38 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Посмотрите в connection.log в каком виде PoD пакет уходит. И сюда выложите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 09 фев 2011, 15:25 
Не в сети
Клиент

Зарегистрирован: 23 сен 2010, 10:37
Сообщения: 208
Откуда: Снежинск
Карма: 0
Добрый день

Создал скрипт поведения

который как было написано - добавляет N в начале логина
Код:
import bitel.billing.server.radius.*;
import ru.bitel.bgbilling.kernel.network.radius.*;

userName = request.getStringAttribute(-1, 1, "");

if (request.getCode() == RadiusPacket.ACCESS_REQUEST) {
   if (userName.matches("^[0-9]+$")) {
      request.setStringAttribute(-1, RadiusStandartAttributes.User_Name, "N"+userName);
   }
}


привязал данный скрипт к событию Радиус аутентификации

привязал к договору
пробую коннектиться - в логах выполнения
Код:
GENERATE_TIME: 09.02.11 14:23:13
EXECUTION_STOP_TIME: 09.02.11 14:23:13
PROCESS_TIME: 17

OUT:


EXCEPTIONS:
Sourced file: Function [id:3; title:New] : Attempt to resolve method: getStringAttribute() on undefined variable or class name: request : at Line: 4 : in file: Function [id:3; title:New] : request .getStringAttribute ( - 1 , 1 , "" )

java.util.concurrent.ExecutionException: Sourced file: Function [id:3; title:New] : Attempt to resolve method: getStringAttribute() on undefined variable or class name: request : at Line: 4 : in file: Function [id:3; title:New] : request .getStringAttribute ( - 1 , 1 , "" )

   at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
   at java.util.concurrent.FutureTask.get(Unknown Source)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.runScriptImpl(ScriptMachine.java:371)
   at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:129)
   at bitel.billing.server.script.bean.event.EventProcessor.processContractEvent(EventProcessor.java:299)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:217)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:201)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:188)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:328)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.run(RadiusListenerWorker.java:172)
   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)
Caused by: Sourced file: Function [id:3; title:New] : Attempt to resolve method: getStringAttribute() on undefined variable or class name: request : at Line: 4 : in file: Function [id:3; title:New] : request .getStringAttribute ( - 1 , 1 , "" )

   at bsh.UtilEvalError.toEvalError(Unknown Source)
   at bsh.UtilEvalError.toEvalError(Unknown Source)
   at bsh.BSHMethodInvocation.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHPrimaryExpression.eval(Unknown Source)
   at bsh.BSHAssignment.eval(Unknown Source)
   at bsh.Interpreter.eval(Unknown Source)
   at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:352)
   at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:70)
   at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:190)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:361)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
   at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
   at java.util.concurrent.FutureTask.run(Unknown Source)
   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)


уже и так и сяк... куда крутить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 09 фев 2011, 18:57 
Не в сети

Зарегистрирован: 22 дек 2008, 13:02
Сообщения: 270
Откуда: Москва
Карма: 27
создать переменную request правильно.
в случае скрипта поведения это значит получать её через метод getRequest() , то бишь нехватает
request = event.getRequest()
в вашем случае
и вобще помоему это скрипт предобработки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 10 фев 2011, 12:01 
Не в сети
Клиент

Зарегистрирован: 23 сен 2010, 10:37
Сообщения: 208
Откуда: Снежинск
Карма: 0
aardvark писал(а):
создать переменную request правильно.
в случае скрипта поведения это значит получать её через метод getRequest() , то бишь нехватает
request = event.getRequest()
в вашем случае
и вобще помоему это скрипт предобработки.



а скрипт переработки куда нить логи пишет?

BGBillingServer/log/script.log отсутсвует


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 10 фев 2011, 12:25 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Скрипт предобработки выполняется в контексте радиуса и пишет в /usr/local/BGRadiusDialup/log/script.log


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 11 фев 2011, 14:03 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Администратор писал(а):
Посмотрите в connection.log в каком виде PoD пакет уходит. И сюда выложите.


Вот что там:

02-11/10:58:10 INFO [Thread-9] connections - [ N000111; NN000111; 60171 ] PoD reset packet on 172.168.1.252:1700
Type=40
Attributes:
Framed-IP-Address=10.10.10.10
Acct-Session-Id=8190017c

02-11/10:58:12 INFO [Thread-9] connections - [ N000111; N000111; 60171 ] sendKillRequest
02-11/10:58:12 INFO [Thread-9] connections - [ N000111; N000111; 60171 ] Set connection to KILL

Сессия не сбрасывается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 11 фев 2011, 14:17 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Заметил разницу
В микротике в логах в кавычках
Acct-Session-Id = "8160009d"

а передайтся билингом без кавычек
Acct-Session-Id = 8160009d
Может в этом дело, не совпадают типы данных?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 11 фев 2011, 16:18 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Может разные тип данных и поэтому не может сбросить сессию ни по Framed-IP-Address ни по Acct-Session-Id
Кто нибудь пробывал сбрасывать сессии кроме как по User-Name???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите со скриптом
СообщениеДобавлено: 14 фев 2011, 11:45 
Не в сети

Зарегистрирован: 22 дек 2009, 14:05
Сообщения: 20
Карма: 0
Ну так может всетаки подскажут разработчики как решить ситуацию с 700 пользователями у которых числовой User-Name и поэтому мы не можем использовать биллинг? Или проще заменить договора у этих людей???


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу 1, 2  След.

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


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

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


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

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