freeswitch配置视频对接

概述

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应该只支持透传模式。

空空如常

求真得真