Monday, August 28, 2006

GNU的VoIP架構慢慢成型

如果你是Stallman的信徒的話
你一定會常常使用GNU的軟體
雖然大多數的營利單位(好啦...企業...公司...隨便你要如何稱呼)都不喜歡stallman的主張
但是....管他的....反正營利單位賺錢獲利的也不會是小小的工程師
因此我還是很愛GNU的軟體

近幾年來VoIP似乎慢慢從最初的神話變成可能是生活中的科技
因此各大廠商都想要吃這塊肥肉
我想GNU當然不會讓專有軟體橫行霸道
因此GNU Telephony就出現啦

事實上GNU Telephony並不是一個單獨的project
而是將一個VoIP需要的軟體library建構起來
而且更令人激賞的是
他都是用C++的架構來完成所有的library
他可以細分為

GNU Common C++
這個project用來處理一些C++中沒有去定義的行為,譬如說thread的行為、socket、
XML parsing...等等,雖然說有一些其他的project可能以後會變成標準(譬如boost裏面
的thread類別就可能會變成C++ thraed的標準....個人猜測),但是GNU還是把很多C++的
缺憾都給補齊,也是個很棒的project

GNU ccRTP
看名稱也知道他是一個RTP的實現,雖然目前也有不少rtp library(JRTPLIB與oRTP),
但是都有點年紀了,不過我沒試過ccRTP,等試過後在跟大家報告

GNU ccAudio2
我想VoIP有一個很重要的便是audio codec的部份,這個project當然用來處理這個領域
他是一個很棒的project,他建構了一個抽象的基本類別庫,不但可以將codec給分離開
讓你可以自己新增codec進去,他還是一個跨平台的架構(win32用LoadLibrary的機制,
而linux用dlopen...mac也有...不過...ㄏㄏ...看無),在linux上面目前的缺點是他的audio device
現在還是OSS device(不是我看不起OSS...不習慣用啦),不過你當然可以繼承AudioDivice來
作自己的環境....

GNU oSIP與libeXosip
SIP的library,一個是C,一個是他的C++ wrapper,這個project應該已經被大量使用了吧

當然,GNU也有開始VoIP server的project,不過那就是屬於利用這些基本架構實現的部份
如果你對VoIP很有興趣,如果你信奉GNU的信念(ㄏㄏ,營利單位最討厭這些信念),你可以
找個時間好好看看這些project,或許你會從中找到不少樂趣歐。

No comments: