GNU Gatekeeper
首次发布 | 1999年6月 |
---|---|
当前版本 | 5.5(2020年6月30日 | )
原始码库 | |
编程语言 | C++ |
操作系统 | 跨平台 |
语言 | 英文 |
类型 | 通讯软件 |
许可协议 | GNU GPL |
网站 | http://www.gnugk.org/ |
GNU Gatekeeper(简称GnuGK)是一个基于OpenH323来发展的开放原始码H.323 gatekeeper计划。所谓的H.323 gatekeeper,定义于H.323标准中,负责对H.323的系统提供地址转换、通话控制、路由决定、认证计费等服务。
功能特色
GnuGK实现许多丰富实用的特性,包括
- 可跨平台,目前已移植到Linux、Windows、Mac OS X、Solaris、FreeBSD、OpenBSD以及NetBSD。
- 可自定义策略的路由机制。
- 来源以及目标号码的改写。
- 完整的H.323代理功能,包含RTP/RTCP媒体和T.120资料通道。
- 可穿越NAT的Citron's NAT技术。
- 以邻近(neighbor)、父子(parent/child)和替代(alternate)GK等方式达到的集群支持。
- 可透过TCP状态端口进行监看与控制。
- 部分的H.235安全支持。
- 可以SQL数据库、radius或外部程序支持通话认识与计费。
许可方式
以GNU通用公共许可证的方式许可。此外,作者明确的允许将可执行文件与OpenH323和OpenSSL 函数库做链接。这是必要的,因为GNU GPL与这些函数库的许可并不兼容。
发展历史
最初的版本是由Xianping Chen、Joe Metzger和Rajat Todi所开发,做为实验用途。在1999年初,本计划的主持人Jan Willamowius找到这支程序,并说服原作者以GNU GPL的方式发布原始码。 [1]
随后,程序被移植到更新版的OpenH323,并被命名为OpenH323 Gatekeeper,简写为OpenH323GK。在德国的mediaWays公司随后加入,提供了LDAP子系统与交叠发送(overlapped sending)的支持。到了2000年,大约已有十余人加入,提供代码或协助测试。功能已相当堪用。不过,相较于另一个类似计划OpenGatekeeper,功能上仍逊色许多。
在2001年,当时任职台湾呈祺资讯公司总技术长的黄志伟和他的团队开始加入,修改并使用此计划于其VoIP服务中。增强了系统的稳定性,大幅改善效率,并加入许多新的特性,例如多线程安全的执行时期表格,邻近和父子GK,以及认证模块。他的加入引导了此计划的重大变革。2001年九月,OpenH323GK 1.0正式发布,为此计划的一大里程埤。
到了2002年底,GnuGK 2.0正式发布。它包含重新设计的路由模式(routed mode)架构,并能同时处理上千个通话。此外,还有完整的H.323 proxy和Citron's NAT技术,为H.323穿越NAT的问题提供了完善的解决方案。这些特色使得GnuGK成为具有电信等级的H.323 gatekeeper,能真正应用于商业运转。
2005年初发布了2.2版,包含了多线程处理的RAS子系统,可定制的路由策略,以及更有弹性的邻近系统。小幅度的问题解决与改善仍持续至今。
更名
随着功能日益完善,计划日趋成熟也更受欢迎。然而,愈来愈多的人搞不清楚此计划的真正名称。因为当时至少有三个其它同样根基于OpenH323的开放原始码gatekeeper计划,而且名称都非常的类似。[2]。根据计划主持人Jan Willamowius的说法,与其它计划名称相同并不是我们的错,我们是第一个采用这名称的开放原始码计划。然而,经过主要开发者的讨论后,决定将名称改为GNU Gatekeeper,简称GnuGK。因为在所有类似计划中,这是唯一一个以GNU GPL许可的。不过请不要误会,它并非GNU计划的一部分。
兼容性
在官方网站维护了一份与其它H.323软件和产品的互通性测试结果清单(页面存档备份,存于互联网档案馆)。由于GnuGK可免费并自由的使用,日渐受到欢迎,新的产品通常会宣称已通过与GnuGK的兼容性测试。
主要贡献者
现代的系统架构和主要特色是由黄志伟(cwhuang)所设计,包括多线程架构、H.323 proxy以及NAT穿越技术等。[1]
Michal Zygmuntowicz贡献了radius支持和一些其它改进。
Jan Willamowius是目前计划的协调人与维护者。