BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Приводим к Е.164
СообщениеДобавлено: 24 мар 2011, 12:23 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
Возможно ли написать скрипт предобработки который будет приводить номера телефонов к формату E.164 в логах от radius`а (модуль voip)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приводим к Е.164
СообщениеДобавлено: 24 мар 2011, 14:05 
Не в сети
Клиент
Аватара пользователя

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

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


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

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
max писал(а):
вы хоть пример лога дайте ваш

Номера телефонов начинаются не на 7-ку а на 8-ку, или содержат в себе не 11-ть цифр а 6-ть.
Для нормальной работы с географическими кодами в биллинге:
Необходимо заменять первую цифру 8 на 7.
Если номер 6-ти значный добавлять префикс, код города. (+5-ть цифр).

Calling-Station-Id=8xxxxxxxxxx
Called-Station-Id=8yyyyyyyyyy

Calling-Station-Id=8zzzzzzzzzz
Called-Station-Id=nnnnnn


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

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Примерно так:

Код:
   String a = request.getStringAttribute( -1, RadiusStandartAttributes.Calling_Station_Id, "" );
   String b = request.getStringAttribute( -1, RadiusStandartAttributes.Called_Station_Id, "" );
   if (что-то-там) {
      request.setStringAttribute(-1, RadiusStandartAttributes.Calling_Station_Id, "A-номер в e.164");
      request.setStringAttribute(-1, RadiusStandartAttributes.Called_Station_Id, "B-номер в e.164");
   }


Дальше справитесь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приводим к Е.164
СообщениеДобавлено: 29 мар 2011, 08:36 
Не в сети

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
Cromeshnic писал(а):
Примерно так:
Дальше справитесь?

К сожалению нет, с джавой вообще не знаком.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приводим к Е.164
СообщениеДобавлено: 29 мар 2011, 17:45 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
покажите что было (лог) и что хотите получить - тогда Вам глядишь и нарисуют скрипт, а наугад - здесь нет экстрасенсов только самостоятельно ...


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

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
snark писал(а):
покажите что было (лог) и что хотите получить - тогда Вам глядишь и нарисуют скрипт, а наугад - здесь нет экстрасенсов только самостоятельно ...

Какой лог хотите увидеть?

Хочу получить следующее:
Номера телефонов начинаются не на 7-ку а на 8-ку, или содержат в себе не 11-ть цифр а 6-ть.
Для нормальной работы с географическими кодами в биллинге:
Необходимо заменять первую цифру 8 на 7.
Если номер 6-ти значный добавлять префикс, код города. (+5-ть цифр).

Calling-Station-Id=8xxxxxxxxxx
Called-Station-Id=8yyyyyyyyyy

Calling-Station-Id=8zzzzzzzzzz
Called-Station-Id=nnnnnn


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

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
lan31 писал(а):
Хочу получить следующее:
Номера телефонов начинаются не на 7-ку а на 8-ку, или содержат в себе не 11-ть цифр а 6-ть.
Для нормальной работы с географическими кодами в биллинге:
Необходимо заменять первую цифру 8 на 7.
Если номер 6-ти значный добавлять префикс, код города. (+5-ть цифр).

Calling-Station-Id=8xxxxxxxxxx
Called-Station-Id=8yyyyyyyyyy

Calling-Station-Id=8zzzzzzzzzz
Called-Station-Id=nnnnnn

дык уже подсказали же:
Cromeshnic писал(а):
Примерно так:
Код:
    String a = request.getStringAttribute( -1, RadiusStandartAttributes.Calling_Station_Id, "" );
    String b = request.getStringAttribute( -1, RadiusStandartAttributes.Called_Station_Id, "" );
    if (что-то-там) {
        request.setStringAttribute(-1, RadiusStandartAttributes.Calling_Station_Id, "A-номер в e.164");
        request.setStringAttribute(-1, RadiusStandartAttributes.Called_Station_Id, "B-номер в e.164");
    }


если номера телефонов начинаются не на 7-ку а на 8-ку, то пишем в скрипт предобработки
Код:
callingStationId = RadiusStandartAttributes.Calling_Station_Id;

// если Calling-Station-Id начинается с 8-ки
if (request.getStringAttribute(callingStationId).startsWith("8"))
{
    // дописываем к 7-ке номер после 8-ки, т.е. если номер был 8ххх - станет 7ххх
    value = "7".concat(callingStationId.substring(1));
    // заменяем Calling-Station-Id
    request.setStringAttribute(callingStationId, value);
}

дальше по аналогии ;)

тут есть все что необходимо для работы с String


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

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
Не работает.

04-07/17:02:47 ERROR [radiusListener-p-4-t-5] NasScript - Sourced file: inline evaluation of: ``callingStationId = RadiusStandartAttributes.Calling_Station_Id; // ???? Calling
. . . '' : Class or variable not found: RadiusStandartAttributes.Calling_Station_Id
Sourced file: inline evaluation of: ``callingStationId = RadiusStandartAttributes.Calling_Station_Id; // ???? Calling . . . '' : Class or variable not found: RadiusStandartAttr
ibutes.Calling_Station_Id : at Line: 1 : in file: inline evaluation of: ``callingStationId = RadiusStandartAttributes.Calling_Station_Id; // ???? Calling . . . '' : RadiusStand
artAttributes .Calling_Station_Id


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

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Код:
import bitel.billing.server.radius.*;

в начале скрипта нету?


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

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
snark писал(а):
Код:
import bitel.billing.server.radius.*;

в начале скрипта нету?

Когда добавляю эту строчку, появляется новая ошибка:

04-11/13:34:40 ERROR [radiusListener-p-4-t-16] NasScript - Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; callingStationId = RadiusStandartAttribut . . . '' : Error in method invocation: Method substring( int ) not found in class'bsh.Primitive'
Sourced file: inline evaluation of: ``import bitel.billing.server.radius.*; callingStationId = RadiusStandartAttribut . . . '' : Error in method invocation: Method substring( int ) not found in class'bsh.Primitive' : at Line: 9 : in file: inline evaluation of: ``import bitel.billing.server.radius.*; callingStationId = RadiusStandartAttribut . . . '' : callingStationId .substring ( 1 )


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

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

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


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

Зарегистрирован: 06 мар 2011, 09:56
Сообщения: 152
Карма: 0
max писал(а):
у вас ошибка в 9й строчке, дайте получившийся скрипт сюда

import bitel.billing.server.radius.*;

callingStationId = RadiusStandartAttributes.Calling_Station_Id;

// если Calling-Station-Id начинается с 8-ки
if (request.getStringAttribute(callingStationId).startsWith("8"))
{
// дописываем к 7-ке номер после 8-ки, т.е. если номер был 8ххх - станет 7ххх
value = "7".concat(callingStationId.substring(1));
// заменяем Calling-Station-Id
request.setStringAttribute(callingStationId, value);
}


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
lan31 писал(а):
max писал(а):
у вас ошибка в 9й строчке, дайте получившийся скрипт сюда

import bitel.billing.server.radius.*;

callingStationId = RadiusStandartAttributes.Calling_Station_Id;

// если Calling-Station-Id начинается с 8-ки
if (request.getStringAttribute(callingStationId).startsWith("8"))
{
// дописываем к 7-ке номер после 8-ки, т.е. если номер был 8ххх - станет 7ххх
value = "7".concat(callingStationId.substring(1));
// заменяем Calling-Station-Id
request.setStringAttribute(callingStationId, value);
}


в 9-ой строчке надо поменять callingStationId на request.getStringAttribute(callingStationId)


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

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
я рисовал пример на коленке скорую руку, так что то что там есть ошибки - это запросто, т.к. всеравно любой скрипт на форуме/вики не отменяет чтение мануала по API, IMHO


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приводим к Е.164
СообщениеДобавлено: 25 май 2011, 14:34 
Мы пришли к тому, что правильней, чтобы железо в биллинг выдавало логи уже с нумерацией в формате E.164. Опыт показывает, что почти все нормальное железо может быть настроено соответствующим образом.

У нас биллинг тарифицирует услуги оказываемые в нескольких населенных пунктах. В некоторых даже зоновые префиксы разные. В таких случаях реализовать корректную обработку логов средставми биллинга превращается в ту еще проблему...


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

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


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

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


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

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