To build the gatekeeper you need at least PWLib 1.5.0 and OpenH323 1.12.0 or later. The development version of the gatekeeper usually needs the most recent OpenH323 version available. These libraries are available at OpenH323 Download Page. See the instructions on how to compile the OpenH323 code.
Order of compiling:
On Unix do a make debug
or make opt
in the gatekeeper directory
to build debug or release version, respectively.
Use make both
to build both versions.
Note you have to use GCC 2.95.2 or later. The older version may not work.
Good practice is to do a make debugdepend
or make optdepend
in the gatekeeper directory before starting actual compilation (make debug or
make opt) - these commands build approtiate dependency lists, so after
you will update your sources from CVS, all affected files will get recompiled.
Otherwise you can finish with the Gatekeeper partially compiled with the older
headers and partially with the updated headers - a very bad thing.
On Windows just open and compile the provided project (gk.dsw
) for
Microsoft Visual C++ 6.0 or 7.0 (Visual C++ 5.0 is too old).
Since version 2.0, the Gatekeeper supports MySQL and LDAP backend databases. If you don't want MySQL support, you may set NO_MYSQL environment before making:
$ NO_MYSQL=1 make clean
$ NO_MYSQL=1 make bothdepend
$ NO_MYSQL=1 make both
To leave out LDAP support:
$ NO_LDAP=1 make clean
$ NO_LDAP=1 make bothdepend
$ NO_LDAP=1 make both
Or to disable all above extensions:
$ NO_MYSQL=1 NO_LDAP=1 make clean
$ NO_MYSQL=1 NO_LDAP=1 make bothdepend
$ NO_MYSQL=1 NO_LDAP=1 make both
Since version 2.0.1 the Gatekeeper has implemented an extended fd_set structure that enables the Gatekeeper to support thousands of concurrent calls in routed mode. To enable this feature, export LARGE_FDSET environment variable to the maximum number of file descriptors. Most systems also need kernel reconfiguration/recompilation in order to allow more than 1024 sockets to be allocated for a single process. Note that the PWLib library starting from version 1.5.3 supports a similar feature too, so you can choose between LARGE_FDSET GnuGk and PWLib implementation. To enable GnuGk LARGE_FDSET, type:
$ LARGE_FDSET=16384 make clean
$ LARGE_FDSET=16384 make optdepend
$ LARGE_FDSET=16384 make opt
Since version 2.0.4 the Gatekeeper has implemented Radius protocol client that enables registration/admission authentication and authorization using Radius servers. This featured is enabled by default. To disable compilation of these radius modules, set NO_RADIUS environment variable before making:
$ NO_RADIUS=1 make clean
$ NO_RADIUS=1 make bothdepend
$ NO_RADIUS=1 make both
Since version 2.0.5 the Gatekeeper is able to do accounting. Currently, only RADIUS and plain text file accounting modules are available. The accounting support is compiled in by default. To exclude it from the compilation, set NO_ACCT evironment variable before making:
$ NO_ACCT=1 make clean
$ NO_ACCT=1 make bothdepend
$ NO_ACCT=1 make both
Since version 2.0.8, the Gatekeeper also supports PostgreSQL backend database. If you don't want PostgreSQL support, you may set NO_PGSQL environment variable before making:
$ NO_PGSQL=1 make clean
$ NO_PGSQL=1 make bothdepend
$ NO_PGSQL=1 make both
To disable both MySQL and PostgreSQL, type:
$ NO_PGSQL=1 NO_MYSQL=1 make clean
$ NO_PGSQL=1 NO_MYSQL=1 make bothdepend
$ NO_PGSQL=1 NO_MYSQL=1 make both
Status line access authentication and SimplePasswordAuth module require
encrypted passwords to be stored in the gatekeeper configuration file.
addpasswd
utility is required to generate and store these encrypted
passwords. This utility is included with the gatekeeper and can be compiled
using:
$ make addpasswd
The usage is as follows:
$ addpasswd CONFIG SECTION USERNAME PASSWORD
Example 1: 'gkadmin' user with 'secret' password has to be added to [GkStatus::Auth] config section to enable status line interface authentication:
$ addpasswd gnugk.ini GkStatus::Auth gkadmin secret
Example 2: 'joe' user with 'secret' password has to be added to [Password] config section to enable endpoint authentication:
$ addpasswd gnugk.ini Password joe secret
IMPORTANT: Before passwords will be stored in the specified config section,
KeyFilled variable has to be set. It sets encryption key for the passwords
- without it addpasswd
does not know what encryption key should be used.
Example:
[GkStatus::Auth]
KeyFilled=11
[Password]
KeyFilled=123
There is no special installation procedure needed.
Just copy the executable to the directory you like
and create a config file for it.
There are several config examples in the etc/
subdirectory
of source tree. See section
Configuration File
for detailed explanations.
For example, in Linux x86 platform, the optimized executable gnugk
is produced in obj_linux_x86_r/
subdirectory.
You may copy it to /usr/sbin/
, create a config in
/etc/gnugk.ini
and start it by
$ /usr/sbin/gnugk -c /etc/gnugk.ini -o /var/log/gnugk.log -ttt
See section
Command Line Options for details.
If you do not wish to compile the gatekeeper from source, there are several pre-built `packages' available from SourceForge. Not all versions will be made available as binaries - check what is avilable.
Tar packages (.tgz or .tar.gz)
Download the tar file and enter the following command as root
,
substitute in the name of the file you downloaded.
$ tar xvzf gnugk-x.x.x.tar
Debian packages (.deb)
Debian includes the gatekeeper as openh323gk package.
You can install it by using the following command as root
:
$ apt-get install openh323gk