Подсистема AAA позволяет проверять права на совершение вызовов абонентом, слежение за потреблением ресурсов абонентом.
Этапы работы подсистемы ААА
Подсистема AAA подключается при обработки вызова на нижеперечисленных этапах (каждым из этапом может отсутствовать)
RADIUS маршрутизация
На этапе маршрутизации вызова в правиле контексте маршрутизации можно указать, что необходимо выполнить внешнюю RADIUS маршрутизацию.
В этом случае на RADIUS сервер посылаются следующие параметры:
- текущие номера А, Б и их признаки;
- имя текущего контекста машрутизации;
- текущее значение параметра tag контекста машрутизации;
- имя домена;
- имя входящего интерфейса;
- номер попытки маршрутизации (начинается с 1, и в в случае перемаршрутизации увеличивается);
- причина release-а предыдущего вызова по SIP, ISUP, ACP (в случае перемаршрутизации).
В ответ RADIUS сервер может прислать команды на изменения номеров А, Б, их признаков, параметра tag
Authentication и Authorization
После маршрутизации, прежде чем отправить вызов на абонента Б, делается запрос в подсистему Authentication. На этом этапе проверяется, можно совершать вызов с номера А на номер Б, или нет.
Если Authentication подсистема вернула accept - вызов отправляется на абонента Б. Иначе, в зависимости от значения параметра if_radius_unavaliable, либо вызов идет на абонента Б, либо отбивается.
domain/<DOMAIN>/aaa/accounting/info if_radius_unavaliable
В параметре if_radius_unavaliable перечислены направления, на которые необходимо отправлять вызов даже если RADIUS сервер недоступен, не пропускает вызов (Например вызовы на номера спецслужб).
Access-Request сторону RADIUS содержит параметры, детально описанные в пункте 3.11 Формат пакетов RADIUS и значение атрибутов CISCO VSA.
Accounting
После ответа абонента Б, система отправляет Acct-Start Request с информацией о начале вызова и времени ответа на RADIUS сервер. Детально параметры запроса описаны в пункте 3.11 Формат пакетов RADIUS и значение атрибутов CISCO VSA.
В ответ RADIUS сервер может прислать максимальную продолжительность вызова (в секундах), запрет вызова (в этом случае система тут же отобьет вызов если он не разрешен в свойстве if_radius_unavaliable), таймаут посылки промежуточных Accounting сообщений Acct-Interim-Update.
Если абоненты А, Б воспользовались услугами ДВО, на RADIUS сервер посылаются Acct-Update Request с информацией об этом, в случае если параметр send_ss_notification = true
domain/<DOMAIN>/aaa/accounting/info send_ss_notification
По завершению вызова посылается сообщение Acct-Stop Request с информацией о абонентах А, Б, а так же о времени начала, ответа и завершения вызова.
В случае, если ответа на вызов не было Acct-Stop Request посылается только в том случае, если параметр unsuccessful_call_info = true.
domain/<DOMAIN>/aaa/accounting/info unsuccessful_call_info
Конфигурирование подсистемы AAA
Конфигурироавние подсистемы AAA состоит из трех этапов:
- Задание параметров подключения в RADIUS серверу(ам)
Детально команды по управлению RADIUS серверами описаны в пункте Команды настройки параметров соединения с RADIUS-сервером. - Конфигурирование подсистемы Authorization (access запросы)
Детально команды по управлению службой Authorization описаны в пункте Команды управления службой RADIUS AAA (Authorization). - Конфигурирование подсистемы Accounting (accounting запросы)
Детально команды по управлению службой Accounting описаны Команды управления службой RADIUS AAA (Accounting).
Пример команд CoCon-а по конфигурированию подсистемы AAA
% Создаем access сервер admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/radius/declare billing_access 192.168.23.250 access secret123 retry-count = 3, retry-timeout = 250 Radius server "billing_access" successfully declared. % Создаем accounting сервер admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/radius/declare billing_account 192.168.23.250 account secret123 retry-count = 3, retry-timeout = 250 Radius server "billing_account" successfully declared. admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/radius/info ┌───────────────┬─────────────────────────────┬──────────────────────┐ │ Name │ Host:Port │ Options │ ├───────────────┼─────────────────────────────┼──────────────────────┤ │billing_access │192.168.23.250:1812 (access) │secret = secret123 │ │ │ │retry_count = 3 │ │ │ │retry_timeout = 250 ms│ │ │ │idle_timeout = 0 ms │ │billing_account│192.168.23.250:1813 (account)│secret = secret123 │ │ │ │retry_count = 3 │ │ │ │retry_timeout = 250 ms│ │ │ │idle_timeout = 0 ms │ └───────────────┴─────────────────────────────┴──────────────────────┘ % выставляем RADIUS сервер billing_account в качестве access-сервера admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/access/set servers add billing_account Property "servers" successfully changed from: to 1: billing_account. % выставляем RADIUS сервер billing_account в качестве accounting-сервера admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/accounting/set servers add billing_account Property "servers" successfully changed from: to 1: billing_account. % включаем подсистему access admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/access/set enable true Property "enable" successfully changed from: false to true. % включаем подсистему accounting admin@[mycelium1@ryabkov]:/$ domain/test.domain/aaa/accounting/set enable true Property "enable" successfully changed from: false to true.
После этого при вызовах будут идти запросы на система AAA