我們把通訊類的軟體簡單的進行一下劃分:
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協議棧》。
總結
通訊軟體開源的目的之一就是降低通訊技術的門檻,普及通訊知識,讓通訊行業的一些核心技術能被更多的人掌握、運用,同時,也可以減少一些通訊項目重複開發的投入,因此,意義非常重大。但是,目前通訊行業的開源項目數量有限,能真正被人利用的更是屈指可數。因此,需要有更多的通訊專用人士投身這一領域,使開源思想在通訊領域也能落地生根。
來源:通訊世界