BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 22 сен 2010, 15:33 
Не в сети

Зарегистрирован: 23 авг 2010, 02:00
Сообщения: 58
Карма: 0
Существует такая проблема - при поиске алиаса работают только атрибуты acct.out во вкладке типы логинов
Настройки NAS
Код:
auth.in=VOIP/answer
auth.out=VOIP/originate
acct.in=VOIP/answer
acct.out=VOIP/originate


Есть договор с алиасом test_100.
Например есть звонок с test_100 на test_200. Алиас найден при следующих настройках в типе логина:
Изображение

Код:
09-22/18:43:21  INFO [radiusListener-p-4-t-1] status - REQUEST:
Packet type: Accounting-Request
Identifier: 231
Authenticator: {91 A6 14 BB 74 0A 44 9C 3B 3B 12 E5 B2 82 F8 3D}
Attributes:
  User-Name=SIP/test_100-00000088
  NAS-IP-Address=192.168.245.41
  NAS-Port=0
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Id=1285166623.136
  Asterisk-Src=test_100
  Asterisk-Dst=test_200
  Asterisk-Acc-Code=
  Asterisk-Start-Time=2010-09-22 14:43:43 +0000
  Asterisk-Answer-Time=2010-09-22 14:43:46 +0000
  Asterisk-Last-App=Dial
  Asterisk-Last-Data=SIP/test_200,30,tr
  Asterisk-Chan=SIP/test_100-00000088
  Asterisk-Dst-Chan=SIP/test_200-00000089
  Asterisk-Dst-Ctx=test
  Asterisk-Clid="test_100" <test_100>
  Asterisk-User-Field=
  Asterisk-Unique-ID=1285166623.136
  Asterisk-AMA-Flags=DOCUMENTATION
  Asterisk-Disposition=ANSWERED
  Asterisk-Bill-Sec=3
  Asterisk-Duration=6
  Asterisk-End-Time=2010-09-22 14:43:49 +0000

09-22/18:43:21  INFO [radiusListener-p-4-t-1] status - RESPONSE:
Packet type: Accounting-Response
Identifier: 231
Authenticator: {13 E5 89 DE AF DB 31 40 5B 44 96 3B A7 F3 31 18}
Attributes:

Process time stop: 4

09-22/18:43:21 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Process accounting, flag=1 Packet t      ype: Accounting-Request
Identifier: 231
Authenticator: {91 A6 14 BB 74 0A 44 9C 3B 3B 12 E5 B2 82 F8 3D}
Attributes:
  User-Name=test_100
  NAS-IP-Address=192.168.245.41
  NAS-Port=0
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Time=3
  Calling-Station-Id=test_100
  Acct-Session-Id=1285166623.136
  Called-Station-Id=test_200
  h323-setup-time=2010-09-22 14:43:43 +0000
  h323-conf-id=1285166623.136
  h323-call-type=VOIP
  h323-call-origin=answer
  h323-disconnect-time=2010-09-22 14:43:49 +0000
  h323-connect-time=2010-09-22 14:43:46 +0000
  h323-disconnect-cause=0
  Asterisk-Src=test_100
  Asterisk-Dst=test_200
  Asterisk-Acc-Code=
  Asterisk-Start-Time=2010-09-22 14:43:43 +0000
  Asterisk-Answer-Time=2010-09-22 14:43:46 +0000
  Asterisk-Last-App=Dial
  Asterisk-Last-Data=SIP/test_200,30,tr
  Asterisk-Chan=SIP/test_100-00000088
  Asterisk-Dst-Chan=SIP/test_200-00000089
  Asterisk-Dst-Ctx=test
  Asterisk-Clid="test_100" <test_100>
  Asterisk-User-Field=
  Asterisk-Unique-ID=1285166623.136
  Asterisk-AMA-Flags=DOCUMENTATION
  Asterisk-Disposition=ANSWERED
  Asterisk-Bill-Sec=3
  Asterisk-Duration=6
  Asterisk-End-Time=2010-09-22 14:43:49 +0000

