GenerateNBCDR=0
1
Generate CDRs for calls from neighbor zones. The IP and endpoint ID of the calling party is printed as empty. This is usually used for debug purpose.
GenerateUCCDR=0
0
Generate CDRs for calls that are unconnected. This is usually used for debug purpose. Note a call is considered unconnected only if the gatekeeper uses routed mode and a Q.931 Connect message is not received by the gatekeeper. In direct mode, a call is always considered connected.
DefaultCallDurationLimit=3600
0
Default maximum call duration limit (seconds).
Set it to 0
to disable this feature and not limit
calls duration.
AcctUpdateInterval=60
0
A time interval (seconds) for accounting updates to be logged for each call in progress. The exact details of the accounting updates depend on accounting logger modules selected (see section [Gatekeeper::Acct]). In general, the accounting update is to provide back-end services with incrementing call duration for connected calls. The default value 0 tells the gatekeeper to not send accounting updates at all. Please note that setting short periods may decrease GK performance.
TimestampFormat=Cisco
RFC822
Format of timestamp strings printed inside CDRs.
IRRFrequency=60
120
Set the irrFrequency in ACF messages. 0 turns it off.
IRRCheck=TRUE
FALSE
Check if both endpoints in a call send the requested IRRs. A call will be terminated if one of the endpoints didn't send an IRR after 2 * irrFrequency.
SingleFailoverCDR=FALSE
TRUE
When failover is active, more than one gateway may be tried to establish a call. This switch defines if one or multiple CDRs are generated for such a call.
When converting between H.225 reasons and Q.931 cause codes, GnuGk uses a conversion table. Using this section you can change this mapping.
[H225toQ931]
;0=34 # noBandwidth
;1=47 # gatekeeperResources
2=34 # unreachableDestination => NoCircuitChannelAvailable (default 3)
;3=16 # destinationRejection
;4=88 # invalidRevision
;5=111 # noPermission
;6=38 # unreachableGatekeeper
;7=42 # gatewayResources
;8=28 # badFormatAddress
;9=41 # adaptiveBusy
;10=17 # inConf
;11=31 # undefinedReason
;12=16 # facilityCallDeflection
;13=31 # securityDenied
14=34 # calledPartyNotRegistered => NoCircuitChannelAvailable (default 20)
;15=31 # callerNotRegistered
;16=47 # newConnectionNeeded
;17=127 # nonStandardReason
;18=31 # replaceWithConferenceInvite
;19=31 # genericDataReason
;20=31 # neededFeatureNotSupported
;21=127 # tunnelledSignallingRejected
Use H.460.9 to collect quality of service information from endpoints. Endpoints must support H.460.9 for this service to function.
Enable=1
0
Define whether to enable or disable the feature. If enabled this function with respond to supportedFeature request from clients so clients know to send QoS Information to the gatekeeper.
CallEndOnly=0
1
Define whether to collect the information via IRR messages or to only collect QoS information at the end of a call.
DefaultFile=qos.txt
N/A
Define the output file to log QoS information to. If a file is not defined the QoS information is outputted as an item in the Trace File trace level 4
The gatekeeper can work as an endpoint by registering with another gatekeeper. With this feature, you can easily build gatekeeper hierarchies. The section defines the endpoint features for the gatekeeper.
Gatekeeper=10.0.1.1
no
Define a parent gatekeeper for the endpoint(gatekeeper) to register with.
Don't try to register with yourself, unless you want to be confusing.
To disable this feature, set the field to be no
.
Type=Gateway
Gateway
Define the terminal type for the endpoint.
The valid values are Gateway
or Terminal
.
Vendor=Cisco | GnuGk | Generic
GnuGk
Choose parent gatekeeper type to enable vendor specific extensions.
H323ID=CitronProxy
<Name>
Specify the H.323 ID aliases for the endpoint. Multiple aliases can be separated by comma.
E164=18888600000,18888700000
N/A
Define the E.164 (dialedDigits) aliases for the endpoint. Multiple aliases can be separated by comma.
Password=123456
N/A
Specify a password to be sent to the parent gatekeeper.
All RAS requests will contain the password in the cryptoTokens field
(MD5 & HMAC-SHA1-96) and the tokens field (CAT).
To send RAS requests without both cryptoTokens and tokens fields,
set the password to be empty.
If EncryptAllPasswords
is enabled, or a KeyFilled
variable is defined
in this section, the password is in encrypted form and should be created using
the addpasswd
utility.
Besides, the password is also used in LRQs sent to neighbor gatekeepers.
Prefix=188886,188887
N/A
Register the specified prefixes with the parent gatekeeper.
Only takes effect when the Type is Gateway
.
TimeToLive=900
60
Suggest a time-to-live value in seconds for the registration. Note that the real time-to-live timer is assigned by the parent gatekeeper in the RCF replied to the RRQ.
RRQRetryInterval=10
3
Define a retry interval in seconds for resending an RRQ if no response is received from the parent gatekeeper. This interval is doubled with each failure, up to a maximum RRQRetryInterval * 128 timeout.
ARQTimeout=2
2
Define the timeout value in second for ARQs.
UnregisterOnReload=1
0
Defines whether the child gatekeeper unregisters and re-registers with it's parent when receiving a Reload command.
NATRetryInterval=60
60
How long to wait before trying to reconnect TCP NAT signaling socket (seconds). This can happen when either the connection cannot be established or it has been broken.
NATKeepaliveInterval=86400
86400
Define how often the TCP NAT signaling connection with a parent gatekeeper is refreshed. As NAT boxes usually keep TCP mappings for a definite time only, it is good to set this to some value a bit shorter than NAT box mapping timeout. Refreshing is done by sending a special Q.931 IncomingCallProceeding message. If you NAT performs TCP port translation, you may need to set it to a values as short as 60 seconds.
Discovery=0
1
Decide whether to discover the parent gatekeeper by sending GRQ first.
UseAlternateGK=0
1
Enable alternate gatekeepers feature. If GRJ/GCF/RFC messages received
from a parent gatekeeper contain a list of alternate gatekeepers, this
information is stored and can be used to reregister with another gatekeeper
in case of any failure. If you don't want to use this feature, set this
variable to 0
.
GatekeeperIdentifier=ParentGK
Not set
Define it if you want to accept only such parent gatekeepers that match this gatekeeper identifier. Useful with GRQ discovery and can prevent an accidental gatekeeper match. Do not set this variable, if you do not care about gatekeeper identifiers or you use alternate gatekeepers that can have different gatekeeper identifiers set.
EndpointIdentifier=OpenH323GK
Not set
Set this if you want to use a specific endpoint identifier for this child gatekeeper. If this option is not set (default), the identifier is assigned by a parent gatekeeper in a GCF/RCF message.
ForwardDestIp=0
1
Forward the destCallSignalAddress in ARQs to the parent gatekeeper.
DisableH.460.23=0
1
TODO: document this
This section allows the configuration of a so called virtual queues to allow inbound call distribution by an external application via the status port. A virtual queue has an H.323 alias that can be called like an endpoint or it can answer to a set of aliases.
Upon arrival of a call on a virtual queue, the gatekeeper signals a RouteRequest on the status port and waits for an external application to respond with either a RouteReject (then the call will be rejected) or with RouteToAlias/RouteToGateway which leads to destination rewritten so the call will be routed to the alias (eg. call center agent) specified by the external application.
If no answer is received after a timeout period, the call is terminated.
You can specify virtual queues in three ways:
exact alias name
- a list of aliases is given. If a request destination
alias matches one these names, the virtual queue is activated,prefix
- a list of prefixes is given. If a request destination alias
starts with one these prefixes, the virtual queue is activated,regular expression
- a regular expression is given. If a request destination
alias matches the expression, the virtual queue is activated.See the monitoring section for details on the messages and responses.
VirtualQueueAliases
none
This defines a list of H.323 aliases for the virtual queues (used with the vqueue RoutingPolicy).
VirtualQueueAliases=sales,support
VirtualQueuePrefixes
none
This defines a list of prefixes for the virtual queues (used with the vqueue RoutingPolicy).
VirtualQueuePrefixes=001215,1215
VirtualQueueRegex
none
This defines a regular expression for the virtual queues (used with the vqueue RoutingPolicy).
VirtualQueueRegex=^(001|1)215[0-9]*$
RequestTimeout
10
This section contains the settings for the status port command MakeCall.
EndpointAlias=DialOut
InternalMakeCallEP
This defines the endpoint alias for the pseudo endpoint used to dial.
UseH450=0
1
Use a H.450.2 transfer instead of a Facility message to transfer the call from the pseudo endpoint to the actual destination.
Gatekeeper=192.168.1.2
127.0.0.1
Gatekeeper IP for the pseudo endpoint to register with.
Interface=192.168.1.1:1730
*:1722
Interface and port to use for the pseudo endpoint.
DisableFastStart=1
0
Disable FastStart for the pseudo endpoint.
DisableH245Tunneling=1
0
Disable H.245 tunneling for the pseudo endpoint.
Load gatekeeper settings from an SQL database (in addition to settings
read from the config file). A generic ConfigQuery
can be used
to read almost all setting from the database and/or one of [RasSrv::RewriteE164]
,
[RasSrv::PermanentEndpoints]
, [RasSrv::Neighbors]
,
[RasSrv::GWPrefixes]
queries can be used to load particular settings.
Entries read from the SQL database take precedence over settings found
in the config file.
Driver=MySQL | PostgreSQL | Firebird | ODBC | SQLite
N/A
SQL database driver to use. Currently, MySQL
, PostgreSQL
, Firebird
, ODBC
and SQLite
drivers
are implemented.
Host=DNS[:PORT] | IP[:PORT]
localhost
SQL server host address. Can be in the form of DNS[:PORT]
or IP[:PORT]
.
Like sql.mycompany.com
or sql.mycompany.com:3306
or 192.168.3.100
.
Database=billing
billing
The database name to connect to.
Username=gnugk
The username used to connect to the database.
Password=secret
The password used to connect to the database.
If the password is not specified, a database connection attempt
without any password will be made.
If EncryptAllPasswords
is enabled, or a KeyFilled
variable is defined
in this section, the password is in encrypted form and should be created using
the addpasswd
utility.
ConfigQuery=SELECT ...
N/A
Define an SQL query used to read gatekeeper settings from the database.
The query is parameterized - that means parameter replacement occurs before
the query is executed. Parameter placeholders are denoted by %1, %2, ...
strings. Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For ConfigQuery
only one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- config section namecolumn at index 1
- config key (option name)column at index 2
- config value (option value)Sample query strings:
ConfigQuery=SELECT secname, seckey, secval FROM sqlconfig WHERE gk = '%1'
ConfigQuery=SELECT 'RasSrv::RRQAuth', alias, rule FROM rrqauth WHERE gk = '%1'
RewriteE164Query=SELECT ...
N/A
Define an SQL query used to retrieve from the database rewrite rules
for [RasSrv::RewriteE164]
section. The query is parameterized
- that means parameter replacement occurs before each query is executed.
Parameter placeholders are denoted by %1, %2, ... strings.
Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For RewriteE164Query
only one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- rewrite rule keycolumn at index 1
- rewrite rule valueSample query strings:
RewriteE164Query=SELECT rkey, rvalue FROM rewriterule WHERE gk = '%1'
RewriteAliasQuery=SELECT ...
N/A
Define an SQL query used to retrieve from the database rewrite rules
for [RasSrv::RewriteAlias]
section. The query is parameterized
- that means parameter replacement occurs before each query is executed.
Parameter placeholders are denoted by %1, %2, ... strings.
Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For RewriteAliasQuery
only one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- rewrite rule keycolumn at index 1
- rewrite rule valueSample query strings:
RewriteAliasQuery=SELECT rkey, rvalue FROM assignedalias WHERE gk = '%1'
AssignedAliasQuery=SELECT ...
N/A
Define an SQL query used to retrieve from the database rewrite rules
for [RasSrv::AssignedAlias]
section. The query is parameterized
- that means parameter replacement occurs before each query is executed.
Parameter placeholders are denoted by %1, %2, ... strings.
Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For AssignedAliasQuery
only one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- rewrite rule keycolumn at index 1
- rewrite rule valueSample query strings:
AssignedAliasQuery=SELECT rkey, rvalue FROM assignedalias WHERE gk = '%1'
NeighborsQuery=SELECT ...
N/A
Define an SQL query used to retrieve from the database neighbor entries
for [RasSrv::Neighbors]
section . The query is parameterized
- that means parameter replacement occurs before each query
is executed. Parameter placeholders are denoted by %1, %2, ...
strings. Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For NeighborsQuery
one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- neighbor name (identifier)column at index 1
- neighbor IP addresscolumn at index 2
- neighbor port numbercolumn at index 3
- optional prefixes (comma separated)column at index 4
- optional passwordcolumn at index 5
- optional dynamic IP flagSample query strings:
NeighborsQuery=SELECT nid, nip, nport, npfx, NULL, 0 FROM neighbor WHERE gk = '%1'
PermanentEndpointsQuery=SELECT ...
N/A
Define an SQL query used to retrieve permanent endpoints from the database
for [RasSrv::PermanentEndpoints]
section . The query is parameterized
- that means parameter replacement occurs before each query
is executed. Parameter placeholders are denoted by %1, %2, ...
strings. Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For PermanentEndpointsQuery
only one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- permanent endpoint IP addresscolumn at index 1
- permanent endpoint port numbercolumn at index 2
- permanent endpoint aliascolumn at index 3
- optional permanent endpoint prefixes (comma separated)Sample query strings:
PermanentEndpointsQuery=SELECT peip, 1720, pealias, NULL FROM permanentep WHERE gk = '%1'
GWPrefixesQuery=SELECT ...
N/A
Define an SQL query used to retrieve gateway prefixes from the database
for [RasSrv::GWPrefixes]
section . The query is parameterized
- that means parameter replacement is made before each query
is executed. Parameter placeholders are denoted by %1, %2, ...
strings. Specify %% to embed a percent character before a digit into string
(like %%1), specify %{1} to allow expansion inside complex expressions
like %{1}123. For GWPrefixesQuery
only one parameter is defined:
%1
- the gatekeeper identifiercolumn at index 0
- gateway aliascolumn at index 1
- gateway prefixes (comma separated)Sample query strings:
GWPrefixesQuery=SELECT gwalias, gwpfx FROM gwprefix WHERE gk = '%1'