当前位置: 首页 > 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.lqws.cn/news/561313.html

相关文章:

  • 第一章 从零开始学习大型语言模型-搭建环境
  • 人大金仓数据库jdbc连接jar包kingbase8-8.6.0.jar驱动包最新版下载(不需要积分)
  • 5G核心网,NAS短消息的实现
  • 可编程逻辑器件的发展与比较
  • 构建 AI 系统的 4 大 Agentic AI 设计模式
  • Python 可迭代的对象、迭代器 和生成器(何时使用生成器表达式)
  • 2099. 找到和最大的长度为 K 的子序列
  • 第6篇:中间件——Gin的请求处理管道
  • 大事件项目记录10-文章分类接口开发-更新文章分类
  • AtCoder AT_abc412_c [ABC412C] Giant Domino 题解
  • JavaEE:CAS单点登录
  • 数据结构1 ——数据结构的基本概念+一点点算法
  • 表达式求值
  • Brocade 博科交换机配置带外管理IP
  • 【unity游戏开发——网络】网络协议、TCP vs UDP 本质区别
  • 第九节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 菜单管理(上)
  • AI间对话APK制成
  • Centos 8设置固定IP
  • STM32中Usart的使用
  • WordPress最新版6.8.1安装教程
  • 前缀和 + 哈希表
  • NV046NV060美光固态闪存NV061NV063
  • 从用户到权限:解密 AWS IAM Identity Center 的授权之道
  • Linux更改国内镜像源
  • ZooKeeper深度面试指南三
  • Hadoop集群异常:两个NameNode全部为StandBy状态
  • 【中文核心期刊推荐】《计算机工程与设计》
  • linux学习第26天(信号集)
  • llm 基本案例实现
  • 从OCR瓶颈到结构化理解来有效提升RAG的效果