linphone语音版移植
Linphone探索:1.Linphone官方源码探究
Linphone探索:1.Linphone官⽅源码探究项⽬地址:1 . org.linphoneAboutFragment.java:关于界⾯⽚段。
AccountPreferencesFragment:⽤户参数界⾯⽚段。
BandwidthManager:带宽管理器。
更新当前profile的带宽设置,当带宽不⾜以⽀持视频时,设置⾳频带宽最⼤为40kbits/s,当带宽⾜以⽀持视频时不限制⾳频最⼤带宽。
BluetoothManager:蓝⽛管理器。
BootReceiver:继承⾃BroadcastReceiver的类,⽤于在设备启动时⾃动启动LinphoneService。
CallActivity:通话界⾯。
CallAudioFragment:通话⾳频界⾯。
CallIncomingActivity:来电界⾯。
电话的接听,挂断。
当前没有活动电话的情况下:可以通过按键挂断和接听来电。
通过LinphoneCoreListenerBase类,复写callState(电话⽅法)监听liphone内核电话状态,如果电话已经被挂断(分两种情况,对⽅挂断,本⽅挂断)则挂断电话。
如果linphone内核已经检测到⾳频流(这⾥是铃声的流)则使linphone内核打开⼿机的喇叭,此时来电铃声就会播放。
CallManager:通话管理。
inviteAddress:向某个地址发起invite 请求reinviteWithVideo:向当前的⾳频通路发起视频的invite请求,若当前带宽太窄或当前通路已经有视频流,这不发起invite请求。
reinvite:根据当前的profile向当前通路发起invite请求。
updateCall:改变当前视频通话的视频尺⼨,调⽤该⽅法将会在重新建⽴流媒体通道和重新设置电话参数时重新打开摄像头。
CallOutgoingActivity:拨出电话界⾯。
CallVideoFragment:视频通话界⾯。
一触挨网 emotionally intelligent robot音频配置手册说明书
One Touch with Hub 用户手册单击这里以访问本文档的最新在线版本。
您还将找到最新的内容,以及可扩展的说明、更轻松的导航和搜索功能。
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contents1欢迎使用包装内容最低系统需求视图2入门教程连接电源连接到电脑设置 One Touch with Hub 3使用 Toolkit 来启用安全功能等启用安全功能开始备份计划(仅限 Windows )设置镜像文件夹4格式化和分区(可选)选择文件系统格式格式化说明5从您的计算机安全移除设备Windows Mac 6常见问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 端口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 操作系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 最低可用磁盘空间. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 正面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 返回. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 在这里开始. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 注册您的设备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 下载 Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 安装 Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 同时兼容 Windows 和 Mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 针对 Windows 优化性能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 针对 macOS 优化性能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 了解更多. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 通过 Finder 窗口退出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 通过桌面退出444444445667888991111111112121212121313141414141415. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .全部用户Windows Mac 7Regulatory Compliance China RoHS Taiwan RoHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问题:我的文件传输速度太慢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问题:我的计算机只有 USB-C 端口. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问:我必须为我的 USB 设备使用 USB 集线器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问题:所提供的 USB 连接线太短. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问题:我收到文件传输错误消息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问题:计算机上没有出现硬盘的图标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 问题:硬盘的图标没有出现在我的桌面上15151515161616161717181818欢迎使用包装内容®Seagate One Touch with Hub电源适配器 (18W)USB 3.0 连接线(USB Micro-B 转 USB-A)快速入门指南最低系统需求端口可将 Seagate 设备连接到配备 USB-A 端口的计算机。
linphone移植到QQ2440工作日志
首先下载的包有:linphone 2.0.1 ,alsa-lib-1.0.19 ,libogg-1.1.3 ,Libosip2-3.0.3 ,ncurses-5.6 ,readline-5.2 ,speex-1.2beta3 ,libeXosip2 -3.0.3-2#export PATH=$PATH:/usr/local/arm/3.4.1/bin 我的工具连的bin位置#export LD=/usr/local/arm/3.4.1/bin/arm-linux-ld#export LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib#export ARM_INSTALL_TREE =/root/armbuild 做为配置和安装的路径A)#cd /ncurses-5.6#./configure --prefix=/root/armbuild --host=arm-linux --with-gnu-ld –disable-static --with-sharedmakemake installB)#cd /readline-2.0.1#./configure --prefix=/root/armbuild --host=arm-linux --with-gnu-ld --disable-staticmakemake installC) 交叉编译 libosip2-2.2.2#cd libosip2-2.2.2 //到解压后的 libosip 目录下,以下同#./configure --prefix=/root/armbuild --host=arm-linux --with-gnu-ld --disable-static#make //编译#make install //安装// --prefix=/... :指定文件编译安装目录//--host=..... :指定编译工具,默认的为gcc,此处为arm-linux(编译到arm上用的)//--disable-static :禁止静态库(.a)链接,编译生成动态库(.so)D) #cd / libeXosip2-3.0.3-2#./configure --prefix=/root/armbuild --host=arm -linux --with-gnu-ld --disable-static CFLAGS=-I$ARM_INSTALL_TREE/include LDFLAGS=-L$ARM_INSTALL_TREE/ libmakemake installE)cd /libogg-1.1.3#./configure --prefix=/root/armbuild --host=arm-linux --with-gnu-ld --disable-static#make#make installF)cd / speex-1.2beta3#./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static --enable-arm-asm CFLAGS=-I$ARM_INSTALL_TREE/includeLDFLAGS=-L$ARM_INSTALL_TREE/lib#make#make installG)#cd /alsa-lib#./configure --prefix=/root/armbuild --host=arm-linux --with-gnu-ld --disable-static#make#make installH)#rm -f $ARM_INSTALL_TREE/lib/*.la(如果这一步make时报错,请再执行G 步骤一遍)#export PKG_CONFIG_PATH=/root/armbuild/lib/pkgconfig#export PKG_CONFIG=/root/armbuild/bin/pkg-config#cd /linphone#./configure --prefix=/root/armbuild \--host=arm-linux \--disable-static--with-osip=$ARM_INSTALL_TREE \--with-readline=$ARM_INSTALL_TREE\--includedir=$ARM_INSTALL_TREE/include \--enable-gtk_ui=no \--enable-console_ui=yes \--disable-video \SPEEX_CFLAGS="-I$ARM_INSTALL_TREE/include" \SPEEX_LIBS="-L$ARM_INSTALL_TREE/lib -lspeex -lspeexdsp" \LDFLAGS="-L$ARM_INSTALL_TREE/lib" \LIBS="-leXosip2 -losip2 -losipparser2" \CFLAGS="-I$ARM_INSTALL_TREE/include"#make#make install。
linphone 工作原理
linphone 工作原理Linphone is an open-source Voice over Internet Protocol (VoIP) application that allows users to make voice and video calls over the internet. It works by utilizing various protocols such as SIP (Session Initiation Protocol) and RTP (Real-time Transport Protocol) to establish and manage communication sessions. When a user initiates a call, Linphone sends a SIP INVITE message to the recipient's device, which includes information about the call such as the caller's IP address and the type of media (audio or video) being requested. Once the call is accepted, Linphone uses RTP to transmit the voice and video data between the caller and recipient. The application also includes features such as call encryption, echo cancellation, and multi-platform compatibility, making it a popular choice for individuals and businesses looking for a secure and reliable communication solution.中文翻译:Linphone 是一款开源的互联网电话应用程序,允许用户通过互联网进行语音和视频通话。
linphone总结
Linphone总结一、Linphone依赖库简介及移植:用到的开源库简介:AlsaALSA是Advanced Linux Sound Architecture,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。
在2.6系列内核中,ALSA已经成为默认的声音子系统。
Alsa的主要功能是从音频设备中读数据或向播放设备写数据,还可以做一些音频处理,如重采样等。
OsipLibosip2 SIP协议栈的简单实现。
libexosip2对libosip2 的调用进行封装,隐藏了多媒体会话建立过程中SIP 的细节。
ffpmegffmpeg是一套录制,转换各种音视频各式的工具集,也提供SDK的codec接口。
主要包括ffmpeg ffplay ffserver libavcodec libavformat,其中很多编解码库依赖于第三方,比如xVid lampMP3 等等。
ffmpeg的编译大全oggOgg全称应该是OGGVobis(oggVorbis)是一种新的音频压缩格式,类似于MP3等的音乐格式。
Ogg是完全免费、开放和没有专利限制的。
OggVorbis文件的扩展名是.OGG。
Ogg文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或播放器。
SpeexSpeex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。
Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛。
另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势。
同时,Speex还是GNU 工程的一部分,在改版的BSD协议中得到了很好的支持。
Speex是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的。
它的特点有:■窄带(8kHz),宽带(16kHz)和超宽带(32kHz)压缩于同一位流。
linphone-android-工程解读
LinphoneLauncherActivity 是APP的入口组件,在这个组件里,它会启动LinphoneService这个后台服务,然后不断地判断这个后台服务是否已经启动完毕,如果已经启动完毕后,才让APP进入直接的功能组件LinphoneActivity。
LinphoneService是标准的android后台服务,这个后台服务非常的关键,它需要完成的工作包括以下的内容。
加载APP需要使用的资源,启动LinphoneManager这个APP的全局管理器,LinphoneManager 这个全局管理器会一方面管理LinphoneService 的实例,另一方面管理LinphoneCore这个核心实例,同时生成目前需要处理的事件通知的LinphoneCoreListenerBase实例并注册到LinphoneCore这个核心实例的事件监听器中。
目前的LinphoneCoreListenerBase 实例只监听callState,globalState,registrationState这三个事件。
如果这个时候有电话呼入,那么callState事件触发,callState事件当中state会是LinphoneCall.State.IncomingReceived,APP需要切换到电话呼入的操作界面。
registrationState这个事件反馈的是用户的SIP账号到SIP服务器的注册状态,是成功注册还是注册失败等。
LinphoneManager实现了LinphoneCoreListener, LinphoneChatMessage.LinphoneChatMessageListener这两个接口的部分方法,负责系统需要使用的资源的管理与初始化,管理着LinphoneCore的实例,负责了LinphoneCore的初始化和它的整个生命周期,同时又响应接收到文件消息与文件消息的响应,感觉它的整体职责是有点混乱的,可能作者开始是把它作为全局的统一资源管理器的,可是后来开发着开发着就什么东西都往里面放,就成了这样了。
linphone用法
linphone用法
Linphone是一款开源的VoIP软件,它可以让用户进行语音通话、视频通话和发送消息。
它支持多种操作系统,包括Windows、MacOS、Linux、Android和iOS。
下面我将从安装、基本功能和高级功能几个方面来介绍Linphone的用法。
安装:
你可以从Linphone的官方网站或者应用商店下载并安装适合你设备的版本。
安装完成后,你需要创建一个账户,这个账户可以是SIP账户或者其他支持的VoIP服务提供商的账户。
基本功能:
一旦你登录了你的账户,你就可以开始使用Linphone了。
你可以通过Linphone拨打其他VoIP用户或者拨打普通电话号码。
你还可以发送消息,进行视频通话等。
Linphone还支持会议通话和文件传输等功能。
高级功能:
Linphone还有一些高级功能,比如支持高级音频编解码器、音频和视频录制、音频和视频会议等。
它还支持多语言界面和多种主题风格,可以根据个人喜好进行定制。
总的来说,Linphone是一款功能丰富、跨平台的VoIP软件,用户可以通过它实现多种通讯方式。
希望这些信息对你有所帮助。
VoIP技术与Linphone编译
20.3.1 ICT(Invite Client (outgoing) Transaction)状态机
在libosip源码目录下的ICT状态机文件为ict_fsm.c,数 组ict_transition[11]给定了各个状态接收事件的各种事务处 理情况。
20.3.2 NICT(Non-Invite Client (outgoing) Transaction)状态机
20.3.4 NIST(Non-Invite Server (incoming) Transaction)状态机
NIST状态机整个实现过程在nist_fsm.c文件中定义,在 数组transition_t nist_transition[10]中定义了状态机的初始状 态以及初始状态接收的事件,各个事件函数表示了状态机处 理该事件的跳转情况。
函数osip_body_to_str()与函数osip_body_parse()对应, 用于将body中的body字段的内容复制到参数dest中。
20.4.5 克隆函数osip_body_clone()
函数osip_body_clone()将body复制给dest。
20.4.6 oSIP解析器分类
20.5 oSIP事务层
SIP是一个基于事务处理的协议:部件之间的交互是通 过一系列的消息交换所完成的。特别是,一个SIP 事务由一 个单个请求和这个请求的所有应答组成,这些应答包括了零 个或者多个临时应答以及一个或者多个终结应答。
20.6 SIP建立会话的过程
下面采用序列图的方式表示A和B两个用户间的通过SIP 消息交换来建立会话的过程。A通过B的SIP标志“呼叫”B, 这个SIP标志是统一分配的资源(Uniform Resource Identifier URI)称作SIP URI。它很像一个email地址,典型的SIP URI 包括一个用户名和一个主机名。在这个范例中,SIP URI是 sip:bbb@,是B的SIP服务提供商。A有 一个SIP URI: sip:aaa@。
Linux下软件的安装(包括mplayer、linphone和swf的安装)
• 4.执行解压缩后产生的一个名为configure的可执 行脚本程序。 功能:为随后的编译工作做准备。 命令为: #./configure *如果想把软件安装到指定目录,应该用 #./configure --prefix=/您自己指定的目录
• 5.检查通过后,将生成用于编译的MakeFile文件。 此时,可以开始进行编译了。 命令为: #make
• 2 .由于该文件是被压缩并打包的,应对其解压缩 。 命令为:#tar xvzf filename.tar.gz 如果是filename.tar.bz2格式的,应该是 tar jxvf filename.tar.bz2来解压 其他格式的解压方法
• 3. 通常在解压缩后产生的文件中,有“INSTALL” 的文件。该文件为纯文本文件,详细讲述了该软件 包的安装方法。
*解决方法:重装过fedora10系统,之后再安装 linphone。 *估计原因:安装fedora10的过程中某些选项设 置没有选对,造成linphone运行不起来。
4、linphone安装成功后,能通话,但是没有 声音。
*解决方法:设定声卡。
返回
四、过程中的收获
1、熟悉了Liunx的常用命令; 2、学会了在Linux系统下安装软件的基本方法和技 巧; 3、对Linux的学习决方法
1、mplayer安装完毕后,要找到相应的可执 行文件的路径,才能运行。
*解决方法:修改/etc/profile文件,通过 添加环境变量,将mplayer可执行文件的路径添加 上,之后就不需到其所在路径去执行。
2、安装linphone,在make过程中,会出现 linphone3.2.0/mediastreamer2/src/msconf.c:27 2和274行的SPEEX_PREPROCESS_GET_PSD_SIZE 和SPEEX_PREPROCESS_GET_PSD未定义的错误 。
linphonesdk的使用
linphonesdk的使⽤
获取linphone demo git ⽅式:
git clone git:///linphone-iphone.git —recursive
博主下载获取到的是 build 2.2.6 版本
linphone sdk 包含了众多的静态库⽂件,通过git获取到的linphone sdk 经常性的静态库不全
可以直接去linphone 官⽹下载完整包:
Liblinphone iOS version 2.2.5:
iOS 版本最新位 2.2.5,下载下来sdk 仅仅取⽤ liblinphone-sdk⽂件夹,⾥⾯包含了linphone 项⽬的⼏乎所有静态库⽂件,不过还缺少⼀个静态库⽂件 rfc3951;
可以下载⼀个rfc3951库,地址:
解压后取 src ⽂件夹内容,直接拖拉到项⽬中即可,到此静态库可完成。
(注:这⾥的rfc3951不是.a ⽂件,拉到项⽬中可以直接使⽤,可以⾃⼰借助XCode打包.a⽂件,博主打包好的⽂件⽀持 armv7 i386 x86_64 arm64)
如果需要将linphone sdk 移植到⾃⼰的项⽬中:静态库及franework需要⼀⼀对应添加,多余的.a⽂件不需要。
头⽂件及静态库链接路径寻找需⼀致。
基本可以成功。
完成后需要注意的是,linphone sdk 在模拟器上仅仅⽀持 armv7架构下,真机上是可以使⽤ arm64,⽀持64位,需要添加arm64。
几种开源SIP协议栈对比
几种开源SIP协议栈对比1.PJSIP:PJSIP是一个强大而灵活的开源SIP协议栈,提供了全面的SIP协议支持以及音频、视频、实时通信等功能。
它使用C语言编写,具有跨平台的特性,支持多种操作系统和开发环境,如Windows、Linux、macOS等。
PJSIP提供了简单易用的API,使开发者能够快速构建VoIP应用程序。
2. Linphone:Linphone是一个流行的开源SIP协议栈,支持语音、视频、实时消息等多媒体通信功能。
它使用C语言编写,可跨平台运行于多种操作系统和设备,如Windows、Linux、iOS和Android。
Linphone具有丰富的功能和友好的用户界面,让开发者和用户能够轻松地构建和使用VoIP应用程序。
3. Doubango:Doubango是一个高性能的开源SIP协议栈,专注于提供低延迟和高质量的音频和视频通信服务。
它使用C++语言编写,提供了跨平台的支持,可运行于不同的操作系统和设备。
Doubango提供了可扩展的API,使开发者能够快速构建各种实时通信应用程序。
4. Sofia-SIP:Sofia-SIP是一个轻量级的开源SIP协议栈,专注于提供简单和可移植的SIP协议支持。
它使用C语言编写,具有可扩展性和灵活性,可适应不同的应用需求。
Sofia-SIP支持多种操作系统和开发环境,如Linux、Windows、macOS和iOS等。
5.JsSIP:JsSIP是一个基于JavaScript的开源SIP协议栈,专为Web应用程序而设计。
它使用纯粹的JavaScript语言编写,运行于现代的Web浏览器环境中。
JsSIP提供了易于使用的API,使开发者能够在Web应用程序中集成SIP功能,实现浏览器间的实时通信。
综上所述,开源SIP协议栈提供了各种选择,适用于不同的应用需求和开发环境。
无论是构建VoIP应用程序还是实现WebRTC等实时通信功能,开发者都可以根据自身需求选择适合的开源SIP协议栈来实现他们的目标。
Linphone分析-中文
Linphone分析一 linphone 架构及组成模块 (2)二 linphone 系统框图 (3)三 linphone 中各个模块说明 (3)四 linphone 中数据结构说明 (7)五 linphone 的初始化过程 (7)六 linphone 建立通话过程说明 (10)1 拨号call过程 (10)2 等待响应 (16)3 Answer过程分析 (21)4 关于RTP及音视频流的网络传输 (22)5 总结 (23)七 linphone 会话执行过程log分析 (24)八 linphone 使用参考 (40)岳维功基于linphone-3.3.2版本,新版本linphone-3.4.3支持同时有多路call,所以,相比之前版本会有不少变化。
一 linphone 架构及组成模块Linphone是一款跨平台的可视电话客户端软件,同时支持视频通话功能。
Linphone可以在Linux,windows等主流操作系统平台上运行。
Linphone基于开源软件构建,本身也是开源软件。
Linphone架构中sip协议的处理基于osip以及exosip两个开源库实现,媒体数据的选择整合处理使用mediastream2完成,该软件使用ffmepg、speedx 等多款开源软件完成音视频的编解码,并通过ortp完成基于rtp协议的音视频数据传输。
ortp是一款处理RTP会话的开源软件。
1 整体架构图如下:整个软件分为两层,上层为用户接口前端(user interface frontends),下层为linphone核心引擎(linphone core engine)。
2 功能模块说明:Liblinphone 核心引擎实现了linphone所有的功能函数,而且能够方便的添加音频和视频的呼叫功能。
Liblinphone也提供高层的API,用来初始化,接收或者终止呼叫。
Liblinphone依赖于下面三个组件:1 Mediastreamer2这是一个支持多种平台的轻量级的流技术引擎,主要适合于开发语音和视频电话应用程序。
免费开源的网络电话linphone设置使用voipdoup说明
可以在电脑/苹果/黑莓/安卓系统上使用的linphone
linphone是一款免费开源的支持voipdoup的软件,可以在windows的电脑上使用,也可以苹果电脑、手机及ipad上使用,在黑莓手机,android手机及平板
上使用,下载地址如下:
∙Linphone 3.5.2
∙Linphone for Blackberry 1.0.1
∙Linphone for Android 2.0
∙Linphone for Iphone 2.0
先注册好voipdoup账号待用;
下载安装好后,选择"I already have a SIP accouny"可以开始设置voipdoup账号
∙ username :填voipdoup的账号
∙ Password :填voipdoup密码
∙ Domain:填
也可以在“setting”里选择“SIP account"设置账号。
账号设置好后一般就可以用了,为了在手机上改善通话效果,改一下语音编码为gsm,效果更好。
方法是“setting”--"audio"--只选上“gsm”,其它留空。
android为例,其它的设置差不多:
安装及设置账号如下图:
修改语音编码看下图:。
linphone-android编译过程
编译linphone-android前阵子公司要求从linphone的官网上把android客户端的源码下载下来,编译好。
但是下载好后按照README里面的步骤来做有一些小问题,在网上搜了一下,没有专门介绍怎么编译的帖子,经过研究,全部解决了。
所以记录下来帮助同样是刚刚上手的你。
(问题比较简单,希望高手不要见笑)。
PS:我是在CentOS6下编译的。
Ubuntu下编译的步骤相似,可以参考,而在windows下需要借助Cygwin交叉编译。
一、首先要从github上把源码下载下来,这需要安装git软件,这一步就不多做解释了,你只要百度一下git就可以了。
(注意下载好后要配置git下载的路径,这个只要在你想存放的地方右击鼠标init一下就行了)二、编译前我们要先下载几个依赖库,这其中有autoconf(yum install autoconf), automake (yum install automake),aclocal(yum install aclocal),libtoolize(yum install libtoolize),编译过程中还需要android-ndk-r5b以上版本的ndk支持,我用的是最新的r6b版本。
三、下载好后的源码包,不要做任何修改,按照README里面所说的先运行./prepare_sources.sh,但是你在shell里运行后会发现提示你没有这个文件,不要急,这是因为下载下来的源码包里的文件都是DOS格式的,在Linux下都无法识别,所以导致了路径问题,这时候需要你安装一个dos2unix的软件,在终端里输入yum install dos2unix,安装好后,打开终端,定位到你下载好的linphone-android文件夹根目录,输入find -type f | xargs dos2unix --dos2unix --safe或者find -type f | xargs dos2unix -o,这个两个命令都可以把文件夹里所有的文件转为unix格式。
Android上试用Linphone(FreeSIPVOIPClient)
Android上试用Linphone(FreeSIPVOIPClient)
Android上试用Linphone(Free SIP VOIP Client)
博客分类:
•Android
应用服务器HTML
1. 下载Linphone apk并且安装到两个Android手机上
2. 申请两个免费的SIP帐号进行测试
3. 在每个Android手机上分别配置Linphone应用程序
点击Settings菜单, 在SIP Account界面分别配置如下:
Username: zhangsan.android
Password: ******
Domain:
4. 在Linphone的Dialer的输入框中输入另一个SIP帐号, 比如: **************************,点击绿色的拨号按钮, 在另一个手机就会受到来电显示, 点击接收, 通话就可以进行了.
我的两个手机都是连到家中的Wifi的, 声音效果还可以接受, 毕竟是连接到国外的SIP服务器的, 相当于数据首先发到国外再从国外发回
来. 但据说如果使用EDGE效果不是很好. 所以通过Wifi或者3G效果是最好的.。
有关软电话网络电话linphone代码分析
linphone分析看Linphone的代码,主程序很简单,只有三个函数:linphone-1.7.1\console下的linphonec.c中的:main (int argc, char *argv[]){if (! linphonec_init(argc, argv) )exit(EXIT_FAILURE);linphonec_main_loop (&linphonec, sipAddr);linphonec_finish(EXIT_SUCCESS);exit(EXIT_SUCCESS); /* should never reach here */}可以看到,主要的事物处理在linphonec_main_loop这个函数里面,该函数是一个while循环,他的主要流程就是等待终端输入命令,然后根据命令来进行不同的响应或者发出不同的SIP消息,完毕然后进入下一轮循环重新等待命令的输入。
既然linphonec_main_loop只是对输入命令的处理,那么对于从网络上接收到的数据的处理是在哪里实现的呢?既然linphonec_main_loop里面没有,那肯定是在linphonec_init(argc, argv)的时候启动了某个监听网络的线程。
通过对linphonec_init这个函数的代码分析,终于找到了关键点:在这里面他调用了eXosip_init()函数,而在eXosip_init()里面加载了四个有限状态机,正是这四个有限状态机线程能够对接收到的网消息进行自动的状态跳转并处理。
下面对eXosip_init()进行详细的分析。
eXosip_init()是eXosip的初始化函数,我们来看看它的内部实现:首行是定义的osip_t *osip,这在oSIP的官方手册里我们看到,所有使用oSIP的程序都要在最开始处声明一个osip_t的指针,并使用osip_init(&osip)来初始化这个指针。
Linphone的编译与代码分析
Linphone的编译与代码分析2008-12-14updatedb@目录1LINP HONE的编译3 1.1L INPHONE在ARM上的编译环境说明3 1.2L INPHONE依赖的库3 1.3L INPHONE编译脚本3 1.4编译过程中的问题4 2LINP HONE代码分析4 2.1L INPHONE的初始化分析4 2.1.1LINPHONEC的初始化5 2.1.2LINPHONE_CORE的初始化5 2.1.3O RTP的初始化5 2.1.4MEDIASTREAM2的初始化6 2.1.5E X OSIP的初始化6 2.2L INPHONE的通话过程分析6 2.2.1L INPHONE的命令处理分析7 2.2.2L INPHONE的呼叫过程分析7 2.2.3L INPHONE的通话过程分析8 2.2.4L INPHONE的响应过程分析8 2.3L INPHONE中创建以及应用自定义过滤器9 2.3.1过滤器的基本功能9 2.3.2过滤器的通用接口10 2.3.3自定义过滤器10Linphone的编译与代码分析1Linphone的编译1.1Linphone在arm上的编译环境说明Linphone在arm上编译的时候,时常会碰到一些问题,有时候想办法解决了相关的问题,但编译出来的Linphone在板子上的运行仍然不稳定,或者不能通话。
如果条件允许的话,当碰到这些问题之后,可以换其它的工具链进行编译。
我最初编译Linphone的时候采用的是xscale270板子自带的工具链,GCC3.4.3以及uclibc。
经过很痛苦的一番折腾之后,所以的代码最终都编译通过,但是编译出来的linphonec在板子上运行在通话开始之后总是崩溃。
通过GDB调试,发现是多线程的问题引起的,于是编译了一个线程结构相当的程序,但是测试没有发现问题。
最后,我改用GCC4.0.0以及Glibc-2.3.5基本上没有碰到什么问题,直接编译通过,并且在板子上正常运行。
基于linphone实现视频通话小结
基于linphone实现视频通话的小结Linphone解析先看一下linphone的实现结构:由上图可知,Linphone内部有明显的用户接口和内核引擎区分,这为我们基于它提供的接口进行再次开发提供了可能。
其中liblinphone是内核的核心,这个库提供了linphone功能的所有应用。
Liblinphone库是一个功能巨大的SIP\VOIP\VIDEO SDK. 我们可以用它提供的功能在我们想要的应用上开发视频通话功能。
Liblinphone库的结构包括:mediastreamer2,用于音视频流处理的多媒体SDK;oRTP,网络协议库;eXosip2,SIP 用户代理库。
文档查看:/nongnu/linphone/docs/liblinphone/modules.html遗留问题:关于操作系统底层的硬件接口结构不清楚,如何为C语言程序提供JAVA接口,ANDROID的NDK原理不清楚。
Linphone代码java层的大致结构是这样的:主activity为linphoneActivity,它总领着其他的程序块。
linphoneService做linphone在后台需要做的事,因此会有许多监听器,比如监听来电。
linphoneManager是linphone操作包,它的函数能实现初始化以及各类情况的实现。
linphoneCore封装了C语言通信编码实现,环境变量初始化等功能。
DailerActivity管理打接电话。
用户点击linphone的图标后就开始了linphone软件,这时linphoneActivity开始运行,它使linphoneService开始,并做一些linphone帐号密码的登录操作同时引导用户进行环境变量的设置(LinphonePreferencesActivity)。
环境变量都储存在sharedPreferences中,它是整个工程共享的一个变量池。
这些环境变量有音频和视频编码设置选择,帐号密码,服务器设置,自动启动,视频设置,回音校正,网络协议设置。
Linphone
LinphoneLinphone 是基于WEB 的IP 电话工具,运行于Linux 和Windows Xp 下。
通过Linphone 可以在互联网上和其他人自由地进行声音、视频通信。
Linphone 是遵从SIP 协议开发的,它需要和支持SIP协议的电话或者代理服务器进行相互操作。
Linphone 有两种使用模式:GNOME/GTK+模式和CONSOLE 模式。
考虑到在嵌入式下应用,本客户端采用CONSOLE 模式。
图 1 为Linphone 体系结构。
CONSOLE模块内部负责系统的初始化,并打开一个循环结构来循环定时查询来自exosip 的event,并根据事物的类型进行处理。
初始化成功后,系统进入Linphonec的主循环,等待用户输入,若有输入就会调用相应的命令处理函数,处理函数被注册在静态的数组Linphone LPC_COMMAND commands[]中。
CONSOLE 调用coreapi 封装好的api 即可容易的实现系统功能。
coreapi是Linphone 基于ortp、exosip、mediastreamer2 等开源库编写成的api,用来实现Linphone的主要功能。
osip2 是一个开源的sip 协议栈,exosip 是osip 的一个扩展协议集,它部分封装了osip2 协议栈,使得它更容易被使用。
exosip 使用定时轮询的方式调用osip2 的transaction 处理函数。
通过添加/读取transaction 消息管道的方式驱动transaction 的状态机,使得来自远端的sip 信令能汇报给调用程序。
此外,exosip 还添加了对各个类型transaction 的超时处理。
mediastreamer2 是一个音视频流引擎,能对使用alsa、oss、windows waveapi 驱动的声卡进行读写,接受或发rtp 包,读写一个wav file,从使用video4linux 驱动的摄像头中读取yuv 格式的图像、显示yuv 格式的图像。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linphone在Linux X86下的编译(一)Linphone依赖库准备:libogg-1.1.3.tar.gz(/releases/ogg/libogg-1.1.3.tar.gz)speex-1.2beta3.tar.gz(依赖于libogg)libosip2-3.3.0.tar.gz(/gnu/osip/libosip2-3.3.0.tar.gz)libeXosip2-3.3.0.tar.gz(/Unix/NonGNU/exosip/libeXosip2-3.3.0.tar.gz)依赖库打包下载地址:/source/1743975readline(optional)intltool-0.35.0.tar.gz(optional)ffmpeg(提供Linphone视频支持,如不需视频功能可不要)Linphone版本:linphone-3.2.0.tar.gzO S: Fedora9(VmWare下)(二)在Linux的/home/cena/目录下新建目录linphone在其中建立sources、build、x86_target、arm_target ;注:这里cena为用户名,以下类同![root @BCD cena]# mkdir –p /home/cena/linphone/sources,/home/cena/linphone/build \/home/cena/linphone/x86_target, /home/cena/linphone/arm_target将相应的库与Linphone源码拷贝到sources目录下|soureces--| libogg-1.1.3.tar.gz--| libosip2-3.3.0.tar.gz--| libeXosip2-3.3.0.tar.gz--| speex-1.2beta3.tar.gz--| linphone-3.2.0.tar.gz将所有压缩文件解压准备编译;[root @BCD cena]# cd linphone/sources[root @BCD sources]# tar zxvf libogg-1.1.3.tar.gz[root @BCD sources]# tar zxvf libosip2-3.3.0.tar.gz[root @BCD sources]# tar zxvf libeXosip2-3.3.0.tar.gz[root @BCD sources]# tar zxvf speex-1.2beta3.tar.gz[root @BCD sources]# tar zxvf linphone-3.2.0.tar.gz进入libogg目录,配置编译libogg[root @BCD sources]# cd ../build/libogg[root @BCD libogg]#../../sources/libogg-1.1.3/configure --prefix=/home/cena/linphone/x86_target/[root @BCD libogg]# make[root @BCD libogg]# make install进入speex目录,配置编译speex[root @BCD libogg]# cd ../speex[root @BCD speex]# ../../sources/speex-1.2beta3/configure --prefix=/home/cena/linphone/x86_target/ --with-ogg=/home/cena/linphone/x86_target/ [root @BCD speex]# make[root @BCD speex]# make install进入libosip目录,配置编译libosip[root @BCD speex]# cd ../libosip[root @BCD libosip]# ../../sources/libosip2-3.3.0/configure --prefix=/home/cena/linphone/x86_target/[root @BCD libosip]# make[root @BCD libosip]# make install进入libeXosip目录,配置编译libeXosip[root @BCD libosip]# cd ../libeXosip[root @BCD libeXosip]# ../../sources/libeXosip2-3.3.0/configure --prefix=/home/cena/linphone/x86_target/PKG_CONFIG_PATH=/home/cena/linphone/x86_target/lib/pkgconfig[root @BCD libeXosip]# make ; make install注:这里如果上一步的libosip的安装不是默认的,那么在配置libeXosip时要附上PKG_CONFIG_PATH=安装目录\lib\pkgconfig进入linphone目录,配置编译linphone[root @BCD libeXosip]# cd .../linphone[root @BCD linphone]# ../../sources/linphone-3.2.0/configure --prefix=/home/cena/linphone/x86_target/ --disable-video --enable-gtk_ui=no --with-osip=/home/cena/linphone/x86_target/PKG_CONFIG_PATH=/home/cena/linphone/x86_target/lib/pkgconfig[root @BCD linphone]# make[root @BCD linphone]# make install注: --enable-gtk_ui=no 目的是去除gtk的ui,否则编译过程中会需要gtk+库。
--disable-video 目的是裁剪掉视频功能,否则编译过程会需要ffmeg库。
--with-osip 目的是指明编译过程所需要的osip库的位置。
P1:configure过程中可能会报intltool not found,这时只需要下载intltool-0.35.0.tar.gz安装即可,最好安装到/usr下P2:make过程中,会出现linphone-3.2.0/mediastreamer2/src/msconf.c:272 和274行的SPEEX_PREPROCESS_GET_PSD_SIZE和SPEEX_PREPROCESS_GET_PSD未定义的错误。
在x86_target/include/speex找到speex_preprocess.h文件在其中加入以上两个宏的定义。
#define SPEEX_PREPROCESS_GET_PSD_SIZE 34#define SPEEX_PREPROCESS_GET_PSD 35P3:make过程中,会出现config.h和coreapi中以及x86_target/include/osipparser2中的几个文件重定义的错误,经查对源代码可知道是config.h被引用了2次所致。
故将coreapi中的sipsetup.c和siplogin.c中的第21行#include <../config.h>注释掉即可再次编译,成功!!!安装后可在x86_target/bin下找到linphonecLinphone的交叉编译Cross- tools:arm-linux-gcc-3.4.1O S:Fedra9(VMware)进入libogg库编译[root @BCD cena]# cd linphone/build/libogg[root @BCD libogg]# ../../sources/libogg-1.1.3/configure --prefix=/home/cena/linphone/arm_target/ CC=arm-linux-gcc --host=arm-linux --enable-static --disable-shared[root @BCD libogg]# make[root @BCD libogg]# make install编译speex库[root @BCD libogg]# cd ../speex[root @BCD speex]# ../../sources/speex-1.2beta3/configure --prefix=/home/cena/linphone/arm_target/ CC=arm-linux-gcc --host=arm-linux --with-ogg=/home/cena/linphone/arm_target/ --enable-static --disable-shared[root @BCD speex]# make[root @BCD speex]# make install编译libosip库[root @BCD speex]# cd ../libosip[root @BCD libosip]# ../../sources/libosip2-3.3.0/configure --prefix=/home/cena/linphone/arm_target/ CC=arm-linux-gcc --host=arm-linux --enable-shared --disable-static[root @BCD libosip]# make[root @BCD libosip]# make install注:这里libosip库编译成动态库,否则编译linphone时会出错。
编译libeXosip库注:仍然编译为动态库,原因同上。
[root @BCD libosip]# cd ../libeXosip[root @BCD libeXosip]# ../../sources/libeXosip2-3.3.0/configure --prefix=/home/cena/linphone/arm_target/ CC=arm-linux-gcc --host=arm-linux --enable-shared --disable-static PKG_CONFIG_PATH=/home/cena/linphone/arm_target/lib/pkgconfig[root @BCD libeXosip]# make[root @BCD libeXosip]# make install编译linphone[root @BCD libeXosip]# cd ../linphone[root @BCD linphone]# ../../sources/linphone-3.2.0/configure --prefix=/home/cena/linphone/arm_target/ --host=arm-linux CC=arm-linux-gcc --enable-static --disable-shared --disable-nls --disable-manual --enable-gtk_ui=no --disable-glib --with-osip=/home/cena/linphone/arm_target/ --enable-alsa=no --enable-video=no --enable-strict=no --enable-artsc=no PKG_CONFIG_PATH=/home/cena/linphone/arm_target/lib/pkgconfig[root @BCD linphone]# make[root @BCD linphone]# make installP1:make过程中会报linphone-3.2.0/mediastreamer2/src/msticker.c:248: error: `CLOCK_MONOTONIC' undeclared (first use in this function)打开 msticker.c文件找到该位置。