Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / CDR+Radius. Отсутсвует NAS IP Address

CDR+Radius. Отсутсвует NAS IP Address

Какие есть предположения, что в отпрвленом к радиус серверу запросе отсутсвует заголовок NAS IP Address. Точнее сказать значение пусто.
<1 2 3>
Откуда: Оренбург
Сообщений: 6

Re: CDR+Radius. Отсутсвует NAS IP Address

проблема в том, что у астера свои атрибуты. ast_rad_acc дает атрибуты в формате циско, а родной астеровский дает другие атрибуты, которые не понимает большинство биллингов
2009-04-14 15:16

Откуда: Kiev, Ukraine
Сообщений: 13

Re: CDR+Radius. Отсутсвует NAS IP Address

Наш биллинг их понимает. Поэтому надо поднимать родной астерисковский cdr_radius.

Что по поводу вопросов:
1. Откуда Астериск берет значение для "NAS IP Address Attribute" и как его изменить?
2. Как включить/посмотреть дебаг radius эккаунтинга?
2009-04-14 16:09

Откуда: Оренбург
Сообщений: 6

Re: CDR+Radius. Отсутсвует NAS IP Address

Я смотрю логи радиуса в биллинге. Может быть и у тебя там же?
2009-04-14 16:57

Откуда: Kiev, Ukraine
Сообщений: 13

Re: CDR+Radius. Отсутсвует NAS IP Address

Логи радиус запроса я могу видеть в tcpdump.
Интересно видеть логи астериска и ошибки которые возникають при генерации радиус запроса. В CLI они не показываются при "core set verbose 5"
2009-04-14 17:17

Откуда: Kiev, Ukraine
Сообщений: 13

Re: CDR+Radius. Отсутсвует NAS IP Address

И как можно изменить "NAS IP Address"?
2009-04-14 17:18

Сообщений: 1129

Re: CDR+Radius. Отсутсвует NAS IP Address

tcpdump это не показатель
вы на сервер радиуса смотрите что за пакеты приходят

и к томуже
сам PW_NAS_IP_ADDRESS заполняеться в библиотеке радиуса
когда отправляеться уже пакет
этот айпи береться с системы
значи у вас там какая то кривизна в системе если оно не может вынять айпи адресс для его заполнения в отправке
ортодоксальный антиастерискер || антилинуксоид! (астериск || линукс) - иррациональное решение!. и здесь я тоже http://forum.asterisk.ru
2009-04-14 17:38

Откуда: Оренбург
Сообщений: 6

Re: CDR+Radius. Отсутсвует NAS IP Address

я все таки удивляюсь! сам приводил в самом начале мануал, откуда настраивал
http://voip.rus.net/tiki-index.php?page=Asterisk+cdr+radius
А в этом мануале четко прописано, где хранятся логи запросов, ведь в конце концов не астериск делает радиус запросы, а "Клиентская библиотека Radiusclient-ng" и там же описаны атрибуты, которые дает эта библиотека
Протоколируемые поля:

* "Asterisk-Acc-Code", Имя аккаунта CDR
* "Asterisk-Src",
* "Asterisk-Dst",
* "Asterisk-Dst-Ctx", Контекст назначения вызова
* "Asterisk-Clid",
* "Asterisk-Chan", Имя канала
* "Asterisk-Dst-Chan", (если доступно)
* "Asterisk-Last-App", Последняя команды выполненная в канале
* "Asterisk-Last-Data", Аргумент последней выполненной команды.
* "Asterisk-Start-Time",
* "Asterisk-Answer-Time",
* "Asterisk-End-Time",
* "Asterisk-Duration", Продолжительность всего сеанса связи, от момента приема вызова до его полного завершения. ("end time" минус "start time")
* "Asterisk-Bill-Sec", Продолжительность вызова с момента, когда на вызов ответили. ("end time" минус "answer time")
* "Asterisk-Disposition", ANSWERED, NO ANSWER, BUSY
* "Asterisk-AMA-Flags", DOCUMENTATION, BILL, IGNORE и т.д.
* "Asterisk-Unique-ID", Уникальный идентификатор вызова
* "Asterisk-User-Field" Пользовательские данные, установленные командой SetCDRUserField
Обратите внимание, что ту нет ни слова о NAS_ADDRESS

