相当一段时间都在关注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的用户语音,不过没有试成功过。