Нормализация параметра Acct-Session-Id у маршрутизатора Cisco
Материал из BiTel WiKi
(Различия между версиями)
Max (Обсуждение | вклад) |
|||
Строка 2: | Строка 2: | ||
Цыска не поддерживает 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> | ||
- | + | <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> |
Текущая версия на 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]++", "" ) ); }