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编写,具有很 ...
随机推荐
- 【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】
方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...
- 常见排序的JAVA实现和性能测试
五种常见的排序算法实现 算法描述 1.插入排序 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重 ...
- win7下设置环境变量
手工当然可以进行环境变量的设置,但是如果一个小组有需要设置固定环境变量的操作,这可能就会有点麻烦了,xp下设置环境变量比较简单,直接用set,win7下需要使用setx SETX XX_HOME &q ...
- html效果增强
1:提示框 http://keleyi.com/keleyi/phtml/jqplug/ 2:loading效果 <script>function showPage(){ $('#d ...
- String hashCode 方法为什么选择数字31作为乘子
1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主 ...
- 奇怪吸引子---Aizawa
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- java含有静态代码块新建的时候报错java.lang.ExceptionInInitializerError
问题描述 最近在写一些单元测试用例,为了避免连接外界服务,所有选择mock了数据库Dao层,计划将数据库所需要的数据存在List中,在类加载的时候初始化List并且填充数据.代码如下: public ...
- 很不错的python 机器学习博客
http://www.cuijiahua.com/resource.html 曾看过的书,感觉一些很有用的学习资料,推荐给大家! Python基础: 网络教程推荐: 系统学习python3可以看廖雪峰 ...
- Commands to help you to Start Using ScaleIO Storage
To start using your storage: Log in to the MDM: scli --login --username admin --password <passwor ...
- 记录Activity启动时间 ActivityLifecycleCallbacks
ActivityStackManager 定义一个集合(Stack)保存所有还未销毁的 Activity public class ActivityStackManager { private Sta ...