官方网站

源码下载:

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错误解决方法

Linphone在Linux X86下的编译安装

依赖库相关下载地址:

mediastreamer2

oRtp

aa

linphone的更多相关文章

  1. csipsimple,linphone,webrtc比较

    转自: http://www.lxway.com/566299526.htm 最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频 ...

  2. Linphone iOS客户端编译时打开G729支持

    Assuming you were able to compile the SDK and the linphone XCode project, here is what you need to d ...

  3. IM比较SipDroid/IMSDroid/CSipsimple/Linphone/Webrtc

    一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器 ...

  4. android linphone中opengl显示的实现

    1,java层 在界面中创建GL2JNIView(基类为GLSurfaceView). 创建对象AndroidVideoWindowImpl,将GL2JNIView作为参数传入构造函数.在该对象中监听 ...

  5. freepbx的SIP通话客户端X-lite Yate eyeBeam Linphone

    在上一篇文章安装freepbx后创建sip分机里我们已经创建好了SIP分机,接下来我们使用几大客户端进行登陆.我们接下来会使用到的软件有X-lite,Yate client,eyeBeam, Linp ...

  6. linphone 在am335x的编译过程

    环境变量: export PREFIX=/usr export HOSTTPL=arm-linux-gnueabihf export INSTALLDIR=/home/elinux/linphone/ ...

  7. linphone 调试信息

    root@phyCORE-AM335x:~ linphonec -V -d 6INFO: no logfile, logging to stdoutortp-message-oRTP-0.20.0 i ...

  8. 开源移动端IM比较SipDroid,IMSDroid,CSipsimple,Linphone,webrtc

    最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员 ...

  9. webrtc doubango linphone

    1.doubango官网:http://www.doubango.org/ 2.doubango是一个开源的VOIP基础平台, 并能用于嵌入式和桌面系统的开源框架,该框架使用ANSCI-C编写,具有很 ...

随机推荐

  1. AutoMapper在MVC中的运用06-一次性定义映射、复杂类型属性映射

    本篇AutoMapper使用场景: ※ 当源和目标具有同名的复杂类型属性.集合类型属性,这2种属性对应的类间也需建立映射 ※ 一次性定义好源和目标的所有映射 ※ 一次性定义好源和目标的所有映射,目标中 ...

  2. 在Delphi中操作快捷方式

    快捷方式减少了系统的重复文件,是快速启动程序或打开文件或文件夹的方法,快捷方式对经常使用的程序.文件和文件夹非常有用.在Windows系统中,充斥着大量的快捷方式,那么如何操作这些快捷方式就是一个很头 ...

  3. 【Android病毒分析报告】- 手机支付毒王“银行悍匪”的前世今生

    from://http://blog.csdn.net/androidsecurity/article/details/18984165 2014年1月8日,央视曝光了一款名为“银行悍匪”的手机银行木 ...

  4. Javascript:自己写异步流程编程框架

    背景 自从NodeJs出来以后,异步编程便更加系统化和框架话了,为了应对异步编程框架带来的深层嵌套问题,社区也出现了异步流程编程框架,本文主要对异步流程框架做一个简单的解析. 现配代码了 var As ...

  5. C++ 继承体系中的名称覆盖

    首先一个简单的样例: int x; int f() { double x; cin >> x; return x; } 在上述代码中.函数f的局部变量x掩盖了全局变量x.这得从 " ...

  6. 美国谍梦第一季/全集The Americans迅雷下载

    美国谍梦 第一季 The Americans Season 1 (2013)本季看点:这部背景设在80年代的剧集,故事讲述了一对被组织安排在美国生活的克格勃特工夫妻Phillip和Elizabeth, ...

  7. Objective-C 入门笔记

    简介 建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件: .h的头文件 .m的实现文件(如果是C/C++混编文件,文件后缀为.mm) 既然有头文件,所以很多人会拿它与C++进行类比,它 ...

  8. 关于GreenPlum的一些整理

    Greenplum数据库架构 Greenplum数据库基本由PostgreSQL核心增强数据库实例组合并衔接成的数据库管理系统,即Greenplum数据在PostgreSQL基础上扩展开发,每个Gre ...

  9. 在SqlServer 中解析JSON数据 [parseJSON] 函数 数据库中 解析JSON

    使用如下: SELECT * FROM parseJSON('{ "联系人": { "姓名": "huang", "网名" ...

  10. NOI2015滚粗记

    我的第一次也是最后一次NOI 好像写的晚了许多……可能一谈到退役总会有些伤感,并不愿去面对…… 一路走来已有5年,虽然我总在说“其实我好好学的时间只有半年”,但那也不过是给自己是蒟蒻找的借口吧...一 ...