View Source

{TOC}

h1. Поддержка Radius в Asterisk (документ незавершённый)

* Asterisk [SVN res_auth|http://svn.digium.com/view/asterisk/team/oej/res_auth/] branch
* FreeRadius 2.0.5
* radiusclient-ng 0.5.6
h2. Введение
Исторически Radius можно было получить двумя способами:
* через pam_radius module для FreeRadiu
* через radiusclient-ng, форк 2003 года Максима Соболева от FreeRadius для поддержки SER.
На протяжении последних лет оба проекта развивались параллельно, с перекрестными слияниями кода (merges). Однако, в 2008 годы было решено объединить оба проекта, и прекратить развитие radiusclient-ng.
* [http://wiki.freeradius.org/Radiusclient]
* Актуальную информацию по поддержке Radius в Asterisk можно найти в файле docs/radius.txt пакета Asterisk.

h2. Установка

Необходимо установить 3 компонента:
* Radius сервер (freeradius). Для работы с Asterisk требуется freeradius с модулем [Digest|http://wiki.freeradius.org/Digest].
* Radius клиента (библиотека radiusclient-ng)
* поддержку в Asterisk
h3. Настройка radiusclient-ng
Конфигурационные файлы:
* /etc/radiusclient-ng/radiusclient.conf, параметры authserver и acctserver
* /etc/radiusclient-ng/servers, сервер и разделяемый пароль.
h3. Настройка FreeRadius
* Файл /etc/raddb/clients.conf, описание сервера localhost.
h3. Настройка Asterisk
После установки radius сервера и клиента надо пересобрать asterisk (./configure && make menuconfig).

h2. Authentication

h2. Accounting

Вот такие значения Asterisk передает в Radius сервер:
* "Asterisk-Acc-Code", The account name of detail records
* "Asterisk-Src",
* "Asterisk-Dst",
* "Asterisk-Dst-Ctx", The destination context
* "Asterisk-Clid",
* "Asterisk-Chan", The channel
* "Asterisk-Dst-Chan", (if applicable)
* "Asterisk-Last-App", Last application run on the channel
* "Asterisk-Last-Data", Argument to the last channel
* "Asterisk-Start-Time",
* "Asterisk-Answer-Time",
* "Asterisk-End-Time",
* "Asterisk-Duration", Duration is the whole length that the entire call lasted. ie. call rx'd to hangup "end time" minus "start time"
* "Asterisk-Bill-Sec", The duration that a call was up after other end answered which will be <= to duration "end time" minus "answer time"
* "Asterisk-Disposition", ANSWERED, NO ANSWER, BUSY
* "Asterisk-AMA-Flags", DOCUMENTATION, BILL, IGNORE etc, specified on a per channel basis like accountcode.
* "Asterisk-Unique-ID", Unique call identifier
* "Asterisk-User-Field" User field set via SetCDRUserField