4. Настройка режимов поиска и типов логинов

Режим поиска представляет собой запись в конфигурации модуля следующего вида:

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. Стоимость исходящего по вызываемому номеру, входящего по номеру звонящего;

На вкладке Атрибуты можно указать передаваемые при авторизации данного типа логина атрибуты в следующем формате (пример, первый атрибут смысла не имеет, второй используется в 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-сервер.