GNU Gatekeeper Logo

Home
· Download
· Support
· Site Map

Documentation
· English Manual
· French Manual
· Spanish Manual
· Persian Manual
· Portuguese Manual
· Chinese Manual
· FAQ
· Interoperability
· Intro to H.323
· Usage Examples
· Configuration Notes
· GnuGk and SIP

Tools & Addons
· Java GUI
· ISDN Gateway
· CTI / ACD
· GnuGk Addons
· Endpoints
· Gateways
· MCUs
· IVRs
· Billing
· Commercial Addons

Development
• Compiling
· Development Version
· NAT Traversal
· Tools
· Authors

Misc
· Events
· Logos
· Recommended Books
· Success Stories

Compiling the GNU Gatekeeper

I would suggest to compile GnuGk with either

OpenH323 Atlas:
OpenH323 1.18.0 for Unix and PWLib 1.10.3 for Unix
OpenH323 1.18.0 for Windows and PWLib 1.10.3 for Windows

or

H323Plus 1.21.0:
www.h323plus.org/source/.

You also need the OpenSSL libs and the libraries for your database backend (MySQL, PostgreSQL, Firebird).

On most Unix distributions you should install the 'openssl-devel' package to have OpenSSL libraries and headers available. For Windows, install Win32 OpenSSL (not the 'Light' version) and add the lib and include path to your Visual Studio settings.

Unix

Configure and compile PTLib and OpenH323/H323Plus first.

GnuGk 2.2.x on Unix can be configured with "./configure". Please type "./configure --help" for details.

Type "make debug", "make opt" or "make optnoshared" to compile (use the same command you used with PTLibd and h323Plus). Then copy the resulting executable to a bin/ directory.

GCC 3.x, GCC 4.1.x and GCC 4.2.x work fine for compiling GnuGk. (GCC 2.95.x is too old.)

Windows

On Windows just build the included Visual Studio .NET (Visual C++ 7.0) project gk.sln or the Visual C++ 2005 Express project gk_2005.sln or the Visual Studio 2008 Express project gk_2008.sln. Visual C++ 6.0 and 5.0 are no longer supported.

When you build the project, the auto-config (./configure) feature will automatically detect the database libraries installed on your system and configure the approriate drivers.

"Known Good" Combinations

The GNU Gatekeeper depends on the OpenH323 library along with the underlying PWLib and some other libraries. Some combinations produce strange results, so here are a few notes about known issues and known good combinations.

GnuGkOpenH323PWLibNotes
2.3.0H323Plus 1.21.02.4.5 
2.3.0H323Plus 1.20.22.0.1use patch for Unix Makefile
2.3.0OpenH323 1.18.01.10.3no H.460.18/.19 support, won't compile on MacOS X
2.2.8OpenH323 1.18.01.10.3 
2.2.7OpenH323 1.18.01.10.3 
2.2.7H323Plus 1.20.22.0.1ignore warnings about missing version, fixed in 2.0.1-4
2.2.7H323Plus 1.19.61.12.0 
2.2.6OpenH323 1.18.01.10.3 
2.2.6OpenH323 1.18.01.10.0 
2.2.5OpenH323 1.18.01.10.0 
2.2.4OpenH323 1.18.01.10.0 
2.2.4OpenH323 1.15.61.8.7 
2.2.3OpenH323 1.15.61.8.7 
2.2.3OpenH323 1.14.4.21.7.5.2OpenSSL 0.9.7b
2.2.2OpenH323 1.17.21.9.1 
2.2.2OpenH323 1.15.21.8.3 
2.2.2OpenH323 1.14.4.21.7.5.2OpenSSL 0.9.7b
2.2.1OpenH323 1.15.31.8.4MacOS X
2.2.1OpenH323 1.14.4.21.7.5.2OpenSSL 0.9.7b
2.0.9OpenH323 1.15.01.8.0OpenSSL 0.9.7a

Troubleshooting

Please submit more notes.

OSGnuGk VersionOpenH323 / PWLibNote
AllAllPTLib 2.3.x - 2.5.2will cause GnuGk to hang on startup - bug in PIPSocket::GetRouteTable()i, fixed in 2.4.5
All2.2.7H323Plus/PTLib 2.0.1gives compile warning "Can't detect PWLib/PTLib version", which can be ignored for this version of PTLib, or use OpenH323 Atlas
UnixAllOpenH323 Atlas (1.18.0)gives a few compile warnings with gcc 4.2.x that can be ignored, use patch provides in /docs/pwlib_bugs.txt
AllAllAlldo not configure PWLib with --enable-openh323; GnuGk needs some features not used by OpenH323
Unix2.2.3Allmust use gcc <= 4.0.2 to compile; gcc 4.0.3 doesn't work, fixed for GnuGk 2.2.4
All>= 2.2.3PWLib 1.8.xuse at least PWLib 1.8.0 for full ENUM support
Windows>= 2.2.3Allmust use Visual Studio .NET to compile, won't compile with Visual C++ 6
Unix2.2.xAllmust use gcc >= 3.3.x to compile
FreeBSD 5.3, 5.42.2.xPWLib 1.8.3, OpenH323 1.15.2 modify source to include stdlib.h:
for i in `find openh323/ -name "*.c" -or -name "*.cxx" | grep plugin`; \
do echo $i; cat $i | sed 's/<malloc.h>/<stdlib.h>/' > $i.tmp ; \
mv $i.tmp $i; done
All2.0.9PWLib < 1.6.xGnuGk needs at least PWLib 1.6.x to work correctly
UnixAllPWLib >= 1.7.xadd LDFLAGS += -static to the PWLib Makefile to get a fully static executable
Unix2.0.xPWLib 1.6.xyou must compile PWLib with 'configure --enable-rtti'
All2.2 beta 4OpenH323 1.13.xcompiling GnuGk with LARGE_FDSET seems to burn less CPU in proxy mode



Last updated: 23. Jun 2009
Page maintained by Jan Willamowius