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是目前计划的协调人与维护者。