相當一段時間都在關注voip的事情,浪費了不少時間,現在把現階段的結論寫下來。
目前擁有voip功能的IM種類繁多,區分它們的主要是協議。msn, qq, Gtalk, skype, wengo, ekiga等等都是基于不同的協議。這些協議又可以分為兩大類:標準開放的協議(Open Protocol)和商業封閉的協議(Proprietary Protocol)。諸如qq,msn,yahoo,skype之類的都是各自為營的封閉協議,而Gtalk, openwengo, ekiga的協議則是開放的。比較著名的開放協議是Jabber.org的XMPP,還有一個是Simple Initialization Protocal(SIP)。Gtalk用的便是XMPP。
各個IM軟件之間的互通問題,本質上是個商業問題,不以user的意志為轉移的。每一個IM公司都不會輕易將自己的用戶資源拱手相送。原來總夢想著有一天IM們互通,現在開來這將是一個持久戰,除非有全新的技術來改變這個行當。而且,正是因為互通遙遙無期,才會刺激gaim, meebo等的生機。
因此,基于文本的互通都是問題,就不奢談audio和video了。
最近我全面使用xubuntu了,這使得我不得不解決和windows用戶的語音視頻聊天問題。搜索了很久,試用了Skype, Jabbin, Tapioca, aMSN, Wengophone, Ekiga, Gaim等等,沒有萬全之策。這其中的各種問題就不多說了,結論是目前Skype+aMSN是解決linux用戶語音視頻聊天的最好手段。
gaim是個好東東,但它的問題在于開放進度太緩慢,現在為止還沒有語音視頻的影子。它的主要開發者被google雇用了,背后也許隱藏著商業目的,使得可以實現的東西遲遲不去實現。不過這也是我個人猜測而已。OpenQQ被Google Code Camp的參與者加入了Gaim官方的發行版怎么說也是一個好的方向吧。
這是一家法國電信巨頭,它贊助了openwengo的項目,這個項目采用SIP協議實現了全面的語音視頻功能,并且還把libgaim借過來用,也就是說gaim能干的活它也基本上都能干。不知道這個項目的核心程序員是不是法國的,太浪漫了點,2.0的bug一大堆,真是不應該發布final release的。還好現在在準備2.1,已經發布了rc1和rc2,應該說還是有進步的,期待2.1的final釋放出來。對wengo還是比較看好的,只要它們能發布一個穩定的版本。另外,有興趣可以去看看wengovisio,這是目前大概唯一一個基于web的語音視頻聊天gadget了,它可以嵌入你的blog,讓訪問頁面的人隨時可以和你進行語音視頻聊天。不過由于服務器在法國,這個延時還是不小的。
google很聰明阿,它05年就說要推出linux版,不過現在還沒有影子,很明顯不是它做不到,而是它另有打算。剛剛發布的gtalk gadget基于flash9,目的很明顯,基于web的解決方案天然就是跨平臺的。我們可以在gtalk gadget里面看見"call"的按鈕,雖然現在還不好用,但是據這個項目的負責人說,正在努力實現基于flash的語音功能。這背后的一個重要事實是adobe大幅修改了flash8的結構,正在為基于flash的voip和p2p服務提供了堅實基礎。
Jabbin是一個基于xmpp的項目,我看它的主要目的也就是和googletalk通通。它實現了語音互通,但是質量實在是不敢恭維,大概和當年qq剛開始采用語音功能的時候效果差不多,雜音很大。這里不得不說的是,gtalk雖然采用了開放的協議xmpp,但是gtalk本身是不開源的,它的核心之一的音頻處理算法dsp是個大亮點,個人感覺音質甚至比skype都好。在這點上Jabbin顯的很無力,我想這也是Jabbin聲音不好的關鍵問題。
skype很成功,可能也是目前解決linux-win之間語音聊天的最好辦法。它是免費的商業軟件,協議是proprietory的。原來聽說國內有人用逆向工程破解了skype的協議,不過現在好像也沒有下文,不知道是不是炒作。skype目前的linux版本還不支持視頻,所以還要找個能視頻的東東,也就是下面要說的amsn。
amsn破解了msn的專署協議,實現了和msn的文本及視頻通信,但是卻放棄了聲音,為什么呢?因為微軟在msn中的聲音編碼很復雜,amsn的開發者們沒有耐心和信心做了。所以說,現在amsn還是有點跛腳。好在它的視頻支持的很好,很流暢,大概使用了STUN的緣故,破網關的能力也很強,根據我的經驗,在貓+hub+無線路由器這樣的網絡中也能成功連接出去,甚至比live messenger都好。
Tapioca提出了一套基于xmpp的框架,和telephony協議也有關系,具體什么關系我也不清楚,跟jabbin好像又不一樣,總之目前還不算成熟。Ekiga就是原來的Gnomeeting,基于SIP的,沒怎么試過,傳說可以和windows netmeeting互通。
結論是目前Skype+aMSN是解決linux用戶語音視頻聊天的最好手段。
<07.06.21 補充>最近用了一下Gizmo,是個免費商業軟件。gizmoproject和語音路由提供商gtalk2voip.com合作,現在能夠和google talk進行通話了,效果已經很不錯了。同時通過gtalk2voip的語音中轉服務,gizmo據稱還可以和msn和aim的用戶語音,不過沒有試成功過。