09-22/18:43:21 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Saved connection not found
09-22/18:43:21 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Found login type 1
09-22/18:43:21 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Login found.
09-22/18:43:21  INFO [radiusListener-p-4-t-1] CostMapCache - (Re)loading costMap cache and geo codes for m      id 3


Если изменить настройки для acct out, которые по идее в поиске алиаса c ancwer не учавствуют, то
Изображение
Код:
09-22/18:56:27 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Process accounting, flag=1 Packet type: Accounting-Request
Identifier: 233
Authenticator: {5C 56 41 3E 18 1B C9 FB DD 0F 0C 16 9C 6A 4A F6}
Attributes:
  User-Name=test_100
  NAS-IP-Address=192.168.245.41
  NAS-Port=0
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Time=3
  Calling-Station-Id=test_100
  Acct-Session-Id=1285167411.140
  Called-Station-Id=test_200
  h323-setup-time=2010-09-22 14:56:51 +0000
  h323-conf-id=1285167411.140
  h323-call-type=VOIP
  h323-call-origin=answer
  h323-disconnect-time=2010-09-22 14:56:55 +0000
  h323-connect-time=2010-09-22 14:56:52 +0000
  h323-disconnect-cause=0
  Asterisk-Src=test_100
  Asterisk-Dst=test_200
  Asterisk-Acc-Code=
  Asterisk-Start-Time=2010-09-22 14:56:51 +0000
  Asterisk-Answer-Time=2010-09-22 14:56:52 +0000
  Asterisk-Last-App=Dial
  Asterisk-Last-Data=SIP/test_200,30,tr
  Asterisk-Chan=SIP/test_100-0000008c
  Asterisk-Dst-Chan=SIP/test_200-0000008d
  Asterisk-Dst-Ctx=test
  Asterisk-Clid="test_100" <test_100>
  Asterisk-User-Field=
  Asterisk-Unique-ID=1285167411.140
  Asterisk-AMA-Flags=DOCUMENTATION
  Asterisk-Disposition=ANSWERED
  Asterisk-Bill-Sec=3
  Asterisk-Duration=4
  Asterisk-End-Time=2010-09-22 14:56:55 +0000

09-22/18:56:27 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Saved connection not found
09-22/18:56:27 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Login not found..


Если звонок с test_200 на test_100, то алиас не найден, хотя acct.in = =Поиск по Called-Station-Id=ALIAS
Изображение
Код:
Attributes:
  User-Name=test_200
  NAS-IP-Address=192.168.245.41
  NAS-Port=0
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Time=2
  Calling-Station-Id=test_200
  Acct-Session-Id=1285167083.138
  Called-Station-Id=test_100
  h323-setup-time=2010-09-22 14:51:23 +0000
  h323-conf-id=1285167083.138
  h323-call-type=VOIP
  h323-call-origin=answer
  h323-disconnect-time=2010-09-22 14:51:27 +0000
  h323-connect-time=2010-09-22 14:51:25 +0000
  h323-disconnect-cause=0
  Asterisk-Src=test_200
  Asterisk-Dst=test_100
  Asterisk-Acc-Code=
  Asterisk-Start-Time=2010-09-22 14:51:23 +0000
  Asterisk-Answer-Time=2010-09-22 14:51:25 +0000
  Asterisk-Last-App=Dial
  Asterisk-Last-Data=SIP/test_100,30,tr
  Asterisk-Chan=SIP/test_200-0000008a
  Asterisk-Dst-Chan=SIP/test_100-0000008b
  Asterisk-Dst-Ctx=test
  Asterisk-Clid="79263661502" <test_200>
  Asterisk-User-Field=
  Asterisk-Unique-ID=1285167083.138
  Asterisk-AMA-Flags=DOCUMENTATION
  Asterisk-Disposition=ANSWERED
  Asterisk-Bill-Sec=2
  Asterisk-Duration=4
  Asterisk-End-Time=2010-09-22 14:51:27 +0000

09-22/18:50:59 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Saved connection not found
09-22/18:50:59 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Login not found..


