Configuration file consists of separate expressions. There are no any positional or space symbols usage limitation. Text marked as comment does not interpreted as any useful information.
There are two types of comments - block and line. Block comment starts with '/*' symbol pair and ends with '*/'. Line comment starts with '//' and ends with current line.
Example
/* This is comment */ // This is comment too
Each expression begins with reserved word, which indicates expression type. There are two common expression types simple and complex. Simple expression controls single feature and ends with ';'.
Example
zone LAN bandwidth 5000;
Complex expressions are similar to simple but they include one or more simple expressions enclosed in braces.
Example
user John { location LAN; login "John"; alias "John"; }
Order in which expressions appear has significance. If there is more than one expression of the same type and all of them controls same feature, first active will be taken. Some expressions can be limited by their validity in time. These expressions have optional 'at' keyword (Refer to "'at' sub expression" topic for details).
Example
group Group1 { directcall allowed; registrationvalidity 70; }
user User1 { registrationvalidity unlimited; groupmember Group1; directcall denied; connections 4 at 9:00-18:00; connections 2 at 13:00-14:00; connections 1; }
In this example user registration validity will not be limited because, first expression of this type declares this state. Registration validity declared in group has no effect. And vice-versa user's direct call has no effect because, group's expression overrides this statement.
From 9:00 to 18:00 user will be able to make four connections. And only one connection all other the time. Second 'connections' rule has no effect because it's validity time covered by first expression with higher priority.
Reserved words are case insensitive. Which case to use in particular reserved word transcription is up to network manager. F.e. 'billfile' and 'BillFile' is the same reserved word. Most of reserved words are used for expression type and expression options indication. This topic is about to discuss later. Other reserved words are used to indicate feature state.
Boolean: true, false
Numeric: unlimited
Type | Description |
---|---|
string | Text enclosed in quotes or double quotes. |
regexp string | String, which optionally can contain regular expressions. |
number | Decimal number or 'unlimited' keyword. |
bool | Boolean value. 'true' or 'false' reserved word. |
identifier | Text starting from letter without spaces. |
ip address | Numeric address (123.48.132.56:12345) or text address enclosed in quotes or double quotes ("canopus.parad.ru:12345"). |
time |
Date and time written in the form: Mon 31/12/2000 23:59:59 Any individual value can be changed for '.' symbol to make "wild" expression. Some parts can be omitted to shorten notation.So, possible notations are:
|
period | Two times written beside '-' symbol forming the time period. |
Gatekeeper identifier. Used as gatekeeper's main identification. Also, this name will be used in discovery and registration processes when endpoint wants to register at gatekeeper with particular name. So, all discovery and registration requests with non-matching gatekeeper ID will be denied. Requests containing no gatekeeper ID still be processed.
Interface gatekeeper must work thru. It is important to set this feature to a proper value on machines with multiple network interfaces, so, gatekeeper could use right interface to H.323 network. Not actual on machines with single network interface. First random will be taken if this expression omitted.
Port number, which will be used as call signal. Call signal port used by gatekeeper to be called by other devices, which does not support gatekeeper registration. Will be standard (1720) if not specified.
Path to a file containing information about conversations and their time. Will be placed to configuration file folder if path omitted. There will be no bill log file if entire option omitted.
Path to log file, which will contain console output copy. Identical to 'consolefile' command line option.
Complex expression, which can contain following log output control expressions:
incomingRASmessages <bool>; outgoingRASmessages <bool>; incomingQ931messages <bool>; outgoingQ931messages <bool>; incomingH245messages <bool>; outgoingH245messages <bool>; dumpmessages <bool>; registrations <bool>; connectionstatus <bool>; chosenroute <bool>; availablebandwidth <bool>; bandwidthchanges <bool>; connectionclosebytimerdecision <bool>; connectionclosebyexpiredirrtimer <bool>;
Declare informational zone. Network segment, which can carry data stream and it is independed from other network zones by its bandwidth. Used to limit phone traffic over particular subnet and other QoS. Gatekeeper will not allow making connections over zone with exhausted bandwidth.
Bears zone functionality with additional ability to connect two zones to follow up network topology. You can use 'unlimited' keyword as bandwidth value to indicate unlimited bandwidth for zone or link where you don't care for it. Omitting bandwidth sub expression has same meaning.
Complex expression used to declare group and it's behaviour. Refer to "Group and user options" section for expressions it can include.
This expression has almost the same meaning as 'group' with only difference. It declares concrete user who can log into system. Refer to "Group and user options" section for details.
Serves to declare user with some special (gatekeeper) abilities. It can contain group and user with own additional options. Main difference between user and gatekeeper is what on alias match, gatekeeper will not make call immediately.
Call will be preceded with Location Request (LRQ) message to remote gatekeeper (or gatekeepers if more than one matched) to discover concrete endpoint to be called. As endpoint, gatekeeper should register to indicate it's "active" state. Use 'static' expression, in case remote gatekeeper does not support registration. Refer to "Gatekeeper options" section for detailed information on gatekeeper specific options.
Sets given proxy level. Available values: 'none', 'signalling' and 'full'.
In case endpoints participated in connection have different proxy level, the stronger of two will be taken. Using this feature you can keep users on LAN to use "signalling" proxy level while some outer gateway use "full" proxy level to get thru firewall.
Route cost. If there is more than one endpoint with same alias available, less costing one will be selected for a call. Can contain 'at' sub expression.
Represents maximum simultaneous connections user can handle. This value goes into account for node load calculation in load balancing procedure. So, if there is more than one endpoint with same alias and cost available, less loaded will be selected for a call. Anyway gatekeeper will not allow making connections over this setting.
Zone endpoint belongs to. Used for QoS and bandwidth limitation. No these services if omitted.
Alias, endpoint will be registering with. 'creates alias' expression used for making alias from this login. F.e. if we configure:
Example
login 'user(.+)goinin' creates alias '\1';
User trying to log in with 'userJohngoinin' will be logged under current user conditions and it will be reachable by alias 'John'.
Alias, endpoint can be called by. 'translate to' expression used to represent received alias to endpoint in different form. See example configuration.
Pretranslate received alias, if matched, before alias matching. Matched alias will be represented to endpoint in a new form. Only first matched 'translate' will affect alias.
Translate received alias to represent it to endpoint in different form. This function work after alias was matched with concrete endpoint.
Define user right to dial for user or group. Omitting identifier, defaults to all users in a system. By default user has right to dial for any other user in the system. If user or its group contain one or more dial statements all other user dials will be denied.
Automatically register endpoint at startup with given call signal address. Provided for terminals which unable to communicate thru gatekeeper.
Limit registration validity to <unsigned int> seconds. Endpoint should support reregister feature to indicate it's alive state. If endpoint fails to reregister in given period of time, it will be unregistered by force. Use 'unlimited' keyword to disable previously declared (f.e. in user's group) value.
Limit unactive connection validity to <unsigned int> seconds. Endpoint should send IRR message periodically to indicate connection "alive". IRR period set by gatekeeper and it's three times less then connectionvalidity parameter to let IRR tree retries to reach gatekeeper. With 'connectionvalidity' set to 'unlimited' gatekeeper will not ask endpoint for IRRs. This feature can help to connect flaw endpoints which do not send IRR messages thru the call despite this feature still mandatory by H.323 standard. It is hightly recommended to not use 'connectionvalidity unlimited;' with 'directcall allow;' because, in this case there is no reliable way for gatekeeper to know that connection has been termiated. It may cause "hung" connections and wild bill data.
Indicates gatekeeper RAS layer address. Used in conjunction with 'static' option when our gatekeeper cannot discover this address from any other source.
Remote gatekeeper identifier. Our gatekeeper will use it in all requests where it's possible. Also, if rasaddress clause omitted, gatekeeper will try to discover it by Gatekeeper Request (GRQ) message. Note: GRQ is a broadcast message and it will not go thru the router without special action taken first on that router.
Makes our gatekeeper register (with RRQ message) on remote gatekeeper with given alias to indicate our "active" state. Registration method is just the same as for ordinary endpoint registration. And remote gatekeeper has the right to interpret us as ordinary endpoint if it was not told before by other way.
Forces our gatekeeper to repeat registration procedure in given period of time (<unsigned int> seconds). This feature used to indicate our alive state.
Sets period of validity for expression. Possible notations are:
Notation Example | 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. |