[b]Project and Source Code Location[/b]
[url]http://code.google.com/p/libjingle/[/url]
[b]Developer Guideline Location[/b]
[url]http://code.google.com/apis/talk/libjingle/[/url]

为什么研究这个呢? 出于下面的考虑:
[list]
[*]现在XMPP协议的一个很重要的方面是语音/视频聊天和文件传输, 而其对应的XMPP扩展协议主要是Jingle (XEP-0166 [url]http://xmpp.org/extensions/xep-0166.html[/url])以及其它一系列基于Jingle的协议.
[*]Jingle扩展协议是Google贡献给XSF基金会的, 目前是draft状态, 还没有正式lock down.
[*]Goolge Talk客户端的语音/视频聊天和文件传输的协议使用的是类似于Jingle的协议, 但和Jingle协议有所区别, 二者不兼容. Google把这个协议的实现也开源了, 就是[b]libjingle[/b]. Google几乎是在把libjingle开源的同时向XSF提交Jingle协议的.
[*]所以, XMPP Jingle协议和libjingle协议类似, 但不兼容.目前很多的XMPP客户端(比如Spark/Psi/Pidgin等)都基本实现了Jingle协议, 但Google Talk客户端还用的是libjingle里的协议. 这意味着这些XMPP客户端不能和Google Talk客户端进行文件传输.
[*]目前主要的public的XMPP Service Providr还是Goolge Talk, 所以如果要开发一个有竞争力的XMPP客户端 (尤其是在Android平台上), 除了实现标准的Jingle协议外, 最好也实现libjingle里的协议以便能够与Google Talk客户端进行文件传输.
[*]libjingle是用C++开发的, 所以如果想把它porting到使用Java语言的Android平台上, 还是需要对其代码进行一些研究的.
[/list]
由于libjingle涉及到的东西很多, 网上的资料不不少, 而且libjingle也确实和XMPP不是完全一样, 所以这里将专门创建一个"Libjingle"的分类.