Конфигурационный файл состоит из отдельных выражений. В положении символов и использовании знака пробел не существует каких либо ограничений. Текст, помеченный как коментарий, не интерпретируется как полезная информация.
Существует два типа комментариев - блочные и строковые. Блочный комментарий начинается с пары символов '/*' и заканчивается парой '*/'. Строчный комментарий начинается с '//' и заканчивается с текущей строкой.
Пример
/* Это комментарий */ // Это тоже комментарий
Каждое выражение начинается зарезервированным словом, которое указывает на тип выражения. Существует два типа выражений: простые и сложные. Простые выражения осуществляют контроль над одним свойством.
Пример
login 'copah';
Сложные выражения похожи на простые. Они включают в себя одно или несколько простых выражений, заключенных в фигурные скобки. Сложные выражения имеют простую форму при которой простые составляющие разделяются запятой и следуют сразу после объявления сложного выражения.
Пример
user John { location LAN; login "John"; alias "John"; } user Anyone group member Basic,login '(.+)' set UN to '\1',alias UN;
Порядок, в котором представляются выражения, имеет важное значение. Если существует более одного выражения определенного типа и все они контролируют одно и то же свойство, то только первое активное выражение будет интерпретировано как действительное. Некоторые выражения могут быть ограничены по действию во времени. Такие выражения имеют факультативное ключевое слово 'at' (См. подвыражение 'at' ).
Пример
group Group1 { proxy level none; registration validity 70; } user User1 { 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) не имеет эффекта потому, что время его действия перекрывается первым выражением, имеющим более высокий приоритет.
Ключевые слова регистро-независимые. Администратор может использовать любой регистр в ключевых словах и даже смешивать их. Например, 'file' и 'File' - это одно и то же ключевое слово. Большинство ключевых слов используется для указания типа выражения и его факультативов. Эта тема будет рассмотрена позже. Другие ключевые слова используются для указания состояния свойств.
Пример
Boolean: true, false
Numeric: unlimited
Строка. Текст заключенный в апострофы или кавычки. Везде, где применимы переменные, параметр типа string может быть представлен переменной.
Строка, в которой допустимо использование регулярных выражений. Везде, где применимы переменные, параметр типа regexp может быть представлен переменной.
Беззнаковое целое число или ключевое слово 'unlimited' для определения бесконечно большой характеристики.
Булево значение. 'true' или 'false' ключевое слово.
Идентификатор. Текст начинающийся с буквы без пробелов. Идентификатор используется внутри конфигурационного файла для обозначения различных обектов, таких как: зоны, соединения, пользователи, переменные, и.т.д.
Числовой IP адрес или интернет имя заключенное в апострофы или кавычки.
Пример
123.48.132.56:12345 'canopus.aqua.comptek.ru:12345'
Единичный IP адрес или два адреса фомирующие диапазон.
Пример
Запись | Описание |
---|---|
19.38.12.45 | единичный IP адрес. |
19.38.12.45-19.38.12.49 | диапазон. |
19.38.12.45-49 | упрощённый диапазон. |
Заерезервированое слово 'incoming' или 'outgoing' или пусто (если разрешено конструкцией) для обоих направлений.
Заерезервированое слово 'caller' или 'callee' или пусто (если разрешено конструкцией) для обоих сторон.
Полоса пропускания в битах в секунду. Должна быть кратной 100. Возможно использование модификаторов 'K', 'M', 'G' для записи полосы в килобитах, мегабитах и гигабитах соотвественно. Возможные варианты: 128K, 6.4K, 10M, 0.5M
Дата и время, записанные в форме: Mon 31/12/2000 23:59:59. В случае групповых выражений, любая из отдельных величин может быть заменена на символ '.'. Некоторые поля могут быть опущены для того, чтобы укоротить запись. Возможные варианты:
Два указателя времени, разделенных знаком '-', образующие период.
Example
Notation | Description |
---|---|
Mon-Wed | from Monday to Wednesday every week. |
12:00-17:59 | from 12:00:00 to 17:59:59 every day. |
1/./. 00:00-10/./. 23:59 | from 1st day 00:00:00 to 10th day 23:59:59 every month. |
./1/. 00:00-./2/. 23:59 | from 1 Jan to 31 Feb every year. |
Сложное выражение содержащее основные опции системы.
Выражение контроля опций монитора. Смотри раздел опции монитора.
Сложное выражение содержащее опции контроля за логом.
Содержит информацию о RADUS сервере и ААА опции.
Объявление информационной зоны. Обычно это сегмент сети, который несет поток данных и независим от других зон по его пропускной способности. Используется для ограничения телефонного трафика через определенный участок сети и других QoS. Гейткипер не допустит образования соединений через зону с исчерпанной пропуской способностью. См. раздел "Опции зоны и соединения" с описанием выражений, которые могут быть включены в данное сложное выражение.
Это выражение имеет ту же функциональность, что и 'zone', с дополнительной возможностью соединить две зоны для повторения топологии реальной сети. См. раздел "Опции зоны и соединения" с описанием выражений, которые могут быть включены в данное сложное выражение.
Сложное выражение, используемое для объявления группы и ее поведения. Это выражение может влючать любые выражения из сложных выражений 'user' и 'gatekeeper'. См. разделы "Опции пользователя" и "Опции гейткипера". Вы можете создать группу с зарезервированным именем 'everyone', пользователи объявленные позже атоматически становятся членами этой группы.
Это выражение имеет почти тот же смысл, что и 'group', за одним исключением. Оно объявляет конкретного пользователя, который может быть зарегистрирован в системе. См. раздел "Опции пользователя" с описанием выражений, которые могут быть включены в данное сложное выражение.
Служит для объявления пользозователя с раширенными возможностями (типа гейткипер). Это выражение может содержать простые выражения пользователя и группы, а так же добавочные, собственные выражения. Основное отличие между выражениями 'user' и 'gatekeeper' состоит в том, что гейткипер не будет сразу производить звонок при совпадении номера.
Звонку будет предшествовать сообщение Location Request (LRQ) к удаленному гейткиперу (или гейткиперам, если более одного подошли под метрику маршрута) для того, чтобы обнаружить конкретного вызываемого абонента. Как абонент, удаленный гейткипер должен зарегистрироваться для того, чтобы показать свое активное состояние. В случае, если удаленный гейткипер не поддерживает регистрацию, следует использовать выражение 'static'. Для детальной информации по специфическим выражениям См. раздел "Опции гейткипера".
Идентификатор гейткипера. Используется как основной индентификационный элемент гейткипера. Это имя может быть использовано абонентами в процессах обнаружения гейткипера и регистрации на нём в том случае, если абонент желает зарегистрироваться на гейткипере с определенным именем. В этом случае все запросы обнаружения и регистрации с неподходящим идентификатором гейткипера будут отвергнуты гейткипером. Однако, запросы, не содержащие идентификатор гейткипера, будут обработаны.
Выходной интерфейс, через который должен работать гейткипер. Важно правильно установить этот параметр на машинах, имеющих более одного интерфейса для того, чтобы гейткипер мог использовать правильный выход в сеть H.323. Это правило не актуально на машинах с едиственным интерфейсом. Однако, если хост, на котором запущен гейткипер, имеет несколько интерфейсов (например, выполняет роль маршрутизатора), то, в случае, если это выражение будет опущено, в качестве адреса гейткипером будет выбран адрес одного из интерфейсов по случайному закону, что может привести к проблемам.
Номер порта, используемого для RAS коммуникации с гейткипером. Если выражение опущено, будет использован стандартный порт 1719.
Номер порта, который будет использован для сигнального уровня. Сигнальный порт используется гейткипером для вызова другими устройствами, не поддерживающими функции регистрации у гейткипера. Если это выражение опущено, будет использован стандартный порт 1720.
Номер порта, используемого монитором.
Пароль для доступа к монитору. Примечание: Этот пароль используется для шифрования конфигурации во время передачи по сети с использованием монитор протокола. В случае, если пароль не установлен — шифрование производиться не будет.
Определяет право соединения с сервисом монитора с определённого адреса или набора адресов. Опущенный адрес подразумевает все возможные адреса. Опущенный параметр "bool" подразумевает 'true'.
Путь к файлу журнала, который будет содержать копию консольного вывода. Идентично ключу командной строки 'consolefile'.
Котролирует печать RAS сообщений. В соответствии с использованым направлением входящие или исходящие сообщения будут печататься в лог. Опция контролирует все RAS сообщения если направление отсутствует.
Контролирует печать Q.931 сообщений.
Контролирует печать H.245 сообщений.
Контролирует печать RADIUS сообщений.
Печать дампа всех входящих сообщений.
Печать регистраций.
Печать информации о этапах развития соединения.
Печать выбраного маршрута при разрешении строки набора.
Печать полосы доступной для звонка.
Печать всех изменений используемой полосы.
Путь к файлу, который будет содержать информацию о соединениях, времени их начала и продолжительности (CDR файл). Если путь опущен, то файл будет создан в каталоге с файлом конфигурации. CDR файл не будет создан если опущенна опция целиком.
Адрес RADIUS сервера.
Порт идентификации. Будет использоваться стандартный (1812) если опция опущена.
Порт учета. Будет использоваться стандартный (1813) если опция опущена.
Секрет RADIUS сервера.
Регистрировать неудачные звонки в CDR файле и на RADIUS сервере.
Определяет имя временной зоны используемой в RADIUS пакетах.
Смещение временной зоны для AAA записей. Допустимые значения: GMT, local.
Суммарная пропускная способность зоны. Гейткипер не допустит образования соединений через зону с исчерпанной пропуской способностью.
Количество соединений которое может быть обслужено зоной. Гейткипер не допустит образования большего количества соединений для данной зоны.
Устанавливает указанный уровень прокси. Допустимые значения: 'none', 'signalling' и 'full'.
В случае если абоненты учавствующие в соединении имеют различные уровни проксирования, будет принят старший. Используя эту особенность вы можете установить уровень проксирования 'signalling' для абонентов внутри сети, в то время как внешние гейтвеи используют уровень 'full' для того, чтобы иметь возможность обойти файрвол.
Управляет возможностю изменения абонетом установленного уровня проксирования. Стандарт H.323 предполагает, что абонент имеет возможность выбрать "direct" или "gatekeeper routed" режим. Следовательно с включённой опцией 'proxy level choice' абонент может переключиться с установленного уровня проксирования 'signalling' или 'full' в 'none', или остаться в оригинальном режиме. В случае если абонет сконфигкрирован с уровнем проксирования 'none', он имеет возможность перключиться в 'signalling' или остаться в 'none' режиме.
Устанавливает уровень хантинга, если абонент является вызывающей стороной. Допустимые значения: 'none', 'neutral', 'soft', 'hard'.
Заметьте, что в любом режиме абоненты всё же имеют возможноть открыть каналы данных используя H.245 туннелинг, тем самым делая дальнейший хантинг невозможным.
Контролирует "fast connect" процедуру для данного абонента. Некоторые абонентские устройства (например Cisco ATA186) могут быть приведены в нерабочее состояние "fast start" последовательностью, вы можете обойти это запретив "fast connect" процедуру для таких абонентов.
Контролирует H.245 туннелинг для данного абонента.
Стоимость маршрута. Если существует более одного абонента с одним и тем же псевдонимом, для звонка будет выбран наименее дорогой. Это выражение может содержать суб-выражение 'at'.
Объявляет максимальное количество соединений, одновременно открытых к пользователю. Это значение используется в расчете загрузки абонента в процедуре уравновешивания загрузки (load balancing). Если существует более одного абонента с одним и тем же псевдонимом и ценой, будет выбран наименее нагруженный. В любом случае гейткипер не допустит большего количества соединений с пользователем, чем указано в этой команде.
Зона, котрой принадлежит абонент. Используется для QoS и ограничения трафика. Если выражение не определено, абонент находится вне какой-либо зоны.
Двунаправленная, кратная 100, полоса пропускания для статических абонентов. Например, если ваш абонент использует 64 kbit aLaw кодек для обоих направлений, то полоса должна быть записана как 128k.
Псевдоним (alias) с которым будет регистрироваться абонент. Опущенный пареметр "regexp" подразумевает все возможные псевдонимы. Опущенный параметр "bool" подразумевает 'true'. Используя подвыражение 'set' вы можете извлечь различные части псевдонима.
Пример
login 'user(.+)goinin' set UserAlias to '\1'; alias UserAlias;
Пользователь, регистрирующийся с псевдонимом 'userJohngoinin' будет зарегистрирован с установками текущего пользователя и будет доступен по псевдониму 'John'.
Определяет набор действительных псевдонимов, по которым может быть вызван абонент. Параметр "bool" указывает на принадлежность данного псевдонима пользователю. Если паметр "bool" установлен в значение 'false', данный псевдоним исключается из набора действительных.
Пример
alias '81234' false;
alias '8\d{5}' true;
В данном примере абонет будет доступен по всем пятизначным номерам начинающимся с цифры 8 кроме номера 81234. Опущенный параметр "bool" подразумевает состояние 'true'. Опущенный параметр "regexp string" подразумевает все возможные псевдонимы.
Подвыражение 'translate to' используется для трансляции принятой строки набора при представлении её абоненту, подобно тому как это делается в директиве 'translate alias'.
Подвыражение 'cost' позволяет установить цену маршрута на индивидуальный псевдоним. В случае если подвыражение опущено, будет использоваться цена маршрута на абонента.
Трансляция псевдонима для дальнейшей обработки и представления. Параметры "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';
Определяет право пользователя вызывать другого пользователя или пользователя из группы. Опущенный идентификатор (identifier) подразумевает всех пользователей в системе. По умолчанию пользователь имеет право вызывать любого абонента в системе. Если же пользователь или его группа содержат одно или больше выражений 'dial' вызовы к пользователям, не объявленным данными выражениями, будут отвергнуты. Вместо имени пользователя вы можете использовать зарезервированное слово 'self'.
Определяет право пользователя регистрироваться в систему с определённого адреса или диапазона адресов. Опущенный диапазон адресов подразумевает все возможноые значения адресов. Опущенное булево значение подразумевает 'true'. Однако хотя бы один параметр должен присутствовать. По умолчанию пользователь имеет право регистрироваться с любого адреса, что эквивалентно единственному выражению 'address true'. Если же пользователь или его группа содержат одно или больше выражений 'address', попытки регистрации со всех остальных адресов будут отвергнуты. В случае если абонент статический (помечен директивой 'static'), выражения 'address' определяют набор допустимых адресов для прямого (call signal) вызова гейткипера. Так же, выражение 'static' автоматически производит директиву 'address' с данным адресом и флагом доступа установленным в 'true'.
Автоматически зарегистрировать абонента при старте системы с данным сигнальным (call signal) адресом. Предусмотрено для терминалов, которые не могут общаться с гейткипером. Все RAS регистрации на данную учётную запись пользователся будут отклонены. Так же, автоматически производит директиву 'address' с данным адресом и флагом доступа установленным в 'true'. При опущенном параметре "ip address" звонки на/от данного абонента невозможны. Однако, для того чтобы разрешить пользователю производить звонки вы можете вставить директиву 'address'.
Example
address 19.38.12.7; static;
В этом примере статический абонент имеет возможность производить звонки но не имеет возможности принимать их.
Example
address 19.38.12.7 false;
static 19.38.12.7;
В этом примере абонент имеет возможность принимать звонки но не имеет возможноти производить звонки.
Ограничить действительность регистрации абонента до "uint" секунд. Абонент должен поддерживать возможность перерегистрации для того, чтобы поддерживать состояние активности. Если абонент не перерегистрируется в указанный промежуток времени, он будет отсоединён от системы. Используйте ключевое слово 'unlimited' для того, чтобы отменить ранее объявленный (например, в группе пользователя) период.
Ограничить дейтвительность соединения до "uint" секунд. Абонент должен поддерживать активное состояние соединения переодически послыая IRR сообщение. IRR период устанавливается гейткипером и он в три раза меньше чем параметр 'connection validity'. Гейткипер не будет запрашивать у абонента IRR сообщений если 'connection validity' установлено в 'unlimited'. Эта возможность может помочь подключить абонентов не рассылающих IRR сообщения во время звонка, несмотря на то что эта функция объявлена обязательной в H.323 стандарте. Настоятельно не рекомендуется использовать 'connection validity unlimited;' с 'proxy level none;' потому, что в этом случае для гейткипера не существует надежного способа узнать что соединение было прервано. Это может вызвать недостоверность данных биллинга и "повисшие" соединения.
Лимит (в сеундах) времени ожидания ответа. Будет взято наименьшее из двух (incoming для терминирующей стороны и outgoing для вызывающей) значений.
Лимит (в секундах) маскимальной продолжительности соединения. Будет взято наименьшее из двух (incoming для терминирующей стороны и outgoing для вызывающей) значений.
Устанавливает режим идентификации на RADIUS сервере. Допустимые значения: 'none', 'login', 'caller', 'callee', 'call' и 'full'. Опции могут быть объединены знаком вертикальная черта (|).
Идентификационный запрос на регистрацию имеет поле "Service-Type" установленое в "Login". Идентификационный запрос на установление соединения имеет поле "Service-Type" установленое в "Call Check".
Устанавливает режим учета на RADIUS сервере. Допустимые значения: 'none', 'login', 'caller', 'callee', 'call' и 'full'. Опции могут быть объединены знаком вертикальная черта (|).
Запрос на учет регистрации имеет поле "Service-Type" установленое в "Login". Запрос на учет соединения не имеет поля "Service-Type".
Установить имя пользователя для RADIUS операций. Так же можно использовать встроенные переменные UserName H235Name которые содержат, соотвественно, имя пользователя из конфигурации и имя пользователя из предоставленной H.235 информации.
Установить пароль пользователя для RADIUS операций. Пароль нулевой длинны подразумевает, что пароль не используется. Это значение по умолчанию. В случае если использовано выражение 'radius password H235Password', гейткипер извлечёт пароль из доставленного абонентом информационного уровня H.235. Этот режим поддерживает только Cisco Access Token.
Включить/выключить H.235 авторизацию RAS и Q.931 сообщений. Поддерживаемые методы: CAT, Password with hashing (MD5).
Установить имя которое должен представить пользователь для авторизации сообщений.
Установить пароль который должен представить пользователь для авторизации сообщений.
Присваивает заданное значение полю Q.931 display. Оригинальное значение поля display помещается в переменную UserDisplay автоматически. Вы всегда можете восстановить оригиальный режим дав команду 'display UserDisplay'.
Разрешить или запретить пользователю создавать соединения с повторяющимся идентификатором соединения. Обычно эта функция должна быть запрещена. Однако, некоторые абоненты, такие как ремаршрутизирующие автоответчики могут открыть соединение с изменённым адресом номером но с тем же идентификатором соединения. Обычно, такой звонок будет запрещён детектором петель, таким образом, в данном случае, вы должны включить функцию 'connection dupe' для данного абонента. Используйте эту возможность с особой осторожностью, абонент не должен выступать с одной стороны (например, со стороны вызывающего) дважды в разных соединениях с идентичным идентификатором соединения. Это вызвано тем, что у гейткипера не будет возможности различать такие соединения.
Устанавливает данной переменной строковое зачение. Как и с остальными выражениями, только первое выражение 'set' сработет над определённой переменной.
Побудить систему создать переменную по какому-либо псевдониму. Заметьте, что это выражение не влияет на процесс регистрации, оно включается в работу только после того как псевдоним прошёл выражение 'login'.
Пример
group everyone make login '.*' set UserAlias to '\0',alias UserAlias; user User1 login '201'; user User2 login '202';
В этом примере User1 будет зарегистрирован с только псевдонимом "201". И он будет иметь действительный псевдоним "201".
Побудить систему создать переменную по псевдониму звонка. Пропущенные direction и/или side параметры подразумевают все псевдонимы всех типов в опущенном классе.
Объявляет список альтернативных гейткиперов для пользователя. Этот список будет предоставлен абоненту в случае если он поддреживает процедуры альтернативного гейткипера обозначая это включением поля SupportsAltGK в RRQ сообщение. Выражение 'alternate gatekeeper none' выключает эту функцию. Это значение по умолчанию.
Объявляет адрес уровня RAS удаленного гейткипера. Используется совместно с опцией 'static', в том случае, если наш гейткипер не имеет возможности обнаружить этот адрес, используя другие источники.
Идентификатор удаленного гейткипера. Наш гейткипер будет использовать его во всех запросах, где это возможно. Так же, если выражение 'ras address' опущено, гейткипер попытается обнаружить удаленный гейткипер при помощи сообщения Gatekeeper Request (GRQ). Примечание: GRQ является широковещательным сообщением и может быть не пропущено через маршрутизатор.
Побуждает гейткипер зарегистрироваться на удаленном гейткипере для того, чтобы показать свое активное состояние. Метод регистрации точно такой же, как у абонента. Удалённый гейткипер может интерпретировать наш гейткипер как обычного абонента в том случае, если он не анализирует тип регистрируемого терминала.
Устанавливает H.235 имя для соединения с удалённым гейткипером.
Устанавливает H.235 пароль для соединения с удалённым гейткипером.
Включает/выключает H.235 аутентикацию на соединении с удалённым гейткипером.
Побуждает гейткипер повторять процедуру регистрации в установленный период ("uint" секунд). Эта функция используется для подтвержения активного состояния.
Разрешает процедуры альтернативнного гейткипера на данном соединении с удалённым гейткипером. При разрешённой опции будет выставлен флаг SupportsAltGK, проанализирован список альтернативных гейткиперов представленный удалённым гейткипером и включены соотвествующие процедуры переключения между альтенативными гейткиперами.
Устанавливает период действительности выражения.
Присваивает стороковое значение данной переменной.
Пример
set UserLogin to 'user(.+)'; login UserLogin set UserAlias to '\1'; alias UserAlias;
Добавляет строку к указанной переменной. Если переменная уже содержит строку не нулевой длинны то строка будет предварена знаком вертикальная черта (|). Эта функция создана специально для обработки нескольких псевдонимов в процессе регистрации абонента. Если в строке, которую содержит переменная, есть скобки, то подстрока будет вставлена перед первой закрывающей скобкой.
Пример
set UserAlias to 'common|(2())'; login 'gw5(\d{3})' set UserAlias add '\1'; alias UserAlias;
В этом примере, пользователь представленный псевдонимами "gw5100" и "gw5101", будет иметь результирующий псевдоним "common|(2(100|101))".
Список подвыражений 'set ... to' и 'set ... add'.
Пример
alias '(\d{3})(\d{3}).*' set Account to '\1' set PIN to '\2';