Настройка режимов поиска и типов логинов
Режим поиска представляет собой запись в конфигурации модуля следующего вида:
findmode.<уникальный код>.title=<Название режима поиска>
findmode.<уникальный код>.value=<Название атрибута>=<
LOGIN
|
ALIAS
>
Порядок использования режимов поиска задаётся переменной find.order в конфигурации модуля. Например:
# режимы поиска логинов
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
#
find.order=
0
,
1
,
2
означает, что первая попытка поиска идёт среди логинов, где логин равен атрибуту User-Name. Это, например, карточные пользователи. Далее идёт поиск по User-Name=ALIAS и Calling-Station-Id=ALIAS.
Режим поиска User-Name=LOGIN должен существовать всегда с кодом 0 для возможности использования карточной платформы.
Параметр find.order может быть переопределён в конфигурации NASа. Например, если у вас выделен отдельный шлюз под карточную платформу, на нем нет необходимости осуществлять поиск по телефону или текстовому логину.
Кроме того, возможно жёсткое задание режима поиска для конкретного запроса в скрипте предобработки RADIUS-запроса. Например, данный скрипт в случае прихода атрибутов User-Name и User-Password в запросе задаёт жёстко режим поиска = 0, т.е. User-Name=LOGIN.
При этом в конфигурации NASа может быть указан find.order, задающий поиск по номеру звонящего.
import
java.sql.*;
import
bitel.billing.common.*;
import
bitel.billing.server.radius.*;
userName = request.getStringAttribute( RadiusStandartAttributes.User_Name );
userPassword = request.getStringAttribute( RadiusStandartAttributes.User_Password );
if
( userName !=
null
&& userPassword !=
null
)
{
request.setOption(
"find.mode"
,
new
Integer(
0
) );
}
Тип Voip-логина определяет поведение логина при его поиске и тарификации его сессий. Типы логинов введены, начиная с версии 4.0 и призваны упростить процесс заведения логинов Voip.
В типе указываются режимы поиска для различных видов запросов: авторизационных (входящих и исходящих) и аккаунтинга (входящего и исходящего).
При последовательном поиске по указанным в find.order режимам RADIUS определяет типы логинов, в которых указан данный режим поиска при данном типе запроса. Если список типов пуст поиск не производится.
Рассмотрим иные параметры типа логинов кроме режимов поиска:
1. Режимы тарификации - какой номер использовать при поиске цены входящего и исходящего звонков;
Для операторских логинов возможна тарификация входящих звонков по вызываемому номеру. При этом в тарифном плане оператора стоимость входящих звонков соответствует стоимости терминации данного префикса данным оператором.
Получив отчёт входящих звонков оператора в отчёте договора, можно получить сумму, которую вы должны данному оператору за терминацию им звонков.
2. Проверять пароль - галочка отсутствует у типов логинов с авторизацией по номеру звонящего;
3. Обсчёт баланса (при каждом звонке/никогда) - опция никогда не стоит у операторских логинов для снижения нагрузки на радиус. При этом после каждого звонка не обновляется наработка в балансе пользователя. Для обычных логинов стоит режим обсчёта после каждого звонка.
4. Использовать DC фильтр - обнулять длительность звонка при h323-dicsonnet-couse, попадающим в перечень из параметра voip.ignore.dc. Данная опция обычно снимается для операторских логинов;
5. Игнорировать одиночные ACCOUNTING STOP - данная опция не учитывает STOP-пакеты, пришедшие без предварительной авторизации, и может быть использована для исключения дублирования звонков клиентов в случае их прохождения через несколько NASов.
В системе присутствует тип логина По умолчанию, устанавливаемый карточным логинам. В нем установлен следующий набор опций:
1. Все режимы поиска User-Name=LOGIN (0);
2. Проверка пароля;
3. Использование DC фильтра;
4. Обсчёт баланса при каждом звонке;
5. Стоимость исходящего по вызываемому номеру, входящего по номеру звонящего;
6. Игнорирование одиночных ACCOUNTING STOP-пакетов.
При необходимости возможно переопределить значение флага "Игнорировать одиночные ACCOUNTING STOP-пакеты" путем изменения значения опции default.login.ignore.stop, которая может принимать значения true (установлено по умолчанию) или false. Это может потребоваться, например, в случае, если в пакетах авторизации и аккаунтинга атрибуты h323-conf-id отличаются друг от друга и биллинг не может создать сессию по одиночному stop-пакету.
На вкладке Атрибуты можно указать передаваемые при авторизации данного типа логина атрибуты в следующем формате (пример, первый атрибут смысла не имеет, второй используется в MVTS для SIP-аккаунтов):
Cisco-AVPair=lcp
:interface
-config=ip unnumbered Loopback135
cisco-avpair=xpgk-ep-number=${
ALIAS
}
В атрибутах могут быть использованы следующие макро-подстановки:
${ALIAS} - первый алиас voip логина;
${BALANCE_MODE} - 0 - кредитовый режим, 1 - дебетовый;
${MIN_COST} - стоимость минуты звонка, десятичный разделитель - точка.
Если значение подстановки не может быть вычислено, атрибут не будет передан. В дополнение к определённым атрибутам обязательно передаются h323-credit-amount (остаток на счёте), h323-credit-time (максимальная длительность звонка по направлению в секундах) и h323-return-code (код ошибки, либо 0 при успешной авторизации).
Для типа логина По умолчанию передаваемые атрибуты указываются в конфигурации модуля в следующем виде:
default.login.attributes=<
ATTR_NAME_1
>=<
ATTR_VALUE_1
>;<
ATTR_NAME_2
>=<
ATTR_VALUE_2
>
Например:
default.login.attributes=h323-billing-model=${
BALANCE_MODE
};h323-ivr-
in
=tariff:${
MIN_COST
}
В данном параметре можно использовать те же макроподстановки, что и в атрибутах для типов логинов.
При каждой модификации типов логинов, конфигурации модуля или NASов необходимо перегружать RADIUS-сервер.