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; }