BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Не авторизуется по Alias
СообщениеДобавлено: 06 авг 2012, 15:02 
Не в сети

Зарегистрирован: 06 авг 2012, 14:38
Сообщения: 2
Карма: 0
В логе звонка выдает такое сообщение:

Код:
08-06/12:53:25 DEBUG [rdsLstnr-p-4-t-1] VoiceIpRadiusProcessor - Process accounting, flag=1 Packet type: Accounting-Request
Identifier: 226
Authenticator: {5A 58 B6 AC 86 64 E2 79 EE 4F 77 5C 13 4D 3E D6}
Attributes:
  User-Name=100
  NAS-IP-Address=127.0.0.1
  NAS-Port=0
  Acct-Status-Type=2
  Acct-Delay-Time=0
  Acct-Session-Time=2
  Calling-Station-Id=100
  Acct-Session-Id=1344243199.146
  Called-Station-Id=200
  h323-setup-time=2012-08-06 12:53:19 +0400
  h323-conf-id=1344243199.146
  h323-call-type=VOIP
  h323-call-origin=originate
  h323-disconnect-time=2012-08-06 12:53:25 +0400
  h323-connect-time=2012-08-06 12:53:23 +0400
  h323-disconnect-cause=0
  Asterisk-Src=100
  Asterisk-Dst=200
  Asterisk-Acc-Code=
  Asterisk-Start-Time=2012-08-06 12:53:19 +0400
  Asterisk-Answer-Time=2012-08-06 12:53:23 +0400
  Asterisk-Last-App=Dial
  Asterisk-Last-Data=SIP/200,,tT
  Asterisk-Chan=SIP/100-00000092
  Asterisk-Dst-Chan=SIP/200-00000093
  Asterisk-Dst-Ctx=sip_auth
  Asterisk-Clid="100" <100>
  Asterisk-User-Field="answer"
  Asterisk-Unique-ID=1344243199.146
  Asterisk-AMA-Flags=DOCUMENTATION
  Asterisk-Disposition=ANSWERED
  Asterisk-Bill-Sec=2
  Asterisk-Duration=6
  Asterisk-End-Time=2012-08-06 12:53:25 +0400

08-06/12:53:25 DEBUG [rdsLstnr-p-4-t-1] VoiceIpRadiusProcessor - Saved connection not found
08-06/12:53:25 DEBUG [rdsLstnr-p-4-t-1] ProcessorRequest - Sending to /127.0.0.1:59456
08-06/12:53:25  INFO [rdsLstnr-p-4-t-1] RadiusListenerWorker - RESPONSE:
Packet type: Accounting-Response
Identifier: 226
Authenticator: {57 95 7F F2 80 B8 AE 1F 30 18 7E 95 54 80 CF B8}
Attributes:

Process time stop: 24


В типах логина стоит значение: поиск по User-Name=ALIAS

В конфигурации модуля:
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=0,1,2,3

Alias используется цифровой "200", совпадающий с логином заведенным в Asterisk.
Версия системы 5,2.
Не подскажете, в чем может быть проблема?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не авторизуется по Alias
СообщениеДобавлено: 08 авг 2012, 11:54 
Не в сети

Зарегистрирован: 06 авг 2012, 14:38
Сообщения: 2
Карма: 0
Проблема решена.
Был использован следующий скрипт пред обработки:
Код:
import bitel.billing.server.radius.*;
import ru.bitel.bgbilling.kernel.network.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)

//Добавляем к нашему номеру N_ для успешной авторизации по ALIAS.
userName = request.getStringAttribute(-1, RadiusStandartAttributes.User_Name, "")  ;
print("username="+userName);
   if (userName.matches("^[0-9]+$"))
 {     
  print("matches ok");
  request.setStringAttribute( RadiusStandartAttributes.User_Name, "N_"+userName);   
 }


Конфиг наса использовался:
Код:
auth.in=voip/answer
auth.out=voip/originate
acct.in=voip/answer
acct.out=voip/originate
service=1


find.order=0,1,2,3
VoiceIp.workmode=2

#
nas.inspector.class=ru.bitel.bgbilling.kernel.network.radius.inspectors.PodNasConnectionInspector
#на какой порт слать PoD/CoA запросы
nas.inspector.radius.port=1812
#на какой хост слать (если не указан - берется IP адреса NASа)
#nas.inspector.radius.host=
#секрет для подписи пакетов (если не указан - берется секрет NASа)
nas.inspector.radius.secret=billing
#какие атрибуты добавлять в PoD/CoA запрос из сессии, если пустой параметр - высылаются все атрибуты
nas.inspector.radius.attributes=User-Name;Framed-IP-Address;Acct-Session-Id;Alias
#опции, относящиеся только к CoA пакетам
#таймаут ожидания ответа в секундах ответа между попытками отправки пакета СoA
nas.inspector.coa.timeout=5
#количество попыток отправить пакет CoA
nas.inspector.coa.retries=2
#количество потоков отправки CoA пакетов
nas.inspector.coa.threads=4
#отправка при смене CoA пакета всех атрибутов, аналогично ответу на авторизацию
#nas.inspector.coa.send.all.attributes=1
#логирование в RADIUS логе сессии отправляемых CoA пакетов
#coa.log=1
#фиксированные атрибуты CoA-пакета
#nas.inspector.coa.fixed.attributes=
#фиксированные атрибуты PoD-пакета
#nas.inspector.pod.fixed.attributes=
#отправка PoD пакета вместо CoA
#nas.inspector.send.pod.instead.coa=1


Типы логинов везде:
Поиск по User-Name=ALIAS


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

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


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

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


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

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