You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Freeswitch基础B2BUA配置问题:实现SIPP呼叫动态路由

Freeswitch B2BUA动态路由配置方案

要实现你需要的动态路由(优先使用Route头、无Route头则用请求URI),核心是利用Freeswitch内置的SIP变量动态获取目标地址,无需硬编码分机。以下是具体配置:

基础配置实现

直接修改拨号计划,用Freeswitch条件变量语法动态拼接桥接目标:

<include>
  <extension name="b2bua_dynamic_route">
    <condition field="sip_method" expression="INVITE">
      <!-- 优先取第一个Route头的URI,无Route头则用原始请求URI -->
      <action application="bridge" data="${if(${sip_route_uri}?${sip_route_uri}:${sip_req_uri})}"/>
    </condition>
  </extension>
</include>

关键变量说明

  • ${sip_route_uri}:Freeswitch自动提取的第一个SIP Route头中的完整目标地址(格式如sip:target_client@192.168.1.100:5060)
  • ${sip_req_uri}:LEG A发起INVITE时的原始请求URI,即最初呼叫的目标地址
  • ${if(条件?真分支:假分支)}:Freeswitch内置条件判断语法,自动判断Route头是否存在并选择对应目标

进阶优化(可选)

如果需要添加额外桥接参数(如呼叫超时),可先将目标URI赋值给变量再传入bridge:

<include>
  <extension name="b2bua_dynamic_route">
    <condition field="sip_method" expression="INVITE">
      <!-- 先赋值目标URI变量 -->
      <action application="set" data="target_uri=${if(${sip_route_uri}?${sip_route_uri}:${sip_req_uri})}"/>
      <!-- 添加30秒呼叫超时参数 -->
      <action application="bridge" data="${target_uri},30"/>
    </condition>
  </extension>
</include>

注意事项

  • 确保Freeswitch的SIP配置允许处理Route头:检查autoload_configs/sip.conf.xml中的enable-routes参数是否设为true(默认开启)
  • 若存在多个Route头,Freeswitch会自动按SIP路由规则优先跳转第一个Route头的地址,后续路由由目标节点处理

内容的提问来源于stack exchange,提问作者WitHeld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:32:20