Последний вариант звонок с test_200 на test_100, алиас найден, acct.out = Поиск по Called-Station-Id=ALIAS
Изображение
Код:
09-22/19:15:36 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Process accounting, flag=1 Packet type: Accounting-Request
Identifier: 236
Authenticator: {1E 79 66 AB 3F F3 A4 A8 49 01 1D 3B D2 C7 5B 62}
Attributes:
  User-Name=test_200
  NAS-IP-Address=192.168.245.41
  NAS-Port=0
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Time=1
  Calling-Station-Id=test_200
  Acct-Session-Id=1285168561.146
  Called-Station-Id=test_100
  h323-setup-time=2010-09-22 15:16:01 +0000
  h323-conf-id=1285168561.146
  h323-call-type=VOIP
  h323-call-origin=answer
  h323-disconnect-time=2010-09-22 15:16:04 +0000
  h323-connect-time=2010-09-22 15:16:03 +0000
  h323-disconnect-cause=0
  Asterisk-Src=test_200
  Asterisk-Dst=test_100
  Asterisk-Acc-Code=
  Asterisk-Start-Time=2010-09-22 15:16:01 +0000
  Asterisk-Answer-Time=2010-09-22 15:16:03 +0000
  Asterisk-Last-App=Dial
  Asterisk-Last-Data=SIP/test_100,30,tr
  Asterisk-Chan=SIP/test_200-00000092
  Asterisk-Dst-Chan=SIP/test_100-00000093
  Asterisk-Dst-Ctx=test
  Asterisk-Clid="79263661502" <test_200>
  Asterisk-User-Field=
  Asterisk-Unique-ID=1285168561.146
  Asterisk-AMA-Flags=DOCUMENTATION
  Asterisk-Disposition=ANSWERED
  Asterisk-Bill-Sec=1
  Asterisk-Duration=3
  Asterisk-End-Time=2010-09-22 15:16:04 +0000

09-22/19:15:36 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Saved connection not found
09-22/19:15:36 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Found login type 1
09-22/19:15:36 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Login found.
09-22/19:15:36  INFO [radiusListener-p-4-t-1] CostMapCache - (Re)loading costMap cache and geo codes for mid 3

Видно, что не смотря на атрибут answer поиск алиаса в любом случае проходит по параметру acct.out
Кто-нибуть сталкивался с подобной проблемой?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 13:10 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А радиус перезапускали после изменения типов поиска?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 13:10 
Не в сети

Зарегистрирован: 23 авг 2010, 02:00
Сообщения: 58
Карма: 0
Версия Биллинга 5.1.493
Voip 5.1.149
Radius 5.1.145


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 13:11 
Не в сети

Зарегистрирован: 23 авг 2010, 02:00
Сообщения: 58
Карма: 0
Да, конечно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 13:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
h323-call-type=VOIP
h323-call-origin=answer
В последнем варианте же acct.in получается, а не acct.out?

Цитата:
Настройки NAS
Код:
auth.in=VOIP/answer
auth.out=VOIP/originate
acct.in=VOIP/answer
acct.out=VOIP/originate
Точно именно заглавными VOIP? Не уверен что так вообще должно работать, попробуйте маленькими - как в документации.

Тип поиска один, и только он проставляется в "find.mode" в скрипте предобработки?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 13:31 
Не в сети

Зарегистрирован: 23 авг 2010, 02:00
Сообщения: 58
Карма: 0
У меня во всех вариантах звонка получается
Код:
h323-call-type=VOIP
h323-call-origin=answer

то есть поиск все время по acct.in
Если взять третий случай то там, acct in = Поиск по Called-Station-id = ALIAS, и алиас в теории должен быть найден при этом - но 09-22/18:50:59 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Login not found.. (при этом acct out = Поиск по Calling-Station-id = ALIAS)
Но если как в последнем( 4 случае) заменить acct out на Поиск по Called-Station-id = ALIAS оставив acct in = Поиск по Called-Station-id = ALIAS, то 09-22/19:15:36 DEBUG [radiusListener-p-4-t-1] VoiceIpRadiusProcessor - Login found. Хотя параметр actt.out как я понимаю не должен влиять на поиск, все отрабатывается acct.in


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 14:08 
Не в сети

Зарегистрирован: 23 авг 2010, 02:00
Сообщения: 58
Карма: 0
Сейчас атрибут voip везде сделал в нижнем регистре.

