Нормализация параметра Acct-Session-Id у маршрутизатора Cisco

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Столкнулся с такой проблемой:<br> Цыска не поддерживает PoD, а Биллинг почему то не сбрасывае…»)
 
(1 промежуточная версия не показана)
Строка 1: Строка 1:
Столкнулся с такой проблемой:<br>
Столкнулся с такой проблемой:<br>
Цыска не поддерживает PoD, а Биллинг почему то не сбрасывает клиентские сессии ПППоЕ по SNMP.<br>
Цыска не поддерживает PoD, а Биллинг почему то не сбрасывает клиентские сессии ПППоЕ по SNMP.<br>
-
После детальных разборов стало ясно что цыска шлёт атрибут Acct-Session-Id=000000000000135B в таком формате, хотя на самой Cisco идентификатор сессиии был 135B. Попытался решить проблему поставив в конфигурации НАСа session.mode=hex12 (http://bgbilling.ru/v5.0/doc/ch03s08.html) однако идентификатор сессии на Cisco оказался плавающим и может составлять не 4 знака, а 5 или даже 6! Поэтому пришлось написать скрипт передобработки для радиус пакета<br>
+
После детальных разборов стало ясно что цыска шлёт атрибут Acct-Session-Id=000000000000135B в таком формате, хотя на самой Cisco идентификатор сессиии был 135B. Попытался решить проблему поставив в конфигурации НАСа session.mode=hex12 (http://bgbilling.ru/v5.0/doc/ch03s08.html) однако идентификатор сессии на Cisco оказался плавающим и может составлять не 4 знака, а 5 или даже 6! Поэтому пришлось написать вот такой скрипт предобработки для радиус пакета, за что отдельное спасибо Амиру.<br>
-
[code]
+
<source lang="java">
import bitel.billing.server.radius.*;
import bitel.billing.server.radius.*;
Строка 10: Строка 10:
   request.setStringAttribute( RadiusStandartAttributes.Acct_Session_Id, acctSessionId.replaceFirst( "^[0]++", "" ) );
   request.setStringAttribute( RadiusStandartAttributes.Acct_Session_Id, acctSessionId.replaceFirst( "^[0]++", "" ) );
}
}
-
 
+
</source>
-
[/code]
+

Текущая версия на 05:47, 13 февраля 2012

Столкнулся с такой проблемой:
Цыска не поддерживает PoD, а Биллинг почему то не сбрасывает клиентские сессии ПППоЕ по SNMP.
После детальных разборов стало ясно что цыска шлёт атрибут Acct-Session-Id=000000000000135B в таком формате, хотя на самой Cisco идентификатор сессиии был 135B. Попытался решить проблему поставив в конфигурации НАСа session.mode=hex12 (http://bgbilling.ru/v5.0/doc/ch03s08.html) однако идентификатор сессии на Cisco оказался плавающим и может составлять не 4 знака, а 5 или даже 6! Поэтому пришлось написать вот такой скрипт предобработки для радиус пакета, за что отдельное спасибо Амиру.

import bitel.billing.server.radius.*;
 
acctSessionId = request.getStringAttribute(RadiusStandartAttributes.Acct_Session_Id);
if( acctSessionId != null && acctSessionId.startsWith( "0" ) )
{
  request.setStringAttribute( RadiusStandartAttributes.Acct_Session_Id, acctSessionId.replaceFirst( "^[0]++", "" ) );
}
Личные инструменты