freeswitch媒体协商的优先级方案

 

 

概述

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,尽量不协商成转码的方案。

 

空空如常

求真得真

posted @ 2023-03-31 14:47  求真得真  阅读(141)  评论(0编辑  收藏  举报