
概述
freeswitch是一款简单好用的VOIP开源软交换平台。
随着4G/5G网络的完善,视频呼叫的需求慢慢变多,本文介绍使用fs对接视频线路的配置方案。
环境
CentOS 7.9
freeswitch 1.10.7
视频模块
目前主流视频编解码使用H264,需要编译安装fs的mod_h26x模块,默认不安装。
模块源代码目录如下。
freeswitch-1.10.7/src/mod/codecs/mod_h26x
编译安装后的模块如下,$freeswitch/mod/目录下。
mod_h26x.la
mod_h26x.so
修改模块加载配置文件,$freeswitch/conf/autoload_configs/modules.conf.xml
<load module="mod_h26x"/>
配置方案
dialplan拨号计划配置如下。
<condition field="caller_id_number" expression="^(\d+)$" break="on-true">
<action application="limit" data="hash cps all 100/1 !EXCHANGE_ROUTING_ERROR" />
<action application="limit" data="hash capacity all 3000 !EXCHANGE_ROUTING_ERROR" />
<action application="set"
data="effective_caller_id_name=${translate(${caller_id_number} GB-CALLER-IN)}" />
<action application="set"
data="effective_caller_id_number=${translate(${caller_id_number} GB-CALLER-IN)}" />
<action application="set"
data="destination_number=${translate(${destination_number} GB-DEST-IN)}" />
<action application="set" data="inherit_codec=true" />
<action application="export" data="absolute_codec_string=PCMA,H264" />
<action application="set" data="sip_copy_custom_headers=false" />
<action application="export" data="passthrough180=true" />
<action application="export" data="ringback=${cn-ring}" />
<action application="export" data="rtp_video_max_bandwidth=4mb" />
<action application="export" data="rtp_video_fmtp=profile-level-id=42001f;packetization-mode=1" />
<action application="bridge"
data="{sip_cid_type=none,sip_invite_call_id=${sip_call_id}
}sofia/gateway/${distributor(in-gw)}/${destination_number}" />
</condition>
其中几个关键配置项如下。
absolute_codec_string
rtp_video_max_bandwidth
rtp_video_fmtp
测试
测试视频双向正常。

总结
fs配置视频比较容易,但是视频质量要求参数配置的正确,需要多测试和调整。
目前fs中的264应该只支持透传模式。
空空如常
求真得真