在freeSwitch中,使用拨号计划实现来自gateway 为gw80 的来电转向 gateway 为gw4的,并且被叫前缀加上88
可以通过如下拨号计划实现该功能:
```
<include>
<context name="default">
<extension name="forward_call">
<condition field="destination_number" expression="^53(\d+)$">
<action application="set" data="forward_destination=88${1}"/>
<action application="bridge" data="sofia/gateway/gw80/${destination_number}"/>
<action application="hangup"/>
</condition>
</extension>
<extension name="forward2_call">
<condition field="destination_number" expression="^53(\d+)$">
<action application="set" data="destination_number=15098829958"/>
<action application="bridge" data="sofia/gateway/gw4/${destination_number}"/>
<action application="hangup"/>
</condition>
</extension>
</context>
</include>
```
在此拨号计划中,我们创建了两个 `<extension>` 分别用于实现来电转向。
第一个 `<extension>` 被称为 `forward_call`,其匹配的号码范围是 `^53(\d+)$`,表示所有以53开头的号码。当匹配成功后,我们使用 `<action>` 语句中的 `set` 应用程序,指定要使用的转向目标号码为 `88${1}`。转向号码的前缀为88。`${1}` 是一个特殊的变量,它会被匹配成功的正则表达式中的第一个匹配组所替代,即去掉53的号码。最后我们使用 `bridge` 应用程序,指定使用的网关为 `gw80`,以便转移到转向目标号码。
第二个 `<extension>` 被称为 `forward2_call`,其也匹配的号码范围是 `^53(\d+)$`,表示所有以53开头的号码。当匹配成功后,我们使用 `<action>` 语句中的 `set` 应用程序,指定要使用的转向目标号码为 `15098829958`。然后我们使用 `bridge` 应用程序,将其转移到网关为 `gw4`,以实现转向功能。
要使这两个拨号计划生效,可以将其保存为xml文件并放置在`/usr/local/freeswitch/conf/dialplan/public/`目录下 (假设你的FreeSWITCH安装在`/usr/local/freeswitch/`目录下),然后重启FreeSWITCH服务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库