1. 源码下载
源码可以通过访问这个网址获取到:https://www.gnugk.org/h323download.html
需要注意的是,编译GNUGK时需要注意GK版本和openH323,PTlib的版本对应。
例如编译53版本的GK时,就需要ptlib-2_10_9_2和h323plus-1_27_0。
当然源码获取也可以通过git clone的方式获取,但是由于国内访问github时网速过低,可能会导致git 失败。
下面是相关的git 地命令:
PTLib:git clone https://github.com/willamowius/ptlib.git
H323Plus:git clone https://github.com/willamowius/h323plus.git
GNUGK:git clone https://github.com/willamowius/gnugk.git
百度云的下载链接:
链接: https://pan.baidu.com/s/1paRRJYAWm1rVWRLhObCmlQ 提取码: sx99
2. 编译相关
下载完相关代码之后,就可以开始编译工作。GNUGK的编译有几个make选项,举三个常用的:
make optnoshared release模式,将H323的库以release模式静态编译到GK中
make debugnoshared debug模式,将H323的库以debug模式静态编译到GK中
make debug, debug模式,GK动态链接相关的库
需要指明的是,编译的选项可以使用随意一种,但是编译GNUGK,H323Plus和PTLib需要使用同一种编译选项。
下面举例一种编译方式:
2.1 编译PTLib
申明Ptlib的位置
export PTLIBDIR=~/ptlib
设置编译所需的选项,可以通过./configure -h查看
./configure --enable-ipv6 --disable-odbc --disable-sdl --disable-lua --disable-expat
make optnoshared
2.2 编译H323Plus
申明H323plus的位置
export OPENH323DIR=~/h323plus
设置编译所需的选项,可以通过./configure -h查看
./configure --enable-h235 -enable-h46017 --enable-h46026
make optnoshared
2.3 编译GK
./configure --enable-h46018 --enable-large-fdset
设置编译所需的选项,可以通过./configure -h查看
make optnoshared
按照上述方式编译完成之后,会在GNUGK所在目录下生成三个以obj开头的目录,可执行文件在这三个目录以_s结尾的目录中,为gnugk。
3 GNUGK的运行
按照上述过程编译出gnugk之后,就可以运行gnugk。一般来说运行gnugk只要直接通过./gnugk的方式启动即可,但这个时候gnugk很多相关的选项没有打开。下面是关于GK一些选项设置:
指定GK运行所需的日志级别可以通过-t指定,日志的级别和后面的t的个数有关,例如-tt就是第二级别的日志。
指定日志的输出,可以通过-o后面跟文件名完成,例如-o /var/run/gk.log。
指定GK启动的配置文件,可以通过-c指定,例如-c gatekeeper.ini。
具体的命令可以通过./gnugk -h查看到。
gnugk 启动的配置文件是最重要的,它指定了gnugk的一系列属性,相关的属性可以在gnugk官方提供的相关文档中查到。
相关文档的下载地址为:
链接: https://pan.baidu.com/s/1rej2bSMiSb1Xee2S8E5yhw 提取码: jd5k
下面是gatekeeper.ini的一个范例:
; this is a basic startup configuration for GnuGk
; it allows anyone to register and make calls
[Gatekeeper::Main]
Name=ZLJH323GK
Home=192.168.131.226,127.0.0.1
TimeToLive=600
CompareAliasType=0
CompareAliasCase=0
#状态监控端口
StatusPort=7000
# 状态监控的信息详细程度,最大和默认都为2
StatusTraceLevel=5
UnicastRasPort=1719
MulticastPort=1718
EndpointSignalPort=1720
; restrict access to the status port by an IP address
[GkStatus::Auth]
rule=explicit
; add more entries, if you access the status port from other hosts
127.0.0.1=allow
default=allow
Shutdown=allow