Libj ingle - Google Talk Voice及 P2P 的 交互操作函数库
Libjingle是Google 提供的C++组件集,它为Google Talk的点对点通讯与语音呼叫 功能提供交互操作性。
组件包包括了Jingle和Jingle-Audio的google实现的 源代码,它们是XMPP 标准的 推荐扩展。
Google的源码发布基于Berkeley协议,也就是说你可以把它们合并到商业或非商业的软件中并发布。
准备:
1、 python 2.7.1
2、libjingle库
3、 swtoolkit
4、 srtp
5、scons
6、vs 2010
7、windows server 2008 r2 [这是我的系统,其他系统没有测试]
编译:
按照ligjingle文档上的说明配置环境,vs 2010命令行编译,
也可以按照libjingle中,main.scons说明生成vs工程,然后打开工程文件编译
问题:
1、 TypeError: object of type 'Dir' has no len():
python版本的问题,可以换一个版本
2、 ligjingle默认scons文件没有对32位,64位进行设置(0.5.1有此问题,0.5.2已经没有此问题了)
修改 talk目录下的main.scons,root_env加入TARGET_ARCH = 'x86',
root_env
=
Environment(
tools
=
[
'
component_bits
'
,
'
component_setup
'
,
'
replace_strings
'
,
'
talk_noops
'
,
#
'
talk_linux
'
,
],
BUILD_SCONSCRIPTS
=
components,
DESTINATION_ROOT
=
'
$MAIN_DIR/build
'
,
CPPPATH
=
[
'
$OBJ_ROOT
'
, # generated headers are relative to here
'
$MAIN_DIR/..
'
, # TODO: how can we use GOOGLECLIENT instead
?
],
CPPDEFINES
=
[
# Temp flag
while
porting to hammer.
'
HAMMER_TIME=1
'
,
'
LOGGING=1
'
,
# Feature selection
'
FEATURE_ENABLE_SSL
'
,
'
FEATURE_ENABLE_VOICEMAIL
'
,
'
FEATURE_ENABLE_PSTN
'
,
'
HAVE_SRTP
'
,
],
TARGET_ARCH
=
'
x86
'
,
)
3、 修改 talk目录下的main.scons,注释掉警告视为错误开关
# '/WX', # warnings are errors
4、 修改 talk目录下的main.scons,编译vs工程文件需,把注释掉的放开
# Solution and target projects
s = vs_env.ComponentVSSolution(
# 'libjingle', # Please uncomment this line if you build VS proj files.
['all_libraries', 'all_programs', 'all_test_programs'],
projects = [p],
)
改为
# Solution and target projects
s = vs_env.ComponentVSSolution(
'libjingle', # Please uncomment this line if you build VS proj files.
['all_libraries', 'all_programs', 'all_test_programs'],
projects = [p],
)
5、生成vs工程文件, visual studio cmd 进入talk目录下,执行
hammer --mode=all --vsproj
6、为了去掉下面的warning, 可以安装pywin32:
"
Warning: Unable to load win32file module; using copy instead of hard linking for env.Install(). Is pywin32 present?
"
pywin32 - Python Extensions for Windows