forum.bitel.ru http://forum.bitel.ru/ |
|
Не корректно работает режим поиска алиаса в типах логинов http://forum.bitel.ru/viewtopic.php?f=6&t=4571 |
Страница 1 из 1 |
Автор: | paramonies [ 22 сен 2010, 15:33 ] |
Заголовок сообщения: | Не корректно работает режим поиска алиаса в типах логинов |
Существует такая проблема - при поиске алиаса работают только атрибуты 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 Кто-нибуть сталкивался с подобной проблемой? |
Автор: | Amir [ 23 сен 2010, 13:10 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
А радиус перезапускали после изменения типов поиска? |
Автор: | paramonies [ 23 сен 2010, 13:10 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
Версия Биллинга 5.1.493 Voip 5.1.149 Radius 5.1.145 |
Автор: | paramonies [ 23 сен 2010, 13:11 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
Да, конечно. |
Автор: | Amir [ 23 сен 2010, 13:13 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
Цитата: h323-call-type=VOIP В последнем варианте же acct.in получается, а не acct.out?h323-call-origin=answer Цитата: Настройки NAS Точно именно заглавными VOIP? Не уверен что так вообще должно работать, попробуйте маленькими - как в документации.Код: auth.in=VOIP/answer auth.out=VOIP/originate acct.in=VOIP/answer acct.out=VOIP/originate Тип поиска один, и только он проставляется в "find.mode" в скрипте предобработки? |
Автор: | paramonies [ 23 сен 2010, 13:31 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
У меня во всех вариантах звонка получается Код: 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 |
Автор: | paramonies [ 23 сен 2010, 14:08 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
Сейчас атрибут 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 Все осталось так как было. |
Автор: | Amir [ 23 сен 2010, 18:24 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
А какой скрипт предобработки? |
Автор: | paramonies [ 23 сен 2010, 18:26 ] |
Заголовок сообщения: | Re: Не корректно работает режим поиска алиаса в типах логинов |
Код: 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) |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |