Синтаксис файла конфигурации

Конфигурационный файл состоит из отдельных выражений. В положении символов и использовании знака пробел не существует каких либо ограничений. Текст, помеченный как коментарий, не интерпретируется как полезная информация.

1. Комментарии

Существует два типа комментариев - блочные и строковые. Блочный комментарий начинается с пары символов '/*' и заканчивается парой '*/'. Строчный комментарий начинается с '//' и заканчивается с текущей строкой.

Пример

/* Это комментарий */
// Это тоже комментарий

2. Выражения

Каждое выражение начинается зарезервированным словом, которое указывает на тип выражения. Существует два типа выражений: простые и сложные. Простые выражения осуществляют контроль над одним свойством.

Пример

login 'copah'

Сложные выражения похожи на простые. Они включают в себя одно или несколько простых выражений, заключенных в фигурные скобки. Сложные выражения имеют простую форму при которой простые составляющие разделяются запятой и следуют сразу после объявления сложного выражения.

Пример

user John is ras
{
  location LAN;
  login "John";
  alias "John";
}

user Anyone is ras
  group member Basic,
  login '(.+)' set UN to '\1',alias UN;

Порядок, в котором представляются выражения, имеет важное значение. Если существует более одного выражения определенного типа и все они контролируют одно и то же свойство, то только первое активное выражение будет интерпретировано как действительное. Некоторые выражения могут быть ограничены по действию во времени. Такие выражения имеют факультативное ключевое слово 'at' (См. подвыражение 'at' ).

Пример

group Group1 is ras
{
  proxy level none;
  registration validity 70;
}
user User1 is ras
{
  registration validity unlimited;
  group member Group1;
  proxy level signalling;
  connections 4 at 9:00-18:00;
  connections 2 at 13:00-14:00;
  connections 1;
}

В этом примере время регистрации пользователя не будет ограничено потому, что первое выражение соответствующего типа объявляет именно такое состояние. Ограничение регистрации, описаное в группе, не имеет силы. И наоборот, 'proxy level ' пользователя не имеет эффекта потому, что объявление группы аннулирует это объявление.

С 9:00 до 18:00 абонент будет иметь возможность произвести до 4-х соединений, и только одно соединиение все остальное время. Второе правило (connections) не имеет эффекта потому, что время его действия перекрывается первым выражением, имеющим более высокий приоритет.

3. Ключевые слова

Ключевые слова регистро-независимые. Администратор может использовать любой регистр в ключевых словах и даже смешивать их. Например, 'file' и 'File' - это одно и то же ключевое слово. Большинство ключевых слов используется для указания типа выражения и его факультативов. Эта тема будет рассмотрена позже. Другие ключевые слова используются для указания состояния свойств.

Пример

Boolean: true, false
Numeric: unlimited

4. Типы

string

Строка. Текст заключенный в апострофы или кавычки. Везде, где применимы переменные, параметр типа string может быть представлен переменной.

regexp

Строка, в которой допустимо использование регулярных выражений. Везде, где применимы переменные, параметр типа regexp может быть представлен переменной.

uint

Беззнаковое целое число или ключевое слово 'unlimited' для определения бесконечно большой характеристики.

bool

Булево значение. 'true' или 'false' ключевое слово.

identifier

Идентификатор. Текст начинающийся с буквы без пробелов. Идентификатор используется внутри конфигурационного файла для обозначения различных обектов, таких как: зоны, соединения, пользователи, переменные, и.т.д.

ip address

Числовой IP адрес или интернет имя заключенное в апострофы или кавычки.

Пример

123.48.132.56:12345
'canopus.aqua.comptek.ru:12345'

address range

Единичный IP адрес или два адреса фомирующие диапазон.

Пример

Запись Описание
19.38.12.45 единичный IP адрес.
19.38.12.45-19.38.12.49 диапазон.
19.38.12.45-49 упрощённый диапазон.

direction

Заерезервированое слово 'incoming' или 'outgoing' или пусто (если разрешено конструкцией) для обоих направлений.

side

Заерезервированое слово 'caller' или 'callee' или пусто (если разрешено конструкцией) для обоих сторон.

bandwidth

Полоса пропускания в битах в секунду. Должна быть кратной 100. Возможно использование модификаторов 'K', 'M', 'G' для записи полосы в килобитах, мегабитах и гигабитах соотвественно. Возможные варианты: 128K, 6.4K, 10M, 0.5M

time

Дата и время, записанные в форме: Mon 31/12/2000 23:59:59. В случае групповых выражений, любая из отдельных величин может быть заменена на символ '.'. Некоторые поля могут быть опущены для того, чтобы укоротить запись. Возможные варианты:

period

Два указателя времени, разделенных знаком '-', образующие период.

Пример

Выражение Описание
Mon-Wed с Понедельника по Среду каждую неделю.
12:00-17:59 с 12:00:00 по 17:59:59 каждый день.
1/./. 00:00-10/./. 23:59 с 00:00:00 1-го числа по 23:59:59 10-го каждого месяца.
./1/. 00:00-./2/. 23:59 с 1-го Января по 31 Февраля каждый год.

capability

Используется для указания типа потока полезных данных. Все типы делятся на три основных группы: 'audio', 'video' и 'data'. Объявление характеристики состоит из соотвестующего группе зарезервированного слова и следющего за ним имени типа данного класса.

Пример

audio g722
video h261
data t38-fax

Имя типа может быть заменено на зарезервированное слово 'any' для обозначения всех типов в данном классе.

Пример

audio any
data any

Всё объявление может быть выражено зарезервированным словом 'any' для обозначения всех возможноых типов во всех классах.

Пример

any

указатель типов аудио (audio capability)

alaw, alaw-56, ulaw, ulaw-56, g722, g722-56, g722-48, g7231, g728, g729, g729a, is11172, is13818, g729b, g729ab, g7231c, gsm, gsm-hr, gsm-er, g729ext

указатель типов видео (video capability)

h261, h262, h263, is11172

указатель типов данных (data capability)

t120, dsm-cc, user-data, t84, t434, h224, nlpid, dsvd-control, h222-partitioning, t30-fax, t140, t38-fax

capability list

Одна или больше характеристик разделённых пробелом.

Пример

supported capability
  audio alaw
  audio g7231
  audio g729
  data t38-fax;

5. Основные опции

interface <identifier> <ip address> { ... }

Определяет локальный интерфейс для дальнейшего использования. Интерфейс связан непосредственно с одним из адресов системы. Возможно определить несколько интерфейсов. На данный момент эта директива не имеет подвыражений. Первый объявленный интерфейс является интерфейсом по умолчанию.

facility <identifier> { ... }

Определяет канал обслуживания RAS и static абонентов. Это выражение создаёт RAS и call signal сокеты. Возможно опеределить несколько каналов обслуживая абонентов. См. раздел опции канала обслуживания абонентов с описанием выражений, которые могут быть включены в данное сложное выражение.

monitor { ... }

Выражение контроля опций монитора. Смотри раздел опции монитора.

log { ... }

Сложное выражение содержащее опции контроля за логом.

aaa { ... }

Содержит информацию о RADUS сервере и ААА опции.

zone <identifier> { ... }

Объявление информационной зоны. Обычно это сегмент сети, который несет поток данных и независим от других зон по его пропускной способности. Используется для ограничения телефонного трафика через определенный участок сети и других QoS. Гейткипер не допустит образования соединений через зону с исчерпанной пропуской способностью. См. раздел "Опции зоны и соединения" с описанием выражений, которые могут быть включены в данное сложное выражение.

link [identifier] between <identifier zone> and <identifier zone> { ... }

Это выражение имеет ту же функциональность, что и 'zone', с дополнительной возможностью соединить две зоны для повторения топологии реальной сети. См. раздел "Опции зоны и соединения" с описанием выражений, которые могут быть включены в данное сложное выражение.

group <identifier> [is <user type>] [implied] { ... }

Сложное выражение, используемое для объявления группы и ее поведения. Это выражение может влючать любые выражения из сложного выражения 'user' заданного типа. Параметр "user type" используется для определения типа группы и может принимать значения: 'ras', 'static', 'ras link', 'static link'. В случае если параметр "user type" опущен, группа может содержать только базовые выражения. См. раздел "Общие опции пользователя". Флаг 'implied' указывает на то, что к данной группе должны быть автоматически подключены все пользователи соотвествующего типа.

user <identifier> is <user type> { ... }

Это выражение объявляет конкретного пользователя, который может быть зарегистрирован в системе. Существует несколько типов пользователей, отличающихся протоколами работы с гейткипером, возможностями равно как и общим поведением. Любое выражение 'user' может содержать общие выражения пользователей, см. раздел "Общие опции пользователя".

user <identifier> is ras { ... }

Объявляет RAS пользователя который может зарегистрироваться в системе по RAS протоколу. См. также раздел "Опции RAS пользователя".

user <identifier> is static [ip address] { ... }

Статический пользователь. Регистрируется автоматически при старте системы с заданным "call signal" адресом. Предусмотрен для терминалов, которые не могут общаться с гейткипером посредством RAS протокола. Все RAS операции на данной учётной записи будут отклонены. Однако, запросы LRQ будут обслужены для данного типа пользователя. Статический пользователь автоматически производит себе директиву 'address' с данным адресом и флагом доступа установленным в 'true'. При опущенном параметре "ip address" звонки на/от данного абонента невозможны. Однако, для того чтобы разрешить пользователю производить звонки вы можете вставить директиву 'address'. См. раздел "Опции статического пользователя".

user <identifier> is ras link <ip address> { ... }

Объявляет пользователя противоположного, по своей функциональности, RAS пользователю. Данный пользователь действует как обычный RAS абонент. К примеру, он регистрируется на другом гейткипере так же, как какой либо другой RAS абонент. В основном используется для объединения гейткиперов. Звонку на этого пользователя будет предшествовать LRQ сообщение для обнаружения возможности терминации. Далее, для установления соединения, на удалённый гейткипер будут посланы все обычные абонентские сообщения (ARQ, BRQ, DRQ, ...). Параметр "ip address" используется для указания RAS адреса удалённого гейткипера. См. раздел "Опции RAS линк пользователя".

user <identifier> is static link <ip address> { ... }

Функционально противоположная версия статического пользователя. В основном используется для объединения гейткиперов. Звонку на этого пользователя будет предшествовать LRQ сообщение для обнаружения возможности терминации. Параметр "ip address" используется для указания RAS адреса удалённого гейткипера. См. раздел "Опции статик линк пользователя".

user <identifier> is slave of <identifier> { ... }

Объявляет подчинённого ползователя. Подчинённый пользователь не имеет собственной сингализационной функциональности, для того чтобы установить соединение он использует средства сингализации своего владельца. Используется для выделения пользователей скрытых за шлюзом. Подчинённый пользователь наследует все установки своего владельца, которые могут быть переопределены выражениями подчинённого пользователя. См. раздел "Опции slave пользователя".

6. Опции канала обслуживания абонентов (сложное выражение facility)

interface <identifier>

Определяет локальный интерфейс (адрес) используемый каналом обслуживания абонентов. В случае если не определён, будет использоваться интерфейс по умолчанию.

identifier <string>

Идентификатор гейткипера для данного канала обслуживания. Это имя может быть использовано абонентами в процессах обнаружения гейткипера и регистрации на нём в том случае, если абонент желает зарегистрироваться на гейткипере с определенным именем. В этом случае все запросы обнаружения и регистрации с неподходящим идентификатором гейткипера будут отвергнуты гейткипером. Однако, запросы, не содержащие идентификатор гейткипера, будут обработаны.

RAS port <uint>
default value: 1719

Номер порта, используемого для RAS коммуникации с гейткипером. Если выражение опущено, будет использован стандартный порт 1719.

call signal port <uint>
default value: 1720

Номер порта, который будет использован для сигнального уровня. Сигнальный порт используется гейткипером для вызова другими устройствами, не поддерживающими функции регистрации у гейткипера. Если это выражение опущено, будет использован стандартный порт 1720.

7. Опции монитора (сложное выражение monitor)

interface <identifier>

Определяет локальный интерфейс используемый монитором. В случае если не определён, будет использоваться интерфейс по умолчанию.

port <uint>
default value: 2040

Номер порта, используемого монитором.

identifier <string>

Идентификатор канала мониторинга. Пользователь будет видеть это значение в программе мониторинга как идентификатор контролируемого сервиса.

password <string>

Пароль для доступа к монитору. Примечание: Так же, пароль используется для шифрования конфигурации во время передачи по сети с использованием монитор протокола. В случае, если пароль не установлен — шифрование производиться не будет.

address <address range> [bool]
address <bool>

Определяет право соединения с сервисом монитора с определённого адреса или набора адресов. Опущенный адрес подразумевает все возможные адреса. Опущенный параметр "bool" подразумевает 'true'.

8. Опции лога (сложное выражение log)

file <string>

Путь к файлу журнала, который будет содержать копию консольного вывода. Идентично ключу командной строки 'consolefile'.

ras messages [where list] <bool>

Контролирует печать RAS сообщений.

q931 messages [where list] <bool>

Контролирует печать Q.931 сообщений.

h245 messages [where list] <bool>

Контролирует печать H.245 сообщений.

h450 messages [where list] <bool>

Контролирует печать H.450x сообщений.

radius messages [where list] <bool>

Контролирует печать RADIUS сообщений.

messages dump <bool>

Печать дампа всех входящих сообщений.

registrations <bool>

Печать регистраций.

connection status <bool>

Печать информации о этапах развития соединения.

chosen route <bool>

Печать выбраного маршрута при разрешении строки набора.

available bandwidth <bool>

Печать полосы доступной для звонка.

bandwidth changes <bool>

Печать всех изменений используемой полосы.

9. Опции ААА (сложное выражение AAA)

file <string>

Путь к файлу, который будет содержать информацию о соединениях, времени их начала и продолжительности (CDR файл). Если путь опущен, то файл будет создан в каталоге с файлом конфигурации. CDR файл не будет создан если опущенна опция целиком.

interface <identifier>

Определяет локальный интерфейс используемый для RADIUS операций. В случае, если не определён будет использоваться интерфейс по умолчанию.

identifier <string>

Идентификатор сервера доступа (NAS identifier) используемый для RADIUS операций.

address <ip address>

Адрес RADIUS сервера.

authentication port <uint>
default value: 1812

Порт идентификации. Будет использоваться стандартный (1812) если опция опущена.

accounting port <uint>
default value: 1813

Порт учета. Будет использоваться стандартный (1813) если опция опущена.

password <string>

Секрет RADIUS сервера.

log failed calls <bool>
default value: false

Регистрировать неудачные звонки в CDR файле и на RADIUS сервере.

time zone name <string>
default value: "UTC"

Определяет имя временной зоны используемой в RADIUS пакетах.

time zone offset <offset>
default value: GMT

Смещение временной зоны для AAA записей. Допустимые значения: GMT, local.

10. Опции зоны и соединения (сложные выражения zone & link)

bandwidth <bandwidth>
default value: unlimited

Суммарная пропускная способность зоны. Гейткипер не допустит образования соединений через зону с исчерпанной пропуской способностью.

connections <uint>
default value: unlimited

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

10. Опции общие для всех пользователей

set <identifier variable> to <string>

Устанавливает данной переменной строковое зачение. Как и с остальными выражениями, только первое выражение 'set' сработет над определённой переменной.

alias <regexp> [bool] [cost <uint>] [translate to <regexp>] [set list] [at]
alias <bool> [cost <uint>] [set list] [at]

Определяет набор действительных псевдонимов, по которым может быть вызван абонент. Параметр "bool" указывает на принадлежность данного псевдонима пользователю. Если паметр "bool" установлен в значение 'false', данный псевдоним исключается из набора действительных.

Пример

alias '81234' false;
alias '8\d{5}' true;

В данном примере абонет будет доступен по всем пятизначным номерам начинающимся с цифры 8 кроме номера 81234. Опущенный параметр "bool" подразумевает состояние 'true'. Опущенный параметр "regexp string" подразумевает все возможные псевдонимы.

Подвыражение 'translate to' используется для трансляции принятой строки набора при представлении её абоненту, подобно тому как это делается в директиве 'translate alias'.

Подвыражение 'cost' позволяет установить цену маршрута на индивидуальный псевдоним. В случае если подвыражение опущено, будет использоваться цена маршрута на абонента.

make [direction] [side] alias <regexp> <set list> [at]

Побудить систему создать переменную по псевдониму звонка. Пропущенные direction и/или side параметры подразумевают все псевдонимы всех типов в опущенном классе.

translate [direction] [side] alias <regexp> to <regexp> [at]

Трансляция псевдонима для дальнейшей обработки и представления. Параметры "direction" и "side" соотвественно контролируют трансляцию "входящих/исходящих" (incoming/outgoing) псевдонимов и псевдонимов "вызывающего/вызываемого" (caller/callee). "Входящий" (incoming) псевдоним будет странслирован только после того как он совпадёт с объявленным псевдонимом абонента. Псевдоним модифицирует только первая совпавшая трансляция. Параметры "direction" и "side" могу быть опущены для того чтобы произвести трансляцию всех типов псевдонимов в опущенном классе. К примеру, если псевдонимы вызывающей и вызываемой стороны относятся к одному плану нумерации, для того чтобы согласоваться с внешним планом нумерации Вы можете записать следующие правила транляции для гейтвея:

translate incoming alias '(\d{3})' to '+73432451\1';
translate outgoing alias '+73432451(\d{3})' to '\1';

Так же, очень полезно установить исходящий псевдоним конкретному единичному пользователю:

translate outgoing caller alias '.*' to '212';

в то время как его действительный псевдоним сконфигурирован как

alias '212';

proxy level <level>
default value: signalling

Устанавливает указанный уровень прокси. Допустимые значения: 'none', 'signalling' и 'full'.

В случае если абоненты учавствующие в соединении имеют различные уровни проксирования, будет принят старший. Используя эту особенность вы можете установить уровень проксирования 'signalling' для абонентов внутри сети, в то время как внешние гейтвеи используют уровень 'full' для того, чтобы иметь возможность обойти файрвол.

hunt level <level>
default value: neutral

Устанавливает уровень хантинга, если абонент является вызывающей стороной. Допустимые значения: 'none', 'neutral', 'soft', 'hard'.

Заметьте, что в любом режиме абоненты всё же имеют возможноть открыть каналы данных используя H.245 туннелинг, тем самым делая дальнейший хантинг невозможным.

fast start <bool>
default value: true

Контролирует "fast connect" процедуру для данного абонента. Некоторые абонентские устройства (например Cisco ATA186) могут быть приведены в нерабочее состояние "fast start" последовательностью, вы можете обойти это запретив "fast connect" процедуру для таких абонентов.

h245 tunneling <bool>
default value: true

Контролирует H.245 туннелинг для данного абонента.

cost <uint> [at]
default value: unlimited

Стоимость маршрута. Если существует более одного абонента с одним и тем же псевдонимом, для звонка будет выбран наименее дорогой. Это выражение может содержать суб-выражение 'at'.

connections <uint> [at]
default value: unlimited

Объявляет максимальное количество соединений, одновременно открытых к пользователю. Это значение используется в расчете загрузки абонента в процедуре уравновешивания загрузки (load balancing). Если существует более одного абонента с одним и тем же псевдонимом и ценой, будет выбран наименее нагруженный. В любом случае гейткипер не допустит большего количества соединений с пользователем, чем указано в этой команде.

location <identifier zone>

Зона, котрой принадлежит абонент. Используется для QoS и ограничения трафика. Если выражение не определено, абонент находится вне какой-либо зоны.

bandwidth <bandwidth>
default value: 128k

Двунаправленная, кратная 100, полоса пропускания для статических абонентов. Например, если ваш абонент использует 64 kbit aLaw кодек для обоих направлений, то полоса должна быть записана как 128k.

dial [identifier] <bool> [at]

Определяет право пользователя вызывать другого пользователя или пользователя из группы. Опущенный идентификатор (identifier) подразумевает всех пользователей в системе. По умолчанию пользователь имеет право вызывать любого абонента в системе. Если же пользователь или его группа содержат одно или больше выражений 'dial' вызовы к пользователям, не объявленным данными выражениями, будут отвергнуты. Вместо имени пользователя вы можете использовать зарезервированное слово 'self'.

address <address range> [bool]
address <bool>

Определяет право пользователя регистрироваться в систему с определённого адреса или диапазона адресов. Опущенный диапазон адресов подразумевает все возможноые значения адресов. Опущенное булево значение подразумевает 'true'. Однако хотя бы один параметр должен присутствовать. По умолчанию пользователь имеет право регистрироваться с любого адреса, что эквивалентно единственному выражению 'address true'. Если же пользователь или его группа содержат одно или больше выражений 'address', попытки регистрации со всех остальных адресов будут отвергнуты. В случае если абонент статический, выражения 'address' определяют набор допустимых адресов для прямого (call signal) вызова гейткипера.

max [direction] ringback duration <uint seconds>
default value: unlimited

Лимит (в сеундах) времени ожидания ответа. Будет взято наименьшее из двух (incoming для терминирующей стороны и outgoing для вызывающей) значений.

max [direction] connection duration <uint seconds>
default value: unlimited

Лимит (в секундах) маскимальной продолжительности соединения. Будет взято наименьшее из двух (incoming для терминирующей стороны и outgoing для вызывающей) значений.

radius authentication <mode>
default value: none

Устанавливает режим идентификации на RADIUS сервере. Допустимые значения: 'none', 'login', 'caller', 'callee', 'call' и 'full'. Опции могут быть объединены знаком вертикальная черта (|).

Идентификационный запрос на регистрацию имеет поле "Service-Type" установленое в "Login". Идентификационный запрос на установление соединения имеет поле "Service-Type" установленое в "Call Check".

radius accounting <mode>
default value: none

Устанавливает режим учета на RADIUS сервере. Допустимые значения: 'none', 'login', 'caller', 'callee', 'call' и 'full'. Опции могут быть объединены знаком вертикальная черта (|).

Запрос на учет регистрации имеет поле "Service-Type" установленое в "Login". Запрос на учет соединения не имеет поля "Service-Type".

radius name <string>
default value: UserName

Установить имя пользователя для RADIUS операций. Так же можно использовать встроенные переменные UserName H235Name которые содержат, соотвественно, имя пользователя из конфигурации и имя пользователя из предоставленной H.235 информации.

radius password <string>

Установить пароль пользователя для RADIUS операций. Пароль нулевой длинны подразумевает, что пароль не используется. Это значение по умолчанию. В случае если использовано выражение 'radius password H235Password', гейткипер извлечёт пароль из доставленного абонентом информационного уровня H.235. Этот режим поддерживает только Cisco Access Token.

h235 authentication <bool>

Включить/выключить H.235 авторизацию RAS и Q.931 сообщений. Поддерживаемые методы: CAT, Password with hashing (MD5).

h235 name <string>
default value: UserName

Установить имя которое должен представить пользователь для авторизации сообщений.

h235 password <string>

Установить пароль который должен представить пользователь для авторизации сообщений.

display <string>
default value: UserDisplay

Присваивает заданное значение полю Q.931 display. Оригинальное значение поля display помещается в переменную UserDisplay автоматически. Вы всегда можете восстановить оригиальный режим дав команду 'display UserDisplay'.

connection dupe <bool>
default value: false

Разрешить или запретить пользователю создавать соединения с повторяющимся идентификатором соединения. Обычно эта функция должна быть запрещена. Однако, некоторые абоненты, такие как ремаршрутизирующие автоответчики могут открыть соединение с изменённым адресом номером но с тем же идентификатором соединения. Обычно, такой звонок будет запрещён детектором петель, таким образом, в данном случае, вы должны включить функцию 'connection dupe' для данного абонента. Используйте эту возможность с особой осторожностью, абонент не должен выступать с одной стороны (например, со стороны вызывающего) дважды в разных соединениях с идентичным идентификатором соединения. Это вызвано тем, что у гейткипера не будет возможности различать такие соединения.

supported capability <capability list>
default value: any

Список поддерживаемых форматов полезных данных. Гейткипер не допустит соединения двух абонентов не имеющих пересечений этих списков.

unsupported capability <bool>
default falue: true

В случае если выставлено в 'false', побуждает гейткипер удалять неподдерживаемые форматы данных из передаваемых возможножностей терминала (terminal capability set) и элементов быстрого старта (fast start).

capability sort order <capability list>
default value: any

Побуждает гейткипер сортировать передаваемые списки поддерживаемых форматов полезных данных в указанном порядке. Оба участника соединения будут иметь одинаковые списки сортировки. Чей список будет выбран для сортировки определяется выражением 'capability sort preference'.

capability sort preference <uint>
default value: unlimited