В настройках NAS
Код:
service=3
auth.in=voip/answer
auth.out=voip/originate
acct.in=voip/answer
acct.out=voip/originate
find.order=3


В настройках модуля Voip
Код:
# режимы поиска логинов
findmode.0.title=Поиск по User-Name=LOGIN
findmode.0.value=User-Name=LOGIN
findmode.1.title=Поиск по User-Name=ALIAS
findmode.1.value=User-Name=ALIAS
findmode.2.title=Поиск по Calling-Station-Id=ALIAS
findmode.2.value=Calling-Station-Id=ALIAS
findmode.3.title=Поиск по Called-Station-Id=ALIAS
findmode.3.value=Called-Station-Id=ALIAS
find.order=3


Все осталось так как было.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 18:24 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А какой скрипт предобработки?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 сен 2010, 18:26 
Не в сети

Зарегистрирован: 23 авг 2010, 02:00
Сообщения: 58
Карма: 0
Код:
import bitel.billing.server.radius.*;


 
if (request.getIntAttribute(RadiusStandartAttributes.Acct_Status_Type) == 2) {
   // Устанавливаем Calling-Station-Id = Asterisk-Src
   CallingStationId = request.getStringAttribute(22736, 102, null);
   request.setStringAttribute(RadiusStandartAttributes.Calling_Station_Id, CallingStationId);


   // Проверяем наличие Asterisk-Acc-Code, и если он существует,
   // то устанавливаем User-Name = Asterisk-Acc-Code, если не существует,
   // то устанавливаем User-Name = Calling-Station-Id
   UserName = request.getStringAttribute(22736, 101, null);
  /* if (UserName != null)
      request.setStringAttribute(RadiusStandartAttributes.User_Name, UserName);
   else */
      request.setStringAttribute(RadiusStandartAttributes.User_Name, CallingStationId);

   // Устанавливаем Called-Station-Id = Asterisk-Dst
   request.setStringAttribute(RadiusStandartAttributes.Called_Station_Id, request.getStringAttribute(22736, 103, null));

   // Проверяем наличие Asterisk-User-Field, и если такой существует,
   // то на основании его значения устанавливаем h323-call-origin
   CallType = request.getStringAttribute(22736, 118, null);
   if (CallType != null && CallType.equals("answer")) {
      request.setStringAttribute(9, 26, "answer");
      request.setFlag(2);
   }
   else {
      request.setStringAttribute(9, 26, "originate");
      request.setFlag(1);
   }

   // Устанавливаем h323-call-type = voip
   request.setStringAttribute(9, 27, "voip");

   // Устанавливаем Acct-Session-Time = Asterisk-Bill-Sec
   request.setIntAttribute( RadiusStandartAttributes.Acct_Session_Time, request.getIntAttribute(22736, 114, null));

   // Устанавливаем h323-setup-time = Asterisk-Start-Time
   request.setStringAttribute(9, 25, request.getStringAttribute(22736, 110, null));

   // Устанавливаем h323-connect-time = Asterisk-Answer-Time
   request.setStringAttribute(9, 28, request.getStringAttribute(22736, 111, null));

   // Устанавливаем h323-disconnect-time = Asterisk-End-Time
   request.setStringAttribute(9, 29, request.getStringAttribute(22736, 112, null));

   // Устанавливаем h323-disconnect-cause на основании Asterisk-Disposition
   AsteriskDisposition = request.getStringAttribute(22736, 115, null);
   if (AsteriskDisposition.equals("ANSWERED"))
      request.setStringAttribute(9, 30, "0");
   else if (AsteriskDisposition.equals("NO ANSWER"))
      request.setStringAttribute(9, 30, "5");
   else if (AsteriskDisposition.equals("BUSY"))
      request.setStringAttribute(9, 30, "17");
   else
      request.setStringAttribute(9, 30, "22");

   // Устанавливаем h323-conf-id = Acct-Session-Id
   request.setStringAttribute(9, 24, request.getStringAttribute(-1, RadiusStandartAttributes.Acct_Session_Id, null));

} // Конец if (Acct_Status_Type == 2)


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

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


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

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


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

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