sofia sip开发九 使用EMIPLIB库增加RTP流处理
修改FreeSwitch的proxy_media配置。参考这个地址:https://wiki.freeswitch.org/wiki/Proxy_media。如果FreeSwitch是缺省配置的,在“conf/dialplan/default.xml”文件内找到名为“Local_Extension”的extension。在bridge前设置proxy_media。
<action application="set" data="proxy_media=true" />
<action application="bridge" data=">
使用此项设置后,主叫方按键程序日志显示不会再收到INFO事件。即,使用此项设置将影响程序获得按键信息的方式。如果不使用此项设置,采用FreeSwitch的缺省设置,听到的语音表明延迟很严重。 或者使用下面的这项设置也会造成这个现象:
<action application="set" data="bypass_media=true" />
经反复测试发现,如采用缺省的Local_Extension设置,听到的语音延迟很严重。但一旦加上这句:“<action application="set" data="proxy_media=true" />”,或者这句:“<action application="set" data="bypass_media=true" />”,无论是否是与FreeSwitch交换RTP包都没有延迟现象。也就是说,media的模式不是影响语音延迟质量的原因。
实现一个完整的软电话或者交互式语音应答系统,必须为软件增加RTP流的处理。简单考察了下后,决定采用EMIPLIB库。EMIPLIB库基于JRTPLIB和JThread。
编译EMIPLIB
首先,尝试在Visual Studio 2010下编译此库。由于EMIPLIB库基于JRTPLIB和JThread,所以得先编译这两个库。编译这两个库参考了这篇文章:
http://www.cnblogs.com/skyseraph/archive/2012/04/07/2435540.html。我下载的JRTPLIB版本是3.9.1,下载的JThread版本是1.3.1。分别将他们解压到C:\emiplib\jrtplib-3.9.1和C:\emiplib\jthread-1.3.1。参考的文章中提到还需用到CMake,因此下载了2.8.12.2版本的CMake。CMake解压后的存储路径是C:\cmake-2.8.12.2-win32-x86。再在C:\emiplib目录下建两个子目录build和libs。然后在libs目录下再建两个子目录:jthread和jrtplib,在build目录下再建两个子目录:jthread和jrtplib。这些目录后面将会用到。这些准备工作都完成了后,回到那篇文章的第三部分编译步骤。
编译JThread
文章中的“打开cmake”,是指进入进入到C:\cmake-2.8.12.2-win32-x86\bin目录下,运行cmake-gui.exe程序。
“Where is the source code:”输入框内输入:C:/emiplib/jthread-1.3.1。
“Where to build the binaries:”输入框内输入:C:/emiplib/build/jthread。
CMAKE_INSTALL_PREFIX的值是C:/emiplib/libs/jthread。
LIBRARY_INSTALL_DIR的值是lib。
编译成功后,会在C:\emiplib\libs\jthread目录下生成两个目录lib和include。lib目录下有两个文件jthread.lib和jthread_d.lib,分别对应release和debug版本JThread的Lib文件。include目录下还会生成jthread目录,目录下有一些头文件。
编译JRTPLIB
“Where is the source code:”输入框内输入:C:/emiplib/jrtplib-3.9.1。
“Where to build the binaries:”输入框内输入:C:/emiplib/build/jrtplib。
LIBRARY_INSTALL_DIR的值是lib。
JThread_DIR的值是C:\emiplib\libs\jthread\lib\cmake\JThread。
CMAKE_INSTALL_PREFIX的值是C:/emiplib/libs/jrtplib。
ADDITIONAL_INCLUDE_DIRS的值是C:\emiplib\libs\jthread\include\jthread。
ADDITIONAL_RELEASE_LIBRARIES的值是C:\emiplib\libs\jthread\lib。
编译成功后,会在C:\emiplib\libs\jrtplib目录下生成两个目录lib和include。lib目录下有两个文件jrtplib.lib和jrtplib_d.lib,分别对应release和debug版本JRTPLIB的Lib文件。include目录下还会生成jrtplib3目录,目录下有一些头文件。
编译EMIPLIB
“Where is the source code:”输入框内输入:C:/emiplib/emiplib-1.1.1。
“Where to build the binaries:”输入框内输入:C:/emiplib/build/emiplib。
LIBRARY_INSTALL_DIR的值是lib。
JRTPLIB_DIR的值是C:/emiplib/build/jrtplib/cmake。
CMAKE_INSTALL_PREFIX的值是C:/emiplib/libs/emiplib。
ADDITIONAL_INCLUDE_DIRS的值是C:\emiplib\libs\jrtplib\include\jrtplib3。
ADDITIONAL_RELEASE_LIBRARIES的值是C:\emiplib\libs\jrtplib\lib。
那篇文档并没有编译EMIPLIB的内容,以上信息是我自己瞎编的。虽然有些数据是错的,但经此设置再编译后可以得到lib。编译成功后,会在C:\emiplib\libs\emiplib目录下生成两个目录lib和include。lib目录下有两个文件emiplib.lib和emiplib_d.lib,分别对应release和debug版本EMIPLIB的Lib文件。include目录下还会生成emiplib目录,目录下有一些头文件。
sofia sip开发九 使用EMIPLIB库增加RTP流处理相关推荐
- sofia sip开发二 编译库
sofia sip源码下载地址. http://sofia-sip.sourceforge.net/download.html 下载日期是2011年3月11日,版本1.12.11的源码.解压后得到so ...
- sofia sip开发一 基础知识
开发目标是实现一个简单的IVR程序,通过SIP协议注册到类似于FreeSwitch的语音平台上,拨打此IVR流程可以播放语音.收取按键.开发之前先准备点必要的背景知识. VoIP VoIP是一种透过互 ...
- Sofia-SIP辅助文档二四 - Sofia SIP用户代理库 - features特性模块
http://sofia-sip.sourceforge.net/refdocs/features/index.html,翻译自官网的这张网页. 模块元信息 features模块提供sofia-sip ...
- Sofia-SIP辅助文档十一 - Sofia SIP用户代理库 - nea - SIP事件模块
http://sofia-sip.sourceforge.net/refdocs/nea/index.html,翻译自官网的这张网页. 模块元信息 Sofia Event API提供操作SIP在线和会 ...
- 计算机网络分代核心的属性,计算机网络开发专业核心能力题库-操作
计算机网络开发专业核心能力题库-操作 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 隘桩答弦霉炳窃弃裂步扰慌阶佑践皂舆贺翠琳稠镍狼 ...
- “易写易库(EXEK)”项目启动,用易语言开发易语言支持库
"易写易库"(EXEK,E Xie E Ku)项目已经启动,用易语言开发易语言支持库.我(liigo)准备用一个月左右的业余时间,完成本项目的一期工程. 用易语言开发易语言支持库, ...
- android盒子开发招聘,[原创]Android沙盒开发之系统libc库定制修改
[原创]Android沙盒开发之系统libc库定制修改 2013-7-29 22:29 11525 [原创]Android沙盒开发之系统libc库定制修改 2013-7-29 22:29 11525 ...
- STC8H开发(九): STC8H8K64U模拟USB HID外设
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- Elixir: 开发和发布Elixir库
创建 Elixir 项目 $ mix new simple_statistics $ cd simple_statistics $ mix test Mix 生成了如下目录结构 |-- _build ...
最新文章
- 华为手机充满有提醒吗_华为推出的联发科天玑手机华为nova8 SE,你会买吗?
- 在Gilt使用Scala、Docker和AWS演化微服务
- React Native Fetch封装那点事...
- 《从零开始学Swift》学习笔记(Day 59)——代码排版
- DR、BDR和DROther的关系之通俗演绎
- 《HTTP权威指南》学习总结1——HTTP协议概述
- .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
- 软件定义存储正当时 厂商纷纷争抢一杯羹
- 使用CA签发的服务器证书搭建Tomcat双向SSL认证服务(转)
- 【渝粤教育】电大中专药物化学基础 (2)_1作业 题库
- 猎头公司人才管理现状及人才资源管理解决方案
- iNode客户端“未收到服务器回应,即将强行下线,请检查终端能否正常访问网络或者与管理员联系”问题与解决方式
- unity ios系统相机相册 IOS16 自动横屏
- 爬虫豆瓣读书top250,保存为本地csv文件,可用excel查看(具体步骤和容易遇到的坑)
- Python解释器和IDE的安装
- 一位经贸学姐从点工到测试主管的心路历程(一)
- 毕设 JAVA.JSP二手车交易系统论文
- 最新版YOLOv5 6.1使用教程
- 如何申请域名并绑定ip
- 医学计算机模型现状,【盘点】计算机模型开发助力多种人类疾病的深入研究