Это значение используется для определения списка сортировки (вызывающего ли вызываемого абонента) который будет использоваться для сортировки поддерживаемых форматов во время соединения. Меньшее значение означает большее предпочтение. В случае если оба значения одинаковы, будет взят список сортировки вызывающего абонента. Однако, если список сортировки вызывающего абонента содержит едиственное значение 'any', для сортировки будет выбран список вызываемого абонента.

secure rtp <bool>
default value: true

В случае если выставлено в 'true', соединяет все RTP сокеты с соотвествующими адресами назначения, делая невозможным приём UDP пакета с неизвесного адреса. В этом режиме гейткипер имеет лучшую производительнось прокси. Некоторые терминалы шлют RTP пакеты с адресов не указанных в сообщении OpenLogicalChannel. Тогда, с включенной опцией 'secure rtp', такие абоненты не могут установить исходящий поток полезных данных. Т.е. другой участник соединения не будет слышать этот терминал. В этом случае, для таких абонентов, требуется отключить опцию 'secure rtp'.

12. Опции пользователя RAS

login <regexp> [bool] [set list]
login <bool> [set list]

Псевдоним (alias) с которым будет регистрироваться абонент. Опущенный пареметр "regexp" подразумевает все возможные псевдонимы. Опущенный параметр "bool" подразумевает 'true'. Используя подвыражение 'set' вы можете извлечь различные части псевдонима.

Пример

login 'user(.+)goinin' set UserAlias to '\1';
alias UserAlias;

Пользователь, регистрирующийся с псевдонимом 'userJohngoinin' будет зарегистрирован с установками текущего пользователя и будет доступен по псевдониму 'John'.

make login <regexp> <set list>

Побудить систему создать переменную по какому-либо псевдониму. Заметьте, что это выражение не влияет на процесс регистрации, оно включается в работу только после того как псевдоним прошёл выражение 'login'.

Пример

group everyone make login '.*' set UserAlias to '\0',alias UserAlias;
user User1 login '201';
user User2 login '202';

В этом примере User1 будет зарегистрирован с только псевдонимом "201". И он будет иметь действительный псевдоним "201".

proxy level choice <bool>
default value: false

Управляет возможностю изменения абонетом установленного уровня проксирования. Стандарт H.323 предполагает, что абонент имеет возможность выбрать "direct" или "gatekeeper routed" режим. Следовательно с включённой опцией 'proxy level choice' абонент может переключиться с установленного уровня проксирования 'signalling' или 'full' в 'none', или остаться в оригинальном режиме. В случае если абонет сконфигкрирован с уровнем проксирования 'none', он имеет возможность перключиться в 'signalling' или остаться в 'none' режиме.

registration validity <uint seconds>
default value: unlimited

Ограничить действительность регистрации абонента до "uint" секунд. Абонент должен поддерживать возможность перерегистрации для того, чтобы поддерживать состояние активности. Если абонент не перерегистрируется в указанный промежуток времени, он будет отсоединён от системы. Используйте ключевое слово 'unlimited' для того, чтобы отменить ранее объявленный (например, в группе пользователя) период.

connection validity <uint seconds>
default value: 60

Ограничить дейтвительность соединения до "uint" секунд. Абонент должен поддерживать активное состояние соединения переодически послыая IRR сообщение. IRR период устанавливается гейткипером и он в три раза меньше чем параметр 'connection validity'. Гейткипер не будет запрашивать у абонента IRR сообщений если 'connection validity' установлено в 'unlimited'. Эта возможность может помочь подключить абонентов не рассылающих IRR сообщения во время звонка, несмотря на то что эта функция объявлена обязательной в H.323 стандарте. Настоятельно не рекомендуется использовать 'connection validity unlimited;' с 'proxy level none;' потому, что в этом случае для гейткипера не существует надежного способа узнать что соединение было прервано. Это может вызвать недостоверность данных биллинга и "повисшие" соединения.

alternate gatekeeper <ip address> [string] [gatekeeper ...]
alternate gatekeeper none

Объявляет список альтернативных гейткиперов для пользователя. Этот список будет предоставлен абоненту в случае если он поддреживает процедуры альтернативного гейткипера обозначая это включением поля SupportsAltGK в RRQ сообщение. Выражение 'alternate gatekeeper none' выключает эту функцию. Это значение по умолчанию.

use location <bool>
dafault value: false

