概述

freeswitch是一款简单好用的VOIP开源软交换平台。

不同的媒体格式各有优缺点,实际环境中的应用要根据线路和客户的实际需求确定。

本文中介绍一种较为通用的媒体配置方案,可以适配大部分场景。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

测试环境

测试环境的网络结构如下。B路被叫部分支持“PCMA,G729”,部分只支持“PCMA”。B路响应180的时候,fs137需要对A路放回铃音。

A(PCMA,G729) -> fs137 -> B(PCMA[,G729])

fs137的媒体需求优先级。优先在AB路使用G729,次选在AB路使用PCMA,尽量不协商转码。

配置方案

修改 conf/vars.xml。

<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G729,PCMA"/>

<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=G729,PCMA"/>

修改拨号计划 conf/test.xml

<action application="set" data="inherit_codec=true"/>

<action application="export" data="absolute_codec_string=G729,PCMA" />

<action application="export" data="rtp_codec_negotiation=greedy" />

测试

测试关注的几种常见场景。

A(PCMA,G729) -> fs137 -> B(PCMA,G729)

A(PCMA,G729) -> fs137 -> B(PCMA)

A(PCMA,G729) -> fs137 -> B(PCMA),B路先响应180,fs137对A路响应183并放音。

总结

今天介绍了一种比较通用的媒体配置方案,可以适配大部分场景。

实际的生产环境中,由于运营商线路和客户的特殊性,情况会更加复杂。

媒体配置的大原则,优先使用G729,次选PCMA,尽量不协商成转码的方案。

空空如常

求真得真

freeswitch媒体协商的优先级方案的更多相关文章

  1. FreeSWITCH媒体转码配置

    一.说明: FreeSWITCH版本1.6.13二.测试准备 软电话A的语音编码只配置iLBC:软电话B的语音编码只配置PCMU: A->B,编码协商失败,收到488消息. 三.修改文件vars ...

  2. freeswitch 编码协商

    编辑 /usr/local/freeswitch/conf/sip_profiles/internal.xml 添加注释     <param name="inbound-zrtp-p ...

  3. 个推基于 Apache Pulsar 的优先级队列方案

    作者:个推平台研发工程师 祥子 一.业务背景在个推的推送场景中,消息队列在整个系统中占有非常重要的位置.当 APP 有推送需求的时候, 会向个推发送一条推送命令,接到推送需求后,我们会把APP要求推送 ...

  4. 《FreeSWITCH: VoIP实战》:SIP 模块 - mod_sofia

    SIP 模块是 FreeSWITCH 的主要模块,所以,值得拿出专门一章来讲解. 在前几章时里,你肯定见过几次 sofia 这个词,只是或许还不知道是什么意思.是这样的,Sofia-SIP 是由诺基亚 ...

  5. Freeswitch配置之sofia

    SIP模块 - mod_sofia SIP 模块是 FreeSWITCH的主要模块. 在 FreeSWITCH中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH支持很多的 End ...

  6. freeswitch对接WEBRTC的一个candidate问题

    概述 近几年,WEBRTC的完善与成熟,使得网页上使用webrtc的应用越来越多. Freeswitch是一个开源的软交换平台,可以直接支持webrtc的对接方式. 最近在测试fs和webrtc的对接 ...

  7. 给Asp.Net MVC及WebApi添加路由优先级

    一.为什么需要路由优先级 大家都知道我们在Asp.Net MVC项目或WebApi项目中注册路由是没有优先级的,当项目比较大.或有多个区域.或多个Web项目.或采用插件式框架开发时,我们的路由注册很可 ...

  8. 【转载】为ASP.NET MVC及WebApi添加路由优先级

    路由方面的: 转载地址:http://www.jb51.net/article/73417.htm Author:lijiao 这是一个对Asp.Net Mvc的一个很小的功能拓展,小项目可能不太需要 ...

  9. HTTP/2的优先级

    前言 记得HTTP/3即将标准化了.今日早读文章由@smallbonelu翻译授权分享. @smallbonelu,一枚爱好跑步的前端工程师 正文从这开始-- 以正确的顺序请求页面资源对于快速的用户体 ...

  10. 前端学HTTP之报文首部

    前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...

随机推荐

  1. FATAL Exited too quickly (process log may have details)的解决方案

    作为一个混混的开发,不会啥容器操作.所以一般都是用supervisor来管理一些运行的进程 用了一段时间还是比较好用的,这个软件也是用的Python开发. 但在使用的过程中,status时会出现 FA ...

  2. CMD输出文本文件内容的type指令(替代Linux的cat指令)

    :: 本脚本的所有指令本身不输出到屏幕 @echo off :: 打印文本文件内容并匹配关键字,结果不输出到屏幕 type result.txt | find "error" &g ...

  3. iterm2免密自动登陆服务器

    之前的配置方式出现了less命令查看文本格式紊乱,以及输入的命令也是紊乱的,导致没办法正常使用 以前的配置方式如下: 在iterm2里配置command,如下图 2. online文件如下: #!/u ...

  4. Python人脸识别——电脑摄像头检测人脸与眼睛

    ##10 电脑摄像头检测人脸与眼睛 import cv2 #检测图片 def detect(frame):     #灰度化图片,减少运算量     #img = cv2.cvtColor(frame ...

  5. jquery.axios

    概念:通过 HTTP 请求加载远程数据. *注:所有的选项都可以通过$.ajaxSetup()函数来全局设置. 回调函数:要处理$.ajax()得到的数据,则需要使用回调函数.beforeSend.e ...

  6. 使用Jquery的.css('border')在火狐不兼容

    改成如下就可以兼容火狐.IE.谷歌(border-left-color.border-left-width等)

  7. HashMap中的Entry接口

    利用Entry接口,快速又方便 import java.util.HashMap; import java.util.Map; public class MapDemo { public static ...

  8. c# + appium 连接设备自动化

    //private static AndroidDriver<AppiumWebElement> _driver; //private static AppiumLocalService ...

  9. IT工具知识-10:Markdown小技巧(不断更新)

    Markdown小技巧 1. 如何实现在文内不同关键字间跳转 该技巧是基于typora软件下使用的,参考的这个教程:视频链接 该教程有两种跳转方式:一.使用Markdown语法,二.使用HTML的锚点 ...

  10. linux shell 目录

    linux shell 目录 目录 linux shell 目录 类型 unix支持三大主流shell linux支持的shell(可有四种) 部分相关命令 查询进程 ps pstree kill 查 ...