MyJingle 

1.MyJingle简介 MyJingle只是一个LibJingle的Win/MFC的DEMO.LibJingle又是什么?LibJingle是GOOGLE的一个开源项目.用于GOOGLE TALK的语音和P2P库.

简单来说,MyJingle利用LibJingle和一个叫Speex的音频编码,组成一个P2P的语音通讯软件.当然他还依赖XMPP作为服务端进行一些连接通讯.详细介绍可以上官方网站.

MyJingle:http://www.bluehands.de/software/beat/myjingle/

 LibJingle:http://code.google.com/apis/talk/index.html

2.准备工作 安装VC 8(在VS2005里面). 安装Microsoft DirectX SDK (February 2006) 安装Microsoft Platform SDK for Windows Server 2003 R2 3.设置,编译 用VC打开MyJingle.sln,需要先设置两个lib和inclue 工具-选项-项目和解决方案, 选择"包含文件"添加 E:\Microsoft DirectX SDK (February 2006)\Include E:\Microsoft Platform SDK for Windows Server 2003 R2\Include 选择"库文件"添加 E:\Microsoft DirectX SDK (February 2006)\Lib\x86 E:\Microsoft Platform SDK for Windows Server 2003 R2\Lib

好了,现在可以编译通过了. 但是会提示LIBCMT库冲突. 然后在MyJingle项目右键-属性-配置属性-链接器-输入,"忽略特定库"那里输入LIBCMT

4.修改 MyJingle只能连上Gmail,其他XMPP的服务端连不上,需要修改一下代码.

修改  saslplainmechanism.h文件

  virtual XmlElement * StartSaslAuth() {  std::string  sUser;     int i = user_jid_.Str().find("@");     sUser = user_jid_.Str().substr(0,i);

    // send initial request     XmlElement * el = new XmlElement(QN_SASL_AUTH, true);     el->AddAttr(QN_MECHANISM, "PLAIN");

    FormatXmppPassword credential;     credential.Append("\0", 1);     //credential.Append(user_jid_.Str());  credential.Append(sUser);     credential.Append("\0", 1);     credential.Append(&password_);     el->AddText(Base64EncodeFromArray(credential.GetData(), credential.GetLength()));     return el;   }