BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: VOIP Radius 5.0 - Завершение сессий
СообщениеДобавлено: 06 авг 2010, 15:18 
Не в сети

Зарегистрирован: 05 июн 2009, 17:47
Сообщения: 4
Откуда: москва
Карма: 0
День добрый.


Примерно в середине мая перешли с BG версии 4.6 на 5.0
Проблем не наблюдалось до прошедшей недели.


30 июля на договоре одного из клиентов наблюдаем дублированную сессию.


То-есть в базе лежат две записи в таблице log_session_7_201007 у которых
все поля, кроме первичного ключа одинаковы. Они даже ссылаются на одну и
туже запись радиус лога.


Анализ ситуации выявил следующие внешние условия : 30 июля после
совершения указанного вызова нас отправил БГ стоп пакет и
не получив респонса послал стоп пакет еще раз.

выдержка из радиус лога:


07-30/12:24:01 INFO [pool-2-thread-22] radius - ACCOUNT:
Type=ACCOUNTING_REQUEST
Attributes:
User-Name=17@industrypack.soho.primasip.ru
NAS-IP-Address=80.249.130.7
NAS-Port=0
Service-Type=14
Acct-Input-Octets=118712
Acct-Output-Octets=116189
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=59
Acct-Input-Packets=3672
Acct-Session-Id=625d2e2f-3939-4447-abdb-ef342bf4b641-VoIP
Acct-Output-Packets=3636
NAS-Port-Type=0
Calling-Station-Id=88874959823003
Called-Station-Id=88879255062340
h323-gw-id=80.249.130.7
h323-voice-quality=0
h323-remote-address=80.249.130.14
h323-disconnect-cause=10
h323-connect-time=12:23:02.000 GMT Fri Jul 30 2010
h323-disconnect-time=12:24:01.000 GMT Fri Jul 30 2010
cisco-avpair=h323-call-id=625D2E2F 39394447 ABDBEF34 2BF4B641
cisco-avpair=h323-remote-id=80.249.130.14
cisco-avpair=h323-gw-address=80.249.130.7
cisco-avpair=xpgk-src-number-in=17
cisco-avpair=xpgk-dst-number-in=88879255062340
cisco-avpair=xpgk-src-number-out=88874959823003
cisco-avpair=xpgk-dst-number-out=88879255062340
cisco-avpair=xpgk-service-type=Call
cisco-avpair=xpgk-remote-id=MVTS-LB
cisco-avpair=xpgk-remote-type=gw
cisco-avpair=xpgk-remote-ip=80.249.130.14
cisco-avpair=xpgk-remote-domain-id=ROOT
cisco-avpair=xpgk-owner-id=17
cisco-avpair=xpgk-owner-type=user
cisco-avpair=xpgk-owner-domain-id=industrypack.soho.primasip.ru
h323-conf-id=05E2CC06 024E45EC 954AFE96 1481C7C7
h323-setup-time=12:22:43.000 GMT Fri Jul 30 2010

h323-incoming-connection-ID=2665007078-1936607512-2517087274-2674700746
h323-call-origin=originate
h323-call-type=VoIP



07-30/12:24:04 INFO [pool-2-thread-23] radius - ACCOUNT:
Type=ACCOUNTING_REQUEST
Attributes:
User-Name=17@industrypack.soho.primasip.ru
NAS-IP-Address=80.249.130.7
NAS-Port=0
Service-Type=14
Acct-Input-Octets=118712
Acct-Output-Octets=116189
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=59
Acct-Input-Packets=3672
Acct-Session-Id=625d2e2f-3939-4447-abdb-ef342bf4b641-VoIP
Acct-Output-Packets=3636
NAS-Port-Type=0
Calling-Station-Id=88874959823003
Called-Station-Id=88879255062340
h323-gw-id=80.249.130.7
h323-voice-quality=0
h323-remote-address=80.249.130.14
h323-disconnect-cause=10
h323-connect-time=12:23:02.000 GMT Fri Jul 30 2010
h323-disconnect-time=12:24:01.000 GMT Fri Jul 30 2010
cisco-avpair=h323-call-id=625D2E2F 39394447 ABDBEF34 2BF4B641
cisco-avpair=h323-remote-id=80.249.130.14
cisco-avpair=h323-gw-address=80.249.130.7
cisco-avpair=xpgk-src-number-in=17
cisco-avpair=xpgk-dst-number-in=88879255062340
cisco-avpair=xpgk-src-number-out=88874959823003
cisco-avpair=xpgk-dst-number-out=88879255062340
cisco-avpair=xpgk-service-type=Call
cisco-avpair=xpgk-remote-id=MVTS-LB
cisco-avpair=xpgk-remote-type=gw
cisco-avpair=xpgk-remote-ip=80.249.130.14
cisco-avpair=xpgk-remote-domain-id=ROOT
cisco-avpair=xpgk-owner-id=17
cisco-avpair=xpgk-owner-type=user
cisco-avpair=xpgk-owner-domain-id=industrypack.soho.primasip.ru
h323-conf-id=05E2CC06 024E45EC 954AFE96 1481C7C7
h323-setup-time=12:22:43.000 GMT Fri Jul 30 2010

