linphone
源码下载:
linphone, including:
- oRTP
- mediastreamer2
- liblinphone
- linphonec
- linphone (gtk)
git clone git://git.linphone.org/linphone.git --recursive
Linphone is an open source SIP Phone, available on mobile and desktop environments (iOS, Android, Windows Phone, GNU/Linux, MAC OSX, Windows Desktop, Windows 10) and on web browsers.
Linphone has inside a separation between the user interfaces and the core engine, allowing to create various kinds of user interface on top of the same functionalities.
- The user interface frontends:
- Gtk+ interface for windows, mac and GNU/Linux
- The console interface (linphonec, linphonecsh)
- The iPhone application built in objective C
- The Android application running in java
- The Windows Phone application written in C#
- Liblinphone, the core engine: this is the library that implements all the functionalities of Linphone.
Liblinphone
is a powerful SIP VoIP video SDK that anyone can use to add audio or
video call capabilities to an application. It provides a high level api
to initiate, receive, terminate audio & video calls. - Liblinphone relies on the following software components:
- Mediastreamer2, a powerful multimedia SDK to make audio/video streaming and processing.
- oRTP, a simple RTP library.
- belle-sip the SIP library.
Liblinphone and all its dependencies are written in pure C.
ubuntu12.04 x86下编译过程中碰到的问题linphone-3.4.0:
、
linphonecore.c: In function 'video_config_read':
linphonecore.c::: error: variable 'self_view' set but not used [-Werror=unused-but-set-variable]
linphonecore.c::: error: variable 'display' set but not used [-Werror=unused-but-set-variable]
linphonecore.c::: error: variable 'capture' set but not used [-Werror=unused-but-set-variable]
linphonecore.c: In function 'linphone_core_invite_address_with_params':
linphonecore.c::: error: variable 'err' set but not used [-Werror=unused-but-set-variable] 解决方法:
进入到源码路径下,再次编译即可:
yingc@yingc:~/work/voip/linphone/linphone-3.4.$ sed -i "s/-Werror//g" `find . -type f` 、
CC pulseaudio.lo
CC msv4l.lo
msv4l.c: In function 'v4l_configure':
msv4l.c::: error: 'BASE_VIDIOCPRIVATE' undeclared (first use in this function)
msv4l.c::: note: each undeclared identifier is reported only once for each function it appears in
make[]: *** [msv4l.lo] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
make[]: *** [all] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
make[]: *** [all-recursive] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2'
make: *** [all] 错误 解决方法:
修改msv4l.c源码,加入#define BASE_VIDIOCPRIVATE 192定义 、
checking for LIBV4L2... no
No libv4l2 found.
checking for LIBV4L1... no
No libv4l1 found.
configure: error:
Missing libv4l2. It is highly recommended to build with
libv4l2 headers and library. Many camera will won't work or will crash
your application if libv4l2 is not installed.
If you know what you are doing, you can use --disable-libv4l to disable
this check.
解决方法: yingc@yingc:~/work/voip/linphone/linphone-3.4.0$ sudo apt-get install -y libv4l-dev
4、
CC msv4l.lo
msv4l.c::: fatal error: linux/videodev.h: No such file or directory
compilation terminated.
make[]: *** [msv4l.lo] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
make[]: *** [all] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
make[]: *** [all-recursive] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2'
make: *** [all] 错误 解决方法:
修改源码,将linux/videodev.h替换为<libv4l1-videodev.h>、
/home/yingc/work/voip/linphone/linphone-3.4.
make all-recursive
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.'
Making all in m4
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./m4'
make[]: 没有什么可以做的为 `all'。
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./m4'
Making all in pixmaps
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./pixmaps'
make[]: 没有什么可以做的为 `all'。
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./pixmaps'
Making all in po
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./po'
make[]: 没有什么可以做的为 `all'。
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./po'
Making all in oRTP
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
make[]: *** 没有规则可以创建目标“all”。 停止。
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
make[]: *** [all-recursive] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.'
make: *** [all] 错误 解决方法:
下载对应版本的源码包拷贝到该目录即可 、
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./po'
Making install in oRTP
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
Making install in src
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
Making install in .
make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
CC stun.lo
stun.c: In function 'stunSendTest':
stun.c::: error: variable 'discard' set but not used [-Werror=unused-but-set-variable]
stun.c: In function 'stunNatType':
stun.c::: error: variable 'testIchangedAddr' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
make[]: *** [stun.lo] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
make[]: *** [install-recursive] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
make[]: *** [install-recursive] 错误
make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
make: *** [install-recursive] 错误 1 解决方法:
进入到对应目录,执行命令 :sed -i "s/-Werror//g" `find . -type f`
参考网址:
linux/videodev.h: No such file or directory错误解决方法
依赖库相关下载地址:
aa
linphone的更多相关文章
- csipsimple,linphone,webrtc比较
转自: http://www.lxway.com/566299526.htm 最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频 ...
- Linphone iOS客户端编译时打开G729支持
Assuming you were able to compile the SDK and the linphone XCode project, here is what you need to d ...
- IM比较SipDroid/IMSDroid/CSipsimple/Linphone/Webrtc
一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器 ...
- android linphone中opengl显示的实现
1,java层 在界面中创建GL2JNIView(基类为GLSurfaceView). 创建对象AndroidVideoWindowImpl,将GL2JNIView作为参数传入构造函数.在该对象中监听 ...
- freepbx的SIP通话客户端X-lite Yate eyeBeam Linphone
在上一篇文章安装freepbx后创建sip分机里我们已经创建好了SIP分机,接下来我们使用几大客户端进行登陆.我们接下来会使用到的软件有X-lite,Yate client,eyeBeam, Linp ...
- linphone 在am335x的编译过程
环境变量: export PREFIX=/usr export HOSTTPL=arm-linux-gnueabihf export INSTALLDIR=/home/elinux/linphone/ ...
- linphone 调试信息
root@phyCORE-AM335x:~ linphonec -V -d 6INFO: no logfile, logging to stdoutortp-message-oRTP-0.20.0 i ...
- 开源移动端IM比较SipDroid,IMSDroid,CSipsimple,Linphone,webrtc
最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员 ...
- webrtc doubango linphone
1.doubango官网:http://www.doubango.org/ 2.doubango是一个开源的VOIP基础平台, 并能用于嵌入式和桌面系统的开源框架,该框架使用ANSCI-C编写,具有很 ...
随机推荐
- 报错:此版本的SQL Server Data Tools与此计算机中安装的数据库运行时组件不兼容
在Visual Studio 2012中使用Entity Framework,根据模型生成数据库时,报如下错误: 无法在自定义编辑器中打开Transact-SQL文件此版本的SQL Server Da ...
- 如何获得ios7系统中的蓝色
最简洁的办法,直接使用下列代码: [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0] 最彻底的办法: OS7Colors是U ...
- Linux下eclipse编译C/C++程序遇到 undefined reference to `pthread_create'的异常解决办法
解决方法:右键点击的当前project—>properties—>C/C++ Build—>Settings—>Tool Settings选项卡—>GCC C Linke ...
- C++类静态数据成员与类静态成员函数
from:://http://blog.csdn.net/taina2008/article/details/1684834 把类中的函数都定义成静态函数,这样相当于在编译时就分配了空间,这样不需要实 ...
- WordPress主题开发:style.css主题信息标记
在最简单的情况下,一个WordPress主题由两个文件构成: index.php ------------------主模版 style.css -------------------主样式表 而且s ...
- ibatis.net:第三天,Insert
手工生成主键的模型 xml 配置 <insert id="InsertUser" parameterClass="User"> INSERT INT ...
- java List集合记录 ArrayList和LinkedList的区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问 ...
- 每天一个linux命令-用户之间切换
怎么从root用户切换到普通用户 su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户.如果当前是root用户,那么切换成普通用户test用以下命令:su - ...
- JAVA Iterator 转成 List
List转到Iterator容易,JDK本身就支持,反过来的实现方式如下:1.使用Apache Common Collections 2.自己实现的方法转换3.Guaa实现转换 方式1: #Apach ...
- Java并发编程的艺术(五)——中断
什么是中断? 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作.因此,Java提供了一种用于停止线程的机制——中断. 中断只是一种协作机制,Java没有给中断增加任 ...