linphone是一款跨平台的给予SIP协议网络电话开源框架支持Android、IOS、Windows等平台。
一、linphone源码下载
源码有多平台版本可供下载,官方网址:
linphone-desktop:
git clone git://git.linphone.org/linphone-desktop.git –recursivelinphone-iphone:
git clone git://git.linphone.org/linphone-iphone.git –recursivelinphone-android:
git clone git://git.linphone.org/linphone-android.git –recursivelinphone-windows10:
git clone git://git.linphone.org/linphone-windows10.git –recursivelinphone-bb10:
git clone git://git.linphone.org/linphone-bb10.git –recursive
但上面下载方法非常慢,而且可能中途下载失败。
我的下载方式是番习习土啬,大家都懂的。我的是用VPS+shadowsocks-Qt5+proxychains 。
关于VPS+shadowsocks-Qt5+proxychains的内容不是本文重点,所以不在这里介绍,有兴趣的可以自行搜索。
但遇到的问题是即使是使用番习习土啬,虽然会出现下载失败。所以,下面以下载linphone-android源码为例介绍下下载失败解决方法。
用代理下载:
proxychains git clone git://git.linphone.org/linphone-android.git --recursive
二、linphone源码下载失败解决方法
1)下载失败问题1之正常模块如ffmpeg:
解决方法1:
依次执行下面命令,可继续接着下载,类似断点续传的意思:
git submodule sync
git submodule update --init --recursive
如果用的是VPS+shadowsocks-Qt5+proxychains,记得加下proxychains,加快下载速度。
proxychains git submodule sync
proxychains git submodule update --init --recursive
2)下载失败问题2之特殊模块openh264:
解决方法2:
下载openh264模块(https://github.com/cisco/openh264)git地址,与其他大部分模块git地址是linphone官方git://git.linphone.org/XXX.git的不同,用代理的方式无法下载。所以,此时,用上面解决方法1无论尝试多少次结果都是下载失败。因此,下载openh264模块不走代理,直接用git clone:
git clone https://github.com/cisco/openh264
3)下载失败问题3之特殊模块mswebrtc:
解决方法3:
模块mswebrtc有点特殊,因为用从git://git.linphone.org/mswebrtc.git地址下载submodules/mswebrtc后,会接着从git://git.linphone.org/webrtc.git地址下载其子模块submodules/mswebrtc/webrtc,但因为没有这个子模组路径,所以无法clone。
因为mswebrtc文件夹里的webrtc内容下载失败,但其他内容是全的,所以,只要把缺少的webrtc内容下载下来就好了。
git clone git://git.linphone.org/webrtc.git
或者走代理,速度快
proxychains git clone git://git.linphone.org/webrtc.git
4)下载失败问题4之分模块下载:
下载失败一般都是submodules中模块下载中断,所以比较通用的解决方案是一个模块一个模块的下载,缺哪个下哪个。各模块的下载地址可以在.gitmodules文件中找到。如模块ffmpeg下载失败,则可以通过下面命令挽回:
git clone git://git.linphone.org/ffmpeg.git submodules/externals/ffmpeg --recursive
或者走代理,速度快
proxychains git clone git://git.linphone.org/ffmpeg.git submodules/externals/ffmpeg --recursive
下面是linphone-android中.gitmodules文件内容:
[submodule “submodules/linphone”]
path = submodules/linphone
url = git://git.linphone.org/linphone.git
[submodule “submodules/externals/gsm”]
path = submodules/externals/gsm
url = git://git.linphone.org/gsm.git
[submodule “submodules/externals/speex”]
path = submodules/externals/speex
url = git://git.linphone.org/speex.git
[submodule “submodules/externals/ffmpeg”]
path = submodules/externals/ffmpeg
url = git://git.linphone.org/ffmpeg.git
ignore = dirty
[submodule “submodules/externals/x264”]
path = submodules/externals/x264
url = git://git.linphone.org/x264.git
ignore = dirty
[submodule “submodules/msx264”]
path = submodules/msx264
url = git://git.linphone.org/msx264.git
[submodule “submodules/externals/opencore-amr”]
path = submodules/externals/opencore-amr
url = git://git.linphone.org/opencore-amr.git
ignore = dirty
[submodule “submodules/msamr”]
path = submodules/msamr
url = git://git.linphone.org/msamr.git
[submodule “submodules/externals/libvpx”]
path = submodules/externals/libvpx
url = git://git.linphone.org/libvpx.git
ignore = dirty
[submodule “submodules/bzrtp”]
path = submodules/bzrtp
url = git://git.linphone.org/bzrtp.git
[submodule “submodules/externals/srtp”]
path = submodules/externals/srtp
url = git://git.linphone.org/srtp.git
[submodule “submodules/mssilk”]
path = submodules/mssilk
url = git://git.linphone.org/mssilk.git
[submodule “submodules/bcg729”]
path = submodules/bcg729
url = git://git.linphone.org/bcg729.git
[submodule “submodules/belle-sip”]
path = submodules/belle-sip
url = git://git.linphone.org/belle-sip.git
[submodule “submodules/externals/antlr3”]
path = submodules/externals/antlr3
url = git://git.linphone.org/antlr3.git
ignore = dirty
[submodule “submodules/externals/libxml2”]
path = submodules/externals/libxml2
url = git://git.gnome.org/libxml2.git
ignore = dirty
[submodule “submodules/externals/libupnp”]
path = submodules/externals/libupnp
url = git://git.linphone.org/libupnp.git
[submodule “submodules/externals/opus”]
path = submodules/externals/opus
url = git://git.linphone.org/opus.git
ignore = dirty
[submodule “submodules/mswebrtc”]
path = submodules/mswebrtc
url = git://git.linphone.org/mswebrtc.git
[submodule “submodules/msopenh264”]
path = submodules/msopenh264
url = git://git.linphone.org/msopenh264.git
[submodule “submodules/externals/openh264”]
path = submodules/externals/openh264
url = https://github.com/cisco/openh264
ignore = dirty
[submodule “submodules/mscodec2”]
path = submodules/mscodec2
url = git://git.linphone.org/mscodec2.git
[submodule “submodules/bctoolbox”]
path = submodules/bctoolbox
url = git://git.linphone.org/bctoolbox.git
[submodule “submodules/externals/mbedtls”]
path = submodules/externals/mbedtls
url = git://git.linphone.org/mbedtls.git
ignore = dirty
[submodule “submodules/cmake-builder”]
path = submodules/cmake-builder
url = git://git.linphone.org/linphone-cmake-builder.git
[submodule “submodules/externals/bv16-floatingpoint”]
path = submodules/externals/bv16-floatingpoint
url = git://git.linphone.org/bv16-floatingpoint.git
[submodule “submodules/belr”]
path = submodules/belr
url = git://git.linphone.org/belr.git
[submodule “submodules/belcard”]
path = submodules/belcard
url = git://git.linphone.org/belcard.git
[submodule “submodules/bcunit”]
path = submodules/bcunit
url = git://git.linphone.org/bcunit.git
[submodule “submodules/externals/vo-amrwbenc”]
path = submodules/externals/vo-amrwbenc
url = git://git.linphone.org/vo-amrwbenc.git
[submodule “submodules/externals/codec2”]
path = submodules/externals/codec2
url = git://git.linphone.org/codec2
[submodule “submodules/externals/libjpeg-turbo”]
path = submodules/externals/libjpeg-turbo
url = git://git.linphone.org/libjpeg-turbo.git
[submodule “submodules/mediastreamer2”]
path = submodules/mediastreamer2
url = git://git.linphone.org/mediastreamer2.git
[submodule “submodules/oRTP”]
path = submodules/oRTP
url = git://git.linphone.org/ortp.git
[submodule “submodules/bcmatroska2”]
path = submodules/bcmatroska2
url = git://git.linphone.org/bcmatroska2.git
参考:
http://blog.csdn.net/garfield38/article/details/53402623