精华内容
下载资源
问答
  • linphone

    2016-12-14 18:15:00
    官方网站 源码下载: linphone, including: oRTP mediastreamer2 ...linphone (gtk) ...git clone git://git.linphone.org/linphone.git --recursive 架构设计概略 Linphone is an open source SIP P...

    官方网站

    源码下载:

    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':
    linphonecore.c:749:24: error: variable 'self_view' set but not used [-Werror=unused-but-set-variable]
    linphonecore.c:749:15: error: variable 'display' set but not used [-Werror=unused-but-set-variable]
    linphonecore.c:749:6: error: variable 'capture' set but not used [-Werror=unused-but-set-variable]
    linphonecore.c: In function 'linphone_core_invite_address_with_params':
    linphonecore.c:2065:6: error: variable 'err' set but not used [-Werror=unused-but-set-variable]
    
    解决方法:
    进入到源码路径下,再次编译即可:
    yingc@yingc:~/work/voip/linphone/linphone-3.4.0$ sed -i "s/-Werror//g" `find . -type f`
    
    
    2、
      CC     pulseaudio.lo
      CC     msv4l.lo
    msv4l.c: In function 'v4l_configure':
    msv4l.c:619:19: error: 'BASE_VIDIOCPRIVATE' undeclared (first use in this function)
    msv4l.c:619:19: note: each undeclared identifier is reported only once for each function it appears in
    make[3]: *** [msv4l.lo] 错误 1
    make[3]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/mediastreamer2/src'
    make[2]: *** [all] 错误 2
    make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/mediastreamer2/src'
    make[1]: *** [all-recursive] 错误 1
    make[1]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/mediastreamer2'
    make: *** [all] 错误 2
    
    解决方法:
    修改msv4l.c源码,加入#define BASE_VIDIOCPRIVATE 192定义
    
    3、
    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:
    33:28: fatal error: linux/videodev.h: No such file or directory compilation terminated. make[3]: *** [msv4l.lo] 错误 1 make[3]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/mediastreamer2/src' make[2]: *** [all] 错误 2 make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/mediastreamer2/src' make[1]: *** [all-recursive] 错误 1 make[1]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/mediastreamer2' make: *** [all] 错误 2 解决方法:
    修改源码,将linux/videodev.h替换为<libv4l1-videodev.h>
    5/home/yingc/work/voip/linphone/linphone-3.4.0 make all-recursive make[1]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0' Making all in m4 make[2]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/m4' make[2]: 没有什么可以做的为 `all' make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/m4' Making all in pixmaps make[2]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/pixmaps' make[2]: 没有什么可以做的为 `all' make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/pixmaps' Making all in po make[2]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/po' make[2]: 没有什么可以做的为 `all' make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/po' Making all in oRTP make[2]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP' make[2]: *** 没有规则可以创建目标“all”。 停止。 make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP' make[1]: *** [all-recursive] 错误 1 make[1]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0' make: *** [all] 错误 2 解决方法:
    下载对应版本的源码包拷贝到该目录即可
    6make[1]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/po' Making install in oRTP make[1]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP' Making install in src make[2]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP/src' Making install in . make[3]: 正在进入目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP/src' CC stun.lo stun.c: In function 'stunSendTest': stun.c:1996:11: error: variable 'discard' set but not used [-Werror=unused-but-set-variable] stun.c: In function 'stunNatType': stun.c:2165:17: error: variable 'testIchangedAddr' set but not used [-Werror=unused-but-set-variable] cc1: all warnings being treated as errors make[3]: *** [stun.lo] 错误 1 make[3]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP/src' make[2]: *** [install-recursive] 错误 1 make[2]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/oRTP/src' make[1]: *** [install-recursive] 错误 1 make[1]:正在离开目录 `/home/yingc/work/voip/linphone/linphone-3.4.0/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

    转载于:https://www.cnblogs.com/jingzhishen/p/6180395.html

    展开全文
  • Linphone分析

    2018-04-04 13:46:20
    linphone 架构及组成模块/系统框图/各个模块说明/数据结构说明/初始化过程/linphone 建立通话过程说明/linphone 会话执行过程 log 分析/使用参考
  • linphone 3.1.1

    2016-03-28 14:42:23
    linphone 3.1.1
  • Linphone是一款开源软件电话,用于通过IP呼叫和即时消息传递语音和视频。 它完全基于SIP,可用于所有呼叫,状态和IM功能。 可以从获得一般描述。 执照 版权所有:copyright:Belledonne Communications Linphone...
  • linphone

    linphone_core_iterate

    parsed_url2=linphone_address_new(from);

    LINPHONE_PUBLIC LinphoneAddress * linphone_address_new(const char *addr);

    以下分析基于我内部修改过的linphone版本。
    linphone包含sip协议解析多媒体编解码rtp传输等功能,这些功能是通过不同的组件分工合作完成的,
    下面我就来分析下linphone

    生命中出现过的那些线程。

    第一个登场的当然是主线程,也就是ui线程,通常可认为是一个Activity,这个Activity主要负责界面的绘制、linphone内核库的初始化以及功能接口的调用。

    第二个线程是sip协议处理线程,在主线程初始化linphone内部库时创建:

    osip_thread_create(20000, _eXosip_thread, NULL);
    此线程监听sip的socket接口,负责sip消息的发送、接收,分析sip消息并做协议上的处理,最后会调用各种业务的回调函数做进一步处理。

    第三个线程是在初始化完linphone内部库之后由linphoneManager创建的一个loop,此线程循环调用linphone_core_iterate,处理各种osip event和call状态变化。

    第四个线程是音频流线程,在建立会话之后由loop线程创建。负责音频流的编解码,以及音频编码数据的rtp发送接收。

    第五个线程是视频流线程,在建立会话之后由loop线程创建。负责视频流的编解码,以及视频编码数据的rtp发送接收。

    下面通过分析一些常见的应用场景来分析这些线程是如何运作的。

    场景一、在解码点击拨号键发起一个点对点呼叫

    当用户点击拨号键后,主线程里的onclick函数执行,通过jni调用linphone库的呼叫函数,此函数会做一些初始化,然后调用sip的呼叫接口,向sip的事务队列添加一个‘发起呼叫’的事务

    代码调用流程:
    onclick()

    jni 调用的java方法

    jni调用的c方法

    linphone_core_invite_address_p2p()

    int linphone_core_start_invite(LinphoneCore lc, LinphoneCall *call, const LinphoneAddress destination /* = NULL if to be taken from the call log */){
    调用
    err=sal_call(call->op,from,real_url);

    eXosip_call_send_initial_invite()

    osip_transaction_add_event()

    osip_fifo_add()

    接着,sip协议线程会检测到这个‘发起呼叫’的事务 ,并处理这个事务。

    eXosip_execute()

    |
    

    osip_ict_execute()

    |
    

    osip_fifo_tryget()

    osip_transaction_execute()

    |
    

    __ict_get_fsm()

    fsm_callmethod()

    transition->method()

    ict_snd_invite()

     |
    

    __osip_message_callback(OSIP_ICT_INVITE_SENT, ict, ict->orig_request);

    |
    

    cb_sndinvite()

    在函数ict_snd_invite中把sip的invite消息发送到目地地址,接着调用回调函数cb_sndinvite(),此函数是用来通知linphone,‘发起呼

    叫’的请求发送完毕。我们也可以在此回调里做一些我们自定义的处理。

    当目标机接收到sip的invite消息后,如果按下接听按钮接听了电话,目标机就会回复一个200的消息给呼叫端(200表示ok),呼叫端

    收到200的消息,就生成一个sip event,接着,loop线程会轮询到这个sip event,并处理。我们看代码流程。首先是sip协议线程:

    eXosip_execute()

    |
    

    osip_ict_execute()

    |
    

    osip_fifo_tryget()

    osip_transaction_execute()

    |
    

    __ict_get_fsm()

    fsm_callmethod()

    transition->method()

    ict_rcv_2xx()

    |
    

    __osip_message_callback(OSIP_ICT_STATUS_2XX_RECEIVED, ict, evt->sip);

    |
    

    cb_rcv2xx()

    |
    

    report_event()

    |
    

    eXosip_event_add();


    然后是loop线程:

    sal_iterate()

    |
    

    eXosip_event_wait();

    process_event();

    |
    

    call_accepted()

    |
    

    sal->callbacks.call_accepted(op);

    ||
    

    call_accepted()

    |
    

    linphone_core_update_streams()

    |
    

    linphone_call_start_media_streams()

    linphone_call_start_audio_stream() linphone_call_start_video_stream()

    audio_stream_start_full() video_stream_start()

    stream->ticker=ms_ticker_new(); stream->ticker = ms_ticker_new();

    函数ms_ticker_new()会创建一个线程(也就是音频流线程或视频流线程),此线程的实现方式是: 循环执行filter的process方法。

    下面详细说明,以视频流线程为例。

    linphone把视频通话看做一个流水线,流水线上的每一环负责一个步骤。那么视频通话的流水线有两条:

    1. 摄像头采集 —– 视频编码 —– rtp 发送

    2. rtp 接收 —– 视频解码 —– 视频显示

      每一环都以filter的形式实现,filter需要实现固定的几个接口:init 、pre_process、process、post_process、uninit 。filter的process

    函数接收其他filter的输入,经过内部处理后传递给预定的filter。

      linphone根据需要把不同的filter link成一个流水线,一条流水线包含一个source filter、一个output filter(出口也可以有2个)和若干
    

    个中间filter,数据从source filter产生,并在process方法里把数据流传递给下一个filter,下一个filter经过处理,将数据流传递给下下个

    filter,如此直到最后一个output filter。

      结合到视频采集就是camera插件完成视频的yuv数据的采集,并传递给encoder插件,encoder插件完成视频的编码,并将编码数据
    

    传递给rtp发送插件,rtp发送插件将编码数据打包,然后通过socket传递到网络。

    参考资料:http://www.xuebuyuan.com/1799507.html

    展开全文
  • baresip and linphone

    2020-11-22 00:24:34
    <p>I have an account on linphone and I wanted to test it with baresip (latest version from git). My account file looks like this: <p><code><sip:holdenc.linphone.org;transport=udp>;auth_pass&...
  • 要将Linphone与Xamarin一起使用,您需要Xamarin SDK,该SDK包含适用于Android和iOS(针对每种体系结构)的本机库以及与这些库匹配的C#包装器。 您可以在这里找到每晚版本:和我们的最新版本: 盒子里装了什么 ...
  • linphone3.5.2

    2018-05-04 12:37:22
    ++++++++++++++++++++++++++++++++++++++++++++++++++ Linphone源码++++++++++++++++++++++++++++++++++++++++++++++++++
  • linphone-android

    2019-04-02 10:47:31
    linphone在android上代码
  • Linphone详解

    2014-07-29 16:18:17
    详细讲解linphone内部结构,对学习和移植linphone的同学会很有帮助,现在没google,基本是找不到这种中文资料的
  • Linphone4Android

    2018-04-16 14:58:29
    LinPhone是一个网络电话或者IP语音电话(VOIP),是一款遵循GPL的开源的网络视频电话系统,其主要如下:使用linphone,我们可以在互联网上随意的通信,通过语音、视频、即时文本消息。linphone使用SIP协议,是一个...
  • linphone api

    2011-11-21 17:19:19
    linphone 3.4.3 api 网页格式压缩 linphone sdk api
  • linphone编译源码

    2017-03-24 11:04:44
    android linphone编译源码
  • linphone ios demo

    2017-07-06 14:22:01
    Linphone is a free VoIP and video softphone based on the SIP protocol. Mirror of linphone-iphone
  • Linphone 安卓项目

    2018-06-26 17:16:23
    Linphone 安卓项目 视频对讲,音频对话。
  • Linphone相关

    2019-11-30 16:30:54
    如何在一个c语言工程里面加入qt界面?(改写linphone界面) ...提供了如何将Linphone和Qt界面连起来的思路,值得注意的是Linphone的界面是用C+Gtk做的,直接更改成Qt界面会很麻烦,思路很重要看要选择哪一种。 ...

    如何在一个c语言工程里面加入qt界面?(改写linphone界面)
    https://bbs.csdn.net/topics/350076320

    提供了如何将Linphone和Qt界面连起来的思路,值得注意的是Linphone的界面是用C+Gtk做的,直接更改成Qt界面会很麻烦,思路很重要看要选择哪一种。

    展开全文
  • linphone 2.0源码

    2019-03-01 11:10:15
    这个是linphone2.0源码,在一些特定机型上可以使用,我咋
  • Linphone for android

    2018-12-20 16:03:44
    这是 Linphone android 官方 v3.3.2 版本,由于某些原因国内下载不方便
  • linphone SIP客户端

    2018-10-17 07:04:20
    linphone 3.12 安卓版本 sip视频会议测试用 支持多种音视频编码格式
  • linphone.zip

    2019-11-18 14:44:50
    基于linphone_android,演示基本的语音通话过程。 注意点:本项目是从其他项目中分离出来的,不可直接运行,需要自己新建一个android项目,然后将里面的代码拷贝到新建的项目中。
  • linphone-sdk

    2018-08-17 23:02:07
    linphone官方sdk 已经编译过,可直接使用。 后面是为了凑字数。sdk不错
  • linphone 3.1.2

    2009-07-31 16:05:21
    linphone 3.1.2 , linphone 最新版
  • linphone IOS版本

    2018-10-16 10:41:10
    1.linphone IOS版本来自pp助手,越狱版本 2.sip客户端,支持多种音视频编解码协议 3.测试sip服务器使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,962
精华内容 1,184
热门标签
关键字:

linphone