FreeSWITCH配置文件解析(2) dialplan 拨号计划中xml 的action解析

发布于:2025-06-30 ⋅ 阅读:(13) ⋅ 点赞:(0)

在 FreeSWITCH 的拨号计划(Dialplan)中,使用 XML 配置。其中,<action> 标签用于指定要执行的操作。这些操作通常是应用程序(applications)或设置变量等。下面列出常见的 <action> 类型及其含义:

1. 应用程序(Application)动作

最常见的动作是执行一个 Dialplan 应用程序。格式为:

<action application="app_name" data="app_args"/>
  • ​app_name​​: 应用程序的名称,如 answerbridgehangup 等。
  • ​data​​: 应用程序需要的参数。
常见应用程序示例:

 

1. ​answer

  • ​含义​​:接听来电。通常在需要媒体交互(如放音、收号)时使用。
  • ​语法​​:<action application="answer"/>
  • ​注意​​:非必须调用(如纯路由时可不接听),但接听后会产生媒体计费。

2. ​bridge

  • ​含义​​:将通话桥接到另一目的地(号码、SIP分机等),​​核心呼叫动作​​。
  • ​语法​​:<action application="bridge" data="user/1000"/>
  • ​关键​​:成功桥接后,双方媒体流连通。

3. ​playback

  • ​含义​​:向通话方播放音频文件(.wav, .mp3等)。
  • ​语法​​:<action application="playback" data="/path/to/file.wav"/>
  • ​用法​​:常见于IVR提示音、等待音。

4. ​set

  • ​含义​​:​​设置通道变量​​(channel variable),影响路由逻辑或功能。
  • ​语法​​:<action application="set" data="my_var=value"/>
  • ​示例​​:
    • effective_caller_id_number:设置主叫号码
    • hangup_after_bridge=true:通话结束是否挂断

5. ​transfer

  • ​含义​​:将当前通话转至另一 Dialplan 上下文或分机。
  • ​语法​​:<action application="transfer" data="destination [dialplan]"/>
  • ​场景​​:IVR菜单跳转、呼叫中心技能组转移。

6. ​hangup

  • ​含义​​:​​挂断通话​​。
  • ​语法​​:<action application="hangup" data="[NORMAL_CLEARING]"/>
  • ​注意​​:可指定挂机原因码(如USER_BUSY)。

7. ​sleep

  • ​含义​​:暂停执行(毫秒),​​通常用于延迟​​。
  • ​语法​​:<action application="sleep" data="1000"/>

8. ​record_session

  • ​含义​​:录制通话语音。
  • ​语法​​:<action application="record_session" data="/path/to/recording.wav"/>

9. ​log

  • ​含义​​:将日志写入 FreeSWITCH 日志系统。
  • ​语法​​:<action application="log" data="INFO My log message"/>

10. ​conference

含义:将用户加入**语音会议室**。 
语法:<action application="conference" data="room-name@profile"/>

11. ​gentones

 含义:生成特定音频信号(如拨号音、忙音)。

语法:<action application="gentones" data="tone_stream://%(400,200,400,450);loops=3"/>

12. ​rxfax​ / ​txfax

含义:接收 (`rxfax`) 或发送 (`txfax`) 传真。
语法:<action application="rxfax" data="/path/to/fax.tiff"/>

13. ​bind_meta_app

 含义:**绑定DTMF按键触发特定动作**(如语音菜单导航)。

 语法:<action application="bind_meta_app" data="key sequence application args"/>

14. ​set​ (再强调)

 关键应用:`set_tts_params` 设置TTS引擎、`ringback` 设置回铃音等。

15. ​intercept

含义:拦截/强插另一路通话(需权限)。 
语法:<action application="intercept" data="target_uuid"/>

16. ​fifo

含义:加入 **FIFO(先进先出)呼叫队列**。
语法:<action application="fifo" data="queue_name@domain"/>

 

17. ​valet_park

含义:代客泊车(Park call by DTMF)。 
语法:<action application="valet_park" data="slot_range"/>

18. ​info

含义:将通道信息输出到日志(调试用)。 
语法:`<action application="info"/>`

19. ​export

含义:设置**导出变量**(跨Dialplan上下文传递)。 
区别:export` 比 `set` 作用域更广,影响后续Dialplan执行。 * **语法**:
<action application="export" data="var=value"/>

20. ​play_fsv

含义:播放格式化为 `file_string://` 的音频序列。
语法:<action application="play_fsv" data="file_string:///files/prompt1.wav!/prompt2.wav"/>`

网站公告

今日签到

点亮在社区的每一天
去签到