- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linphone分析
目录
1 LINP HONE 的编译3
1.1 LINPHONE 在ARM 上的编译环境说明3
1.2 LINPHONE 依赖的库3
1.3 LINPHONE 编译脚本3
1.4 编译过程中的问题4
2 LINP HONE 代码分析4
2.1 LINPHONE 的初始化分析4
2.1.1 LINPHONEC 的初始化5
2.1.2 LINPHONE_CORE 的初始化5
2.1.3 ORTP 的初始化5
2.1.4 MEDIASTREAM2 的初始化6
2.1.5 EXOSIP 的初始化6
2.2 LINPHONE 的通话过程分析6
2.2.1 LINPHONE 的命令处理分析7
2.2.2 LINPHONE 的呼叫过程分析7
2.2.3 LINPHONE 的通话过程分析8
2.2.4 LINPHONE 的响应过程分析8
2.3 LINPHONE 中创建以及应用自定义过滤器9
2.3.1 过滤器的基本功能9
2.3.2 过滤器的通用接口10
2.3.3 自定义过滤器10
Linphone 的编译与代码分析
1 Linphone 的编译
1.1 Linphone 在arm 上的编译环境说明
Linphone 在arm 上编译的时候,时常会碰到一些问题,有时候想办法解决了相关的问
题,但编译出来的Linphone 在板子上的运行仍然不稳定,或者不能通话。
如果条件允许的话,当碰到这些问题之后,可以换其它的工具链进行编译。我最初编译
Linphone 的时候采用的是xscale270 板子自带的工具链,GCC3.4.3 以及uclibc 。经过很痛
苦
的一番折腾之后,所以的代码最终都编译通过,但是编译出来的linphonec 在板子上运行在
通话开始之后总是崩溃。通过GDB 调试,发现是多线程的问题引起的,于是编译了一个线
程结构相当的程序,但是测试没有发现问题。
最后,我改用GCC4.0.0 以及Glibc-2.3.5 基本上没有碰到什么问题,直接编译通过,并
且在板子上正常运行。
1.2 Linphone 依赖的库
除了上面所提到的Gcc,Glibc 以及系统的基本库外我主要编译了下面的程序包。
序号库名称说明
1 ReadLine 一个终端显示库,Linphone 会用到它时里面的事件循环机制来读取会话事件。
2 ffmpeg 音视频编解码库
3 Speex 专为通话过程设计的音频编码库
4 libtheora 视频压缩编码库
5 libfaac mpeg4 的音频编码器
6 libfaad2 AAC 音频解码器
7 SDL 简单的视频支持层
8 libosip2 SIP 的简单实现
9 libeXosip2 对libosip2 的调用进行封装,隐藏了多媒体会话建立过程中SIP 的细节
10 linphone-3.0 linphone 的主程序,包括mediastream, oRtp ,coreapi 以及console 四个部分
1.3 Linphone 编译脚本
见附件。
1.4 编译过程中的问题
1、ffmpeg 的编译问题
在编译ffmpeg 的时候会发现有不少编解码码器不能编译能过,在configure 的时候禁用
的就行了。
2 、linphone 的编译
linphone 的编译过程中可能会出现mediastream2 下面的test 不能编译能过的问题,在
mediastream2 下面找到Makefile 文件,找到SUBDIRS 将tests 删掉即可。
linphone 下面的所有的库编译完成之后,linphonec 的编译可能不能能过,原因是几个库
不能找到,这时候其它那几个库用不着,重新修改Makefile 即可(详见附件)。
2 Linphone 代码分析
Linphone 代码的分析主要分为三个部分。在整个分析过程主要是对音频通话相关的内
容进行分析,视频的流程类似,但有细节有很大的区别,请自行分析。如果在看代码的过程
中碰到一些问题不能理解,推荐先看看SIP/RTP/RTCP 等协议的基本内容,或者通过抓数据
包对整个会话过程进行分析。
2.1 Linphone
您可能关注的文档
- Influence of vibratory stress relief on residual.pdf
- Influence of Width from Landau Damping on the Thermodynamic Potential in QuarkGluonPlasma.pdf
- Influence Parameters on Properties of Dolomite Bricks Containing Different Bonding Systems.pdf
- Influences of degree inhomogeneity on average path length and random walks in disassortativ.pdf
- Influencing Factors Analysis of CoBranding Fit Degree Based on Niche Trend.pdf
- Information Search and Retrieval General Terms.pdf
- Informatics in Administration and Economics.pdf
- Inherent limitations of Visual Search and the Role of InnerScene Similarity.pdf
- initial catalog与database的区别.doc
- Inoue法制备超级感受态细胞丁香通.doc
文档评论(0)