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

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

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

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

прошу прощения немного упостил


/*
* Function: rc_own_bind_ipaddress
*
* Purpose: get the IP address to be used as a source address
* for sending requests in host order
*
* Returns: IP address
*
*/

UINT4 rc_own_bind_ipaddress(rc_handle *rh)
{
char hostname[256];
UINT4 rval;

if (rh->this_host_bind_ipaddr != NULL)
return *rh->this_host_bind_ipaddr;

rh->this_host_bind_ipaddr = malloc(sizeof(*rh->this_host_bind_ipaddr));
if (rh->this_host_bind_ipaddr == NULL)
rc_log(LOG_CRIT, "rc_own_bind_ipaddress: out of memory");
if (rc_conf_str(rh, "bindaddr") == NULL ||
strcmp(rc_conf_str(rh, "bindaddr"), "*") == 0) {
rval = INADDR_ANY;
} else {
strncpy(hostname, rc_conf_str(rh, "bindaddr"), sizeof(hostname));
hostname[sizeof(hostname) - 1] = '\0';
if ((rval = rc_get_ipaddr (hostname)) == 0) {
rc_log(LOG_ERR, "rc_own_ipaddress: couldn't get IP address from bindaddr");
rval = INADDR_ANY;
}
}
if (rh->this_host_bind_ipaddr != NULL)
*rh->this_host_bind_ipaddr = rval;

return rval;
}

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

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

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

Мне приходится ориентироваться на tcpdump, потому что в биллинге радиус сервер самописный разработчиками биллинга. И он не может распарсить запрос посланный с астериска. Тоесть значения никакие я там не увижу (если запрос не верный).
А в tcpdump эта переменная (так как она из rfc) отображанется английским по черному.Разработчики биллинга подтверждают, что переменная приходит и ip адреса в ней нет.

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

Код понятен.

В настройках клиента (radiusclient-ng):
# local address from which radius packets have to be sent
bindaddr 67.700.239.25

Результат тотже:
NAS IP Address Attribute (4), length: 2, Value:



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

Использовать демон на перле который самостоятельно генерирует запросы к радиусу это последнее дело. Потому что digium уже постарался сделать радиус-acct. И видимо у кого-то это заработало.

2009-04-17 18:33

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

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

На странице
http://bgbilling.ru/exbb/topic.php?forum=2&topic=28
пишут:
# NAS-Identifier
#
# If supplied, this option will cause the client to send the given string
# as the contents of the NAS-Identifier attribute in RADIUS requests. No
# NAS-IP-Address attribute will be sent in this case.
#
# The default behavior is to send a NAS-IP-Address option and not send
# a NAS-Identifier. The value of the NAS-IP-Address option is chosen
# by resolving the system hostname.

nas_identifier pptp


Погрепал все исходники... Ну не обрабатывается там nas_identifier.
И не отсылается. Хотя это был бы для меня выход - не отправлять в запросе NAS IP Address в принципе.
2009-04-17 18:37

Сообщений: 1129

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

>mambur
установи переменную bindaddr *
и посмотри что будет

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

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

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

Устанавливал:
bindaddr 67.xxx.239.25 # мой ip
Результат прежний.

Вариант с printf конечно может разрешить ситуацию, но ведь это не перл. А после каждого изменения перекомпиляция - это надо запастись терпением.

Хотя код всего в двух строках:
nas_ipaddr = ntohl(sinlocal.sin_addr.s_addr);
rc_avpair_add(rh, &(data->send_pairs), PW_NAS_IP_ADDRESS,
nas_ipaddr, 0, 0);


2009-04-22 10:52

Сообщений: 1129

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

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

<12 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