官方网站

源码下载:

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:


  1. linphonecore.c: In function 'video_config_read':
  2. linphonecore.c::: error: variable 'self_view' set but not used [-Werror=unused-but-set-variable]
  3. linphonecore.c::: error: variable 'display' set but not used [-Werror=unused-but-set-variable]
  4. linphonecore.c::: error: variable 'capture' set but not used [-Werror=unused-but-set-variable]
  5. linphonecore.c: In function 'linphone_core_invite_address_with_params':
  6. linphonecore.c::: error: variable 'err' set but not used [-Werror=unused-but-set-variable]
  7.  
  8. 解决方法:
  9. 进入到源码路径下,再次编译即可:
  10. yingc@yingc:~/work/voip/linphone/linphone-3.4.$ sed -i "s/-Werror//g" `find . -type f`
  11.  

  12. CC pulseaudio.lo
  13. CC msv4l.lo
  14. msv4l.c: In function 'v4l_configure':
  15. msv4l.c::: error: 'BASE_VIDIOCPRIVATE' undeclared (first use in this function)
  16. msv4l.c::: note: each undeclared identifier is reported only once for each function it appears in
  17. make[]: *** [msv4l.lo] 错误
  18. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
  19. make[]: *** [all] 错误
  20. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
  21. make[]: *** [all-recursive] 错误
  22. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2'
  23. make: *** [all] 错误
  24.  
  25. 解决方法:
  26. 修改msv4l.c源码,加入#define BASE_VIDIOCPRIVATE 192定义
  27.  

  28. checking for LIBV4L2... no
  29. No libv4l2 found.
  30. checking for LIBV4L1... no
  31. No libv4l1 found.
  32. configure: error:
  33. Missing libv4l2. It is highly recommended to build with
  34. libv4l2 headers and library. Many camera will won't work or will crash
  35. your application if libv4l2 is not installed.
  36. If you know what you are doing, you can use --disable-libv4l to disable
  37. this check.
  38. 解决方法:
  39.  
  40. yingc@yingc:~/work/voip/linphone/linphone-3.4.0$ sudo apt-get install -y libv4l-dev
  1. 4
  2. CC msv4l.lo
  3. msv4l.c::: fatal error: linux/videodev.h: No such file or directory
  4. compilation terminated.
  5. make[]: *** [msv4l.lo] 错误
  6. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
  7. make[]: *** [all] 错误
  8. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2/src'
  9. make[]: *** [all-recursive] 错误
  10. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./mediastreamer2'
  11. make: *** [all] 错误
  12.  
  13. 解决方法:

  14. 修改源码,将linux/videodev.h替换为<libv4l1-videodev.h>、
  15. /home/yingc/work/voip/linphone/linphone-3.4.
  16. make all-recursive
  17. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.'
  18. Making all in m4
  19. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./m4'
  20. make[]: 没有什么可以做的为 `all'
  21. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./m4'
  22. Making all in pixmaps
  23. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./pixmaps'
  24. make[]: 没有什么可以做的为 `all'
  25. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./pixmaps'
  26. Making all in po
  27. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./po'
  28. make[]: 没有什么可以做的为 `all'
  29. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./po'
  30. Making all in oRTP
  31. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
  32. make[]: *** 没有规则可以创建目标“all”。 停止。
  33. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
  34. make[]: *** [all-recursive] 错误
  35. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.'
  36. make: *** [all] 错误
  37.  
  38. 解决方法:
    下载对应版本的源码包拷贝到该目录即可
  39.  

  40. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./po'
  41. Making install in oRTP
  42. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
  43. Making install in src
  44. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
  45. Making install in .
  46. make[]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
  47. CC stun.lo
  48. stun.c: In function 'stunSendTest':
  49. stun.c::: error: variable 'discard' set but not used [-Werror=unused-but-set-variable]
  50. stun.c: In function 'stunNatType':
  51. stun.c::: error: variable 'testIchangedAddr' set but not used [-Werror=unused-but-set-variable]
  52. cc1: all warnings being treated as errors
  53. make[]: *** [stun.lo] 错误
  54. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
  55. make[]: *** [install-recursive] 错误
  56. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP/src'
  57. make[]: *** [install-recursive] 错误
  58. make[]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4./oRTP'
  59. make: *** [install-recursive] 错误 1
  60.  
  61. 解决方法:
    进入到对应目录,执行命令 :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. 【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】

    方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...

  2. 常见排序的JAVA实现和性能测试

    五种常见的排序算法实现 算法描述 1.插入排序 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重 ...

  3. win7下设置环境变量

    手工当然可以进行环境变量的设置,但是如果一个小组有需要设置固定环境变量的操作,这可能就会有点麻烦了,xp下设置环境变量比较简单,直接用set,win7下需要使用setx SETX XX_HOME &q ...

  4. html效果增强

    1:提示框 http://keleyi.com/keleyi/phtml/jqplug/ 2:loading效果 <script>function showPage(){    $('#d ...

  5. String hashCode 方法为什么选择数字31作为乘子

    1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主 ...

  6. 奇怪吸引子---Aizawa

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  7. java含有静态代码块新建的时候报错java.lang.ExceptionInInitializerError

    问题描述 最近在写一些单元测试用例,为了避免连接外界服务,所有选择mock了数据库Dao层,计划将数据库所需要的数据存在List中,在类加载的时候初始化List并且填充数据.代码如下: public ...

  8. 很不错的python 机器学习博客

    http://www.cuijiahua.com/resource.html 曾看过的书,感觉一些很有用的学习资料,推荐给大家! Python基础: 网络教程推荐: 系统学习python3可以看廖雪峰 ...

  9. 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 ...

  10. 记录Activity启动时间 ActivityLifecycleCallbacks

    ActivityStackManager 定义一个集合(Stack)保存所有还未销毁的 Activity public class ActivityStackManager { private Sta ...