This is the manual for GNU Gatekeeper 5.5.
An English manual for your version is in your GnuGk download archive.

Chapters: Contents · Introduction · Installation · Getting started · Basic Config · Routed Mode & Proxy · Routing · RAS Config · Authentication · Accounting · Neighbors · Per Endpoint Config · Advanced Config · Monitoring · Advanced Topics

Download GnuGk    Get support

The GNU Gatekeeper Manual Chapter 14

14. 高级主题

本手册的这一部分将涵盖高级主题,例如编译和调试GnuGK。

14.1 从Github获取代码并编译GnuGk

以下说明是如何在Ubuntu平台上从源代码编译GnuGk的示例。

首先,确保系统是最新的,并安装编译所需的工具

sudo apt-get update
sudo apt-get install automake flex bison build-essential git pkg-config automake linuxdoc-tools libssl-dev
另外,请确保已安装要使用的所有数据库或LDAP服务器的 "...-dev" 软件包。

不要从Linux发行版中安装PTlib或H323Plus软件包。

注意: 不能使用OPAL项目中的最新PTLib;请参见第11页上的“PTLib”。它正在进行许多与GnuGk不兼容的更改。使用我们的修补版本PTLib 2.10.9。

从Github获取并编译PTLib:

cd ~
git clone https://github.com/willamowius/ptlib.git
cd ptlib
export PTLIBDIR=~/ptlib
./configure --enable-ipv6 --disable-odbc --disable-sdl --disable-lua --disable-expat
make optnoshared

获取并编译H323Plus:

cd ~
git clone https://github.com/willamowius/h323plus.git
cd h323plus
export OPENH323DIR=~/h323plus
./configure --enable-h235 -enable-h46017 --enable-h46026
make optnoshared

获取并编译GnuGk:

cd ~
git clone https://github.com/willamowius/gnugk.git
cd gnugk
./configure --enable-h46018 --enable-large-fdset
make optnoshared

编译完成后,可找到二进制文件为

~/gnugk/obj_linux_x86_64_s/gnugk
(如,64位系统下).

为了保持最新,请运行以下命令: In order to stay up-to-date, run the following:

cd ~/ptlib
git pull
make clean ; make optnoshared
cd ~/h323plus
git pull
make clean ; make optnoshared
cd ~/gnugk
git pull
make clean ; make optnoshared

14.2 GnuGk 信息追踪

若GnuGk无法按预期处理呼叫,则可以启用跟踪以查看GnuGk在内部执行的操作。 这不应与连接到控制端口并查看事件("telnet 127.0.0.1 7000")相混淆。 创建跟踪文件将揭示更多内部工作原理。

在命令行上,使用-ttttt和-o启动GnuGk,以将跟踪信息写入文件:

gnugk -c gnugk.ini -ttttt -o trace.log

若有很多呼叫,trace.log可能会变得很大,因此请确保在测试完成后将其禁用,或者至少将生产的跟踪级别降低到2或3。

还可在配置文件中启用跟踪:

[Gatekeeper::Main]
TraceLevel=5

[LogFile]
Filename=trace.log

或可通过控制端口启用跟踪:

setlog trace.log
debug trc 5

通过控制端口执行此操作的优点是不会中断正在进行的呼叫,并且可以快速打开或关闭它。

跟踪文件将包含详细说明GnuGk所做的一切的信息。 要将其简化为单个呼叫,您可以搜索callID或编写一个小的Perl脚本以仅提取您感兴趣的消息。

14.3 调试 GnuGk (on Linux)

为了在GnuGk中使用gdb,必须在调试支持下编译软件和库。

可按照上述说明获取软件,每个子目录中的编译必须为:

make debugnoshared

允许无限的核心转储:

ulimit -c unlimited

运行GnuGk:

~/openh323/obj_linux_x86_64_d_s/gnugk -c your.ini

等待崩溃并运行GDB以获取堆栈回溯:

gdb obj_linux_x86_64_d_s/gnugk core
bt

获得回溯后,将其发布到邮件列表。

注意:在某些系统上,核心转储名为“core.xxx”,其中xxx是崩溃的GnuGk进程的进程号。


Next Previous Contents

Chapters: Contents · Introduction · Installation · Getting started · Basic Config · Routed Mode & Proxy · Routing · RAS Config · Authentication · Accounting · Neighbors · Per Endpoint Config · Advanced Config · Monitoring · Advanced Topics



Last updated: 21. Jan 2025