В случае если эта опция включена, гейткипер не будет немедленно терминировать соединение на данного пользователя. Звонку на этого пользователя будет предшествовать LRQ сообщение для обнаружения возможности терминации. В массе, терминалы не поддерживают эту (LRQ к абоненту) функцию. Однако, некоторые шлюзы или гейткиперы с достаточно большим количеством обслуживаемых направлений, могут поддерживать эту полезную опцию. Эта версия гейткипера поддерживает эту функцию на 'ras link' и 'static link' пользователях.

13. Опции пользователя static

facility <identifier>

Канал обслуживания используемый для установления соединений к абоненту и обработки LRQ сообщений.

14. Опции пользователя RAS link

interface <identifier>

Локальный интерфейс который гейткипер должен использовать для данного пользователя.

ras port <uint>
default value: 1719

Номер локального порта, который будет использоваться для RAS коммуникаций. Если не определён, будет использоваться стандартный порт (1719).

call signal port <uint>
default value: 1720

Номер локального порта, который будет использован для канальной сигнализации.

identifier <string>

Идентификатор удалённого гейткипера. Гейткипер будет использовать это значение во всех запросах, где это возможно.

register alias <string> [alias ...]
register alias none

Определяет список псевдонимов которые требуется зарегистрировть на удалённом гейткипере.

registration period <uint seconds>
default value: unlimited

Побуждает гейткипер повторять геристрацю через заднный промежуток времени. Эта функция используется для подтверждения состяния активности.

alternate gatekeeper <bool>
default value: false

Разрешает производить переключение на альтернативные гейткиперы для данного пользователя. В случае если эта опция включена, гейткипер установит флаг SupportsAltGK, проанализирует список альтернативных гейткиперов предоставленный удалённой стороной и активизирует процедуру переключения.

15. Опции пользователя static link

interface <identifier>

Локальный интерфейс который гейткипер должен использовать для данного пользователя.

ras port <uint>
default value: 1719

Номер локального порта, который будет использоваться для RAS коммуникаций. Если не определён, будет использоваться стандартный порт (1719).

call signal port <uint>
default value: 1720

Номер локального порта, который будет использован для канальной сигнализации.

identifier <string>

Идентификатор удалённого гейткипера. Гейткипер будет использовать это значение во всех запросах, где это возможно.

16. Опции пользователя slave

serve alias <regexp> [bool]
serve alias <bool>

В случае если звонок инициирован мастер абонентом, при помощи этого выражения можно установить одного из его подчинённых в качестве вызывающего. По представленным псевдонимам вызывающего абонента будет произведён поиск и если условие 'serve alias' будет выполнено, данный абонент будет подставлен в качестве вызывающего. Опущенный параметр "regexp" означает все возможные псевдонимы.

17. Подвыражения

at <period>

Устанавливает период действительности выражения.

set <identifier variable> to <string>

Присваивает стороковое значение данной переменной.

Пример

set UserLogin to 'user(.+)';
login UserLogin set UserAlias to '\1';
alias UserAlias;

set <identifier variable> add <string>

Добавляет строку к указанной переменной. Если переменная уже содержит строку не нулевой длинны то строка будет предварена знаком вертикальная черта (|). Эта функция создана специально для обработки нескольких псевдонимов в процессе регистрации абонента. Если в строке, которую содержит переменная, есть скобки, то подстрока будет вставлена перед первой закрывающей скобкой.

Пример

set UserAlias to 'common|(2())';
login 'gw5(\d{3})' set UserAlias add '\1';
alias UserAlias;

В этом примере, пользователь представленный псевдонимами "gw5100" и "gw5101", будет иметь результирующий псевдоним "common|(2(100|101))".

set list

Список подвыражений 'set ... to' и 'set ... add'.

Пример

alias '(\d{3})(\d{3}).*' set Account to '\1' set PIN to '\2';

where direction <direction>

Устанавливает действидельность выражения по отношению к направлению.

where address <address range>

Устанавливает действидельность выражения по отношению к адресу.

where [side] alias <regexp>

Устанавливает действидельность выражения по отношению к псевдониму.

where list

Список подвыражений 'where direction ...', 'where address ...' и 'where alias ...'.

Пример

log q931 messages
  where address 212.11.15.6
  where caller alias '124366';