在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服务。