Вот именно поэтому я и использую тот вариант, который упоминал выше!
И опять таки! NAS_IP_ADDRESS - это атрибут циско, но никак не астера. Так что советую покурить маны на свой биллинг. Реально ли поддерживает он данные атрибуты. Я делал 1 вариант, когда скриптами предобработки переделывал радиус запросы в удобоваримый для своего биллинга вариант, в итоге отказался от него, и сделал через ast_rad_acc
2009-04-14 18:35

Откуда: Kiev, Ukraine
Сообщений: 13

Re: CDR+Radius. Отсутсвует NAS IP Address

Почему же tcpdump это не показатель?
В дампе четко видно какие атрибуты передаются и какое их значение! И NAS-IP-Address в нем присутствует и равно пустой строке!
NAS IP Address Attribute (4), length: 2, Value:

Дамп снимает на сервере где сторит радиус-сервер. Посему радиус получает, то что описано выше в дампе.

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

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


И опять таки! NAS_IP_ADDRESS - это атрибут циско, но никак не астера.

NAS_IP_ADDRESS - это обязательный атрибут радиус протокола для эккаунтинга по rfc2866

http://www.ietf.org/rfc/rfc2866.txt

"Either NAS-IP-Address or NAS-Identifier MUST be present in a
RADIUS Accounting-Request."


Есть ли тут хоть один администратор, который успешно использовал реализацию от digium для радиус эккаунтинга?
2009-04-17 13:14

Сообщений: 1129

Re: CDR+Radius. Отсутсвует NAS IP Address

Почему же tcpdump это не показатель?
потому что не показатель
да будет вам извстно что например некоторые атрибуты и их значение тцпдамп не показывает

а разбирать какая у вас версия тцпдампа у меня желание нет
показатель токо приходящий пакет разобраный радиус сервером

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

могу показать кусок С кода радиус нг либ
хотите разбирайтесь

Есть ли тут хоть один администратор, который успешно использовал реализацию от digium для радиус эккаунтинга?

сделайте гугл
у одного вас оно не работает
даже бжбиллинг показывает свои патчи что и как наложить
и как пример приходяшие атрибудты на сервер радиуса
и там есть нас айпи адресс
ортодоксальный антиастерискер || антилинуксоид! (астериск || линукс) - иррациональное решение!. и здесь я тоже http://forum.asterisk.ru
2009-04-17 14:04

Сообщений: 1129

Re: CDR+Radius. Отсутсвует NAS IP Address



/*
* Fill in NAS-IP-Address
*/
if (sinlocal.sin_addr.s_addr == htonl(INADDR_ANY)) {
if (rc_get_srcaddr(SA(&sinlocal), SA(&sinremote)) != 0) {
close (sockfd);
memset (secret, '\0', sizeof (secret));
return ERROR_RC;
}
}
nas_ipaddr = ntohl(sinlocal.sin_addr.s_addr);
rc_avpair_add(rh, &(data->send_pairs), PW_NAS_IP_ADDRESS,
&nas_ipaddr, 0, 0);


/*
* Function: rc_get_srcaddr
*
* Purpose: given remote address find local address which the
* system will use as a source address for sending
* datagrams to that remote address
*
* Returns: 0 in success, -1 on failure, address is filled into
* the first argument.
*
*/
int
rc_get_srcaddr(struct sockaddr *lia, struct sockaddr *ria)
{
int temp_sock;
socklen_t namelen;

temp_sock = socket(ria->sa_family, SOCK_DGRAM, 0);
if (temp_sock == -1) {
rc_log(LOG_ERR, "rc_get_srcaddr: socket: %s", strerror(errno));
return -1;
}

if (connect(temp_sock, ria, SA_LEN(ria)) != 0) {
rc_log(LOG_ERR, "rc_get_srcaddr: connect: %s",
strerror(errno));
close(temp_sock);
return -1;
}

namelen = SA_LEN(ria);
if (getsockname(temp_sock, lia, &namelen) != 0) {
rc_log(LOG_ERR, "rc_get_srcaddr: getsockname: %s",
strerror(errno));
close(temp_sock);
return -1;
}

close(temp_sock);
return 0;
}
ортодоксальный антиастерискер || антилинуксоид! (астериск || линукс) - иррациональное решение!. и здесь я тоже http://forum.asterisk.ru
2009-04-17 14:08

<1 2 3>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru