1、核心算法软件:主要是一些音频、视频的编码、解码类软件,这类软件可能采用汇编或C语言,运行在ARM和DSP等一些工业级微处理器上,操作系统为专用操作系统或RTOS(如VxWorks、pSOS等)之上。
2、信令协议栈软件:主要是用于设备互通、网络互连等。通信网络在不断更新、发展,通信协议也在不断的进化,这类软件运行在交换机上,操作系统可能为嵌入式系统,也可能为Unix和Windows等一些通用系统。
3、运营支撑软件:亦称为BOSS系统,主要是给运营商提供计费、结算、营业等功能,是运营商的核心软件。这类软件运行在普通的服务器之上,操作系统可能为Unix或NT等。
4、增值应用软件:主要是基于某种交换机或板卡开发的一些增值应用,如呼叫中心、电话会议等,或者是一些第三发服务提供商开发的一些电信业务软件(如目前常见的短信、彩玲、或者秘书台业务等等)。
前两类软件由于通用性比较强,技术和标准都相对成熟、稳定,是目前通信开源项目的主要发展领域。下面,我们通过目前比较成熟的几种协议栈软件,也就是上述的第二类通信软件,来简单的描述一下开源软件在通信行业的现状。
开源的七号信令协议栈-OpenSS7
七号信令是电信网间互连最常用的信令系统,它对电信网就像TCP/IP对互联网一样。在各种电信网结构中,都可以见到七号信令的身影。
OpenSS7是由OpenSS7公司主导下开发的一个支持七号信令(SS7)和SIGTRAN的开源协议栈项目。该项目开始于1996年,它实现了ITUQ.700系列建议中的七号信令系统。随着VOIP和软交换的兴起,OpenSS7的焦点集中在SIGTRAN协议的实现上(SIGTRAN可以看作是SS7的NGN版本)。其实,OpenSS7其实并不仅仅局限七号信令,ISDN和软交换的一系列信令都在它的考虑范围之内。
关于OpenSS7的技术细节,请参考拙作《七号信令开源项目-OpenSS7体系结构》
注意,OpenSS7不属于免费软件,如果需要将OpenSS7用于商业用途的话,需要向OpenSS7公司缴纳一定的许可费用。
开源的SIP协议栈-Vocal、OSIP
SIP是由IETF提出的一套用户IP电话的通信协议,它用来建立,改变和终止基于IP网络的用户间的呼叫。该协议建立在SMTP(简单邮件传送协议)和HTTP(超文本传送协议)等协议基础之上。为了提供电话业务它还需要结合其他几种不同的标准和协议:特别是需要确保传输(RTP),与当前电话网络的信令互连,能够确保语音质量(RSVP),能够提供目录(LDAP),能够鉴权用户(RADIUS)等等。
由于是计算机界提出的一项电话标准,因此它显露出许多计算机业界的许多特点,比如,它尽可能的大量采用现有的协议,而不是重建标准,如HTTP、LDAP、RADIUS等,都是技术成熟、应用广泛的协议标准。其次,就是它的开发较其他协议栈(如它的竞争协议H.323)难度较低,而且,相关的开源项目也比较多,如VOCAL、OSIP都是比较成熟的、可商业化的SIP协议栈。
VOCAL(即Vovida开源通信应用程序库)它是由Vovida社区开发的一套SIP协议栈,OSIP则是由老牌开源社区GNU组织开发的一款SIP协议栈软件,下面对这两个协议栈进行一下简单的比较:
开源的H.323协议栈-OpenH323
H.323和SIP一起,并成VOIP领域的两大标准。不同的是SIP是由计算机界(IETF)定义的,而H.323则由电信界(ITU)定义的。从应用上来说,SIP更适合企业应用,而H.323比较适合电信级应用。从开发的难度来说,H.323远比SIP复杂,如果要从头做起的话,其开发周期将会非常久。不过,有了OpenH323,一切都不一样了,我们完全可以在短期内做出一套电信级的VOIP系统。
OpenH323是通信领域名气最大的一款开发源代码的通信协议栈软件,该项目是澳大利亚的EquivalencePtyLtd公司组织开发的,它从1998 年开始,到了2000 年底基本的H.323 协议框架已经实现,主要是免费面向所有想从事VOIP 和网络视频传输的软件开发商使用,这个协议库是完全符合H.323 协议的,能和任何符合该协议的软件进行视频和语音的通讯,例如Microsoft 的NetMeeting等。很多商业的H.323协议栈就是基于OpenH323基础开发的。
OpenH323的优势在于它比较完整的实现了ITU关于H.323的建议,可以实现基于IP的各种电话应用,包括语音、视频、会议以及传真等。通过该协议栈,我们很容易的就可以定制出自己需要的包括终端、网守、网关或MCU等各种H.323实体。而且,它不需要任何付费,对商业用户和个人开发者来说都具有很大的诱惑力。
OpenH.323支持但前流行的各种平台,包括Linux、Windows和MacOS和Unix,编程语言采用了面向对象的C++语言。关于它的具体技术细节,请参考卢政的《如何成功的运用OPENH323来开发商业的H.323协议栈》。
总结
通信软件开源的目的之一就是降低通信技术的门槛,普及通信知识,让通信行业的一些核心技术能被更多的人掌握、运用,同时,也可以减少一些通信项目重复开发的投入,因此,意义非常重大。但是,目前通信行业的开源项目数量有限,能真正被人利用的更是屈指可数。因此,需要有更多的通信专用人士投身这一领域,使开源思想在通信领域也能落地生根。
来源:通信世界