h323-incoming-connection-ID=2665007078-1936607512-2517087274-2674700746
h323-call-origin=originate
h323-call-type=VoIP

07-30/12:24:05 INFO [pool-2-thread-22] radius - RESPONSE:
Type=ACCOUNTING_RESPONSE
Process time stop: 3785
Attributes:

07-30/12:24:05 INFO [pool-2-thread-23] radius - RESPONSE:
Type=ACCOUNTING_RESPONSE
Process time stop: 799
Attributes:




радиус процессор отработал первый полученный стоп пакет и сохранил
запись в базу.
На получение второго стоп пакета была также создана запись в базе.
Вопрос состоит в том, почему вторая запись оказалась привязана к тому же
радиус логу? а не отработалась ситуация прихода единичного стоп пакета.



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

в классе bitel.billing.server.processor.voiceip.VoiceIpProcessor в
методе accountingProcess

при обработке стоп пакета и обнаружении соответствующей сессии в кеше
она из кеша удаляется
else if (session.getH323ID().equals(_H323_conf_id))
{
this.log.debug("Stopping saved connection " + _H323_conf_id);

conList.removeCon(nasCon);


в версии 5.0 в том же класссе и методе при обработке стоп пакета
найденная сессия из кеша не удаляется сразу.

Из кеша она уйдет только по истечению таймаута
if ((conStart != null) &&
((now - conStart.getTimeInMillis()) / 1000L > maxTime * 2))
{
conList.removeCon(nasCon);
}



прошу поправить эту ситуацию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VOIP Radius 5.0 - Завершение сессий
СообщениеДобавлено: 10 авг 2010, 12:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Хех, только было хотел создать такую же тему.

1. У нас похожая ситуация: биллинг получил 3 стоп-пакета и создал по ним 3 идентичных сессии. Но, в отличие от топикстартера, каждой сессии привязалась своя запись в таблице логов радиуса.
Кроме того, странно, что в первом посте у двух пакетов одинаковый Acct-Delay-Time.
У нас у трех сессий он, соответственно, 0, 3 и 6. Т.е. это счетчик повторных передач в секундах с первой попытки, если от радиуса не приходит ответа о получении.

Версия радиуса: version 5.0 build 177 from 16.03.2010 15:35:41

2. Хотел сделать выборку таких дублей запросом:
Код:
select h323_id, count(*) cnt from log_session_12_201007 group by h323_id having cnt>1;

Но по полю h323_id нет индекса. Добавьте пожалуйста, т.к. это поле явно предназначено для поиска.

3.
manowaretz писал(а):
в версии 5.0 в том же класссе и методе при обработке стоп пакета
найденная сессия из кеша не удаляется сразу.

Из кеша она уйдет только по истечению таймаута
if ((conStart != null) &&
((now - conStart.getTimeInMillis()) / 1000L > maxTime * 2))
{
conList.removeCon(nasCon);
}



прошу поправить эту ситуацию.

Как мне тут подсказывают, сессия не удаляется сразу умышленно, на случай если некоторые accounting-пакеты запоздают и придут после stop-пакета. Так что всё в порядке. А вот проверку стоп-пакетов по "h323-conf-id" было бы неплохо сделать, чтобы избежать таких дублей.

Итого:
- не добавлять повторные сессии в log_session с тем же h323_id хотя бы в течение часа (т.к. h323_id не обязательно уникальный, афаик)
- индекс по h323_id в log_session


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VOIP Radius 5.0 - Завершение сессий
СообщениеДобавлено: 10 авг 2010, 13:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Cromeshnic писал(а):
Хотел сделать выборку таких дублей запросом:

Неправильный запрос.
Вот так хотя бы, чтоб наверняка (могут быть легальные сессии с одинаковым h323_id - когда звонок завершается внутри нашей же сети):
Код:
select h323_id, nas_id, count(*) cnt from log_session_12_201007 group by h323_id, nas_id having cnt>4;

Выдало 114 дублей для таблицы в 374665 записей. У одного из дубликатов 135 повтора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: VOIP Radius 5.0 - Завершение сессий
СообщениеДобавлено: 26 май 2011, 13:26 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Обновление выложено 06.05.2011.


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

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


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

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


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

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