当前位置: 首页 > news >正文

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

在 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"/>`
http://www.xdnf.cn/news/1073179.html

相关文章:

  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • C语言---常见的字符函数和字符串函数介绍
  • STM32[笔记]--7.MDK5调试功能
  • 关于ubuntu 20.04系统安装分区和重复登录无法加载桌面的问题解决
  • 医疗标准集中标准化存储与人工智能智能更新协同路径研究(上)
  • 基于Spring Boot的网上购物平台设计与实现
  • 最后的生还者2:重制版 免安 中文离线运行版+整合包
  • Vue 项目中 Excel 导入导出功能笔记
  • 【数据标注师】3D标注
  • 【数据标注师】事件标注2
  • kubectl get pod返回数据研究
  • 访问不了/druid/index.html (sql.html 或 login.html)
  • 在单片机中如何实现一个shell控制台
  • 权限提升-工作流
  • Go开发工程师-Golang基础知识篇
  • Element Plus el-button实例类型详解
  • Kioptrix Level1
  • TCP 在高速网络下的大数据量传输优化:拥塞控制、效率保障与协议演进​
  • 开源3D 动态银河系特效:Vue 与 THREE.JS 的奇幻之旅
  • 在项目中如何巧妙使用缓存
  • MCPA2APPT:基于 A2A+MCP+ADK 的多智能体流式并发高质量 PPT 智能生成系统
  • spring-ai 1.0.0 (2)提示词,消息构建和移植能力
  • 华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手
  • 复杂驱动开发-TLE9471的休眠流程与定时唤醒
  • python解释器 与 pip脚本常遇到的问题汇总
  • WPF XAML 格式化工具(XAML Styler)
  • 机器学习开篇:算法分类与开发流程
  • 网络安全体系结构和安全防护
  • Bootstrap 5学习教程,从入门到精通,Bootstrap 5 Flex 布局语法知识点及案例(27)
  • 【安卓Sensor框架-1】SensorService 的启动流程