Wednesday, January 17, 2018

GNU Gatekeeper 4.8 released

GNU Gatekeeper version 4.8 has been released

This version has many new features. You can download the new version from


New maintenance mode: When you need to take down your GnuGk server
(eg. for an OS update), you can switch GnuGk to maintenance mode where
it will only allow ongoing calls to finish and automatically redirects
all idle endpoints to an alternate GnuGk server.
The status port command is "MaintenanceMode <alternate IP>".

Detailed information about ongoing calls: You can now display lots of
information about each ongoing call (codecs, bandwidth used, IPs etc.).
The web interface has been extended to to show this information.

Easier installation on AWS and inside docker containers. You can now
let GnuGk automatically detect the public IP of your AWS server, even
from within a docker container. You can also automatically insert your
public/external IP into your trace file names to store logs from many
servers in the same directory.

Extended API: Call routing with external applications has been
expanded. You can now set the display names for participants and
desired reject codes on the status port. You can also access the
vendor information of all registered endpoints. The web interface has
been extended to provide this information, too.

HttpPasswordAuth has been greatly extended to fetch password
information from backend servers. We now use curl to support https
and you can add many new placeholders in your queries.

Extended screening and rewriting of display names and calling party

Important bug fixes: Multiplexed RTP is now much more robust and
password authentication to parent gatekeepers has been fixed. There
are also interop fixes for TCP keep-alives.

Please see the full change log below for more details.

Changes from 4.7 to 4.8
  • HttpPasswordAuth: support https and add new placeholders
  • PrintAllRegistrationsVerbose now also shows the endpoint vendor
  • new status port command: MaintenanceMode
  • new status port command: PrintCallInfo
  • allow placeholder %{gkip} and %{external-ip} in [LogFile] Filename=
  • fetch AWS public/elastic IP if ExternalIP=AWSPublicIP
  • new commandline switch: -e / --externalip
  • extend status port command RouteReject to set reject reason
  • extend status port commands RouteToAlias, RouteToGateway etc. to set display IE for calling and called
  • new switch: [LogFile] DeleteOnRotation=1 to delete the old logfile when rotating instead of renaming it
  • new switches: [RoutedMode] AppendToCallingPartyNumberIE= / PrependToCallingPartyNumberIE= to add any string before or after the calling party number IE when ScreenCallingPartyNumberIE=RegisteredAlias
  • when [RoutedMode] ScreenCallingPartyNumberIE= is set to RegisteredAlias, GnuGk sets calling party number IE to the registered alias (forced screening)
  • delete DisplayIE when [RoutedMode] ScreenDisplayIE=Delete
  • new switch [Endpoint] Authenicators=
  • new default: [RoutedMode] GnuGkTcpKeepAliveMethodH225=EmptyFacility
  • new default: [RoutedMode] H460KeepAliveMethodH225=EmptyFacility for Cisco interop
  • new setting "None" for keep-alive methods
  • BUGFIX(ProxyChannel.cxx) fix bugs in H.460.19 RTP multiplexing
  • BUGFIX(ProxyChannel.cxx) don't send H.460 keep-alive to non-H.460 party when calling H.460 party
  • BUGFIX(Routing.cxx) show called port in RouteRequests (as documented)
  • BUGFIX(GkClient.*) fix password authentication with parent
  • BUGFIX(Routing.cxx) remove semicolon and pipe chars from vendor string in RouteRequests
  • better handling of IPv6 GRQ without RAS address
  • BUGFIX(ProxyChannel.cxx) turn off encryption proxy if DH key is negotiated, but TCS doesn't contain any H.235 entries
  • BUGFIX(ProxyChannel.cxx) fix running in proxy mode on FreeBSD when one Home IP is set
  • BUGFIX(ProxyChannel.cxx) fix DisableSettingUDPSourceIP=1 for Windows, NetBSD, OpenBSD and Solaris
  • BUGFIX(yasocket.cxx) fix LARGE_FDSET for NetBSD, OpenBSD and Solaris