介绍
CFD 界面有以下部分组成:
- a: “Components” 组件工具箱 – 可以往你的项目添加内置或者自定义的组件。
- b: 设计工作区 – 打开或创建新的呼叫流程时显示。 在打开项目后,会显示你可能执行操作的 “Start Page”,比如在其中显示创建一个 callflow, dialer 或组件等等。
- c: 自定义视图 – 使用工具栏的或者 “Tools” 菜单下的这些工具:
- “Zoom Level” – 按设定的比例显示组件和呼叫流程。
- “Navigation Tool” – 手性图标可以抓取并移动视图。
- “Default” – 箭头光标可以在视图中选择组件。
- d: “Project Explorer” 和 “Properties Window” 面板 – 控制并配置项目和组件的选项。
- e: “Error List” 和 “Output” 面板 – 查看你的项目的错误信息。
流程类型
一个呼叫流程由一系列的内置组件或自定义组件构成。你可以从工具箱将他们拖拽到设计工作区的任意位置。当一个组件被放置在对应位置后,用户可以修改它的参数,使用 “Properties Window” 或者 “Configure” 对话框。
对于每一个呼叫流程,CFD 可以为呼叫流和组件创建三种呼叫类型(主流程, 错误处理流程,断开处理流程 ),其中主流程和错误处理流程也可以用于拨号器。
主流程(Main Flow)
常见的执行流程:只要没有错误发生或呼叫断开,每个组件就会在 “主流程” 中按顺序执行。发生错误时,将执行 “错误处理流程”。当呼叫断开时,继续执行 “断开处理流程”。呼叫相关组件不能在“断开处理流程”中使用。
错误处理流程(Error Handler Flow)
如果在执行主流程或者断开处理流程的时候发生错误,就将执行错误处理流程。
用户定义的组件始终从调用流,拨号程序或包含它的其他用户定义组件执行。因此:
- 当执行调用流程时发生错误时,将执行调用流程的错误处理程序,然后完成调用。
- 当执行拨号程序时发生错误时,执行拨号程序的错误处理程序,然后循环结束,拨号程序暂停直到下一次迭代。
- 当执行用户定义组件时发生错误时,将执行用户定义组件的错误处理程序,然后在父主流上继续执行。但是,如果错误处理程序为空,则在父级的错误处理程序流上继续执行。它表现为一个 catch block。
比如一个呼叫抵达,开始执行:Callflow1, 分别将呼叫送至 Component1和 Component2。当在主流程的 Component2 发生错误后,执行 Component2 的错误处理程序是空的,因此不处理错误。Component1 的错误处理程序通过处理错误的包含组件执行,最后在 Callflow1 的主流上继续执行,因为错误是在子组件上处理的。
断开处理流程(Disconnect Handler Flow)
当呼叫流程中的呼叫断开连接时,断开处理程序将会执行,整个呼叫流程将会结束。另一方面,如果呼叫在用户定义的组件上断开连接,则当断开处理流程结束其执行时,将在父类断开处理流程上继续执行。
行为类似于用于错误处理的行为,但在这种情况下,呼叫将断开连接。
比如一个呼叫抵达,开始执行流程:
Callflow1 呼叫 Component1,呼叫 Component2。如果此时断开连接,则执行 Component2 的断开处理程序,然后执行 Component1 的断开处理程序,最后执行 Callflow1 的断开处理程序。此调用不会再次执行主流程。
组件工具箱
工具箱包含提供的内置组件,以及用户为特定项目创建的自定义组件。我们简单介绍一下每个组件:
- “Call Control”
- Menu: 播放一段音频,并使用单个 DTMF 选项。
- User Input: 采集呼叫者输入的 DTMF 数字。
- Authentication: 为后续的验证采集用户的 ID 和 PIN 码。
- Creadit Card: 收集用户的信用卡号码,到期时间和安全码。输入数字的输号不会录音。
- Prompt Playback: 播放一段音频。
- Record: 为用户录音。
- Record and Email: 用户录音后将录音文件通过邮件发送。
- Transfer: 呼叫转接。
- Attach Call Data: 为一通呼叫添加数据。
- Get Attached Call Data: 读取之前为呼叫添加的数据。
- Disconect Call: 断开呼叫。
- Make Call: 在两个号码直接建立呼叫。
- “Call Flow”
- Assign a Variable: 设置变量的值。
- Increment Variable: 变量按固定值增长。
- Decrement Variable: 变量按固定值减少。
- Create a Condition: 根据条件判断,选择不同分支。
- Date & Time Condition: 根据日期和时间选择不同分支,也可以过滤送到 3CX 的 DID。
- Loop: 满足条件时进行循环。
- Logger: 向 3CXCallFlow.log 文件写入信息。
- Exit Callflow: 退出呼叫流程。
- “Application Tools”
- Encryption: 使用TripleDES加密或解密数据,并计算MD5哈希值。
- Database Access: 在SQL Server,PostgreSQL 或 MySQL数据库上执行SQL语句。
- E-Mail Sender: 可以发送带附件的邮件。
- Execute C# File: 执行 C# 代码(.NET Core)文件。
- Execute C# Code: 在组件中执行 C# 代码(.NET Code)。
- Read / Write to File: 读取或写入文件。
- Open a Socket: 打开TCP或UDP连接,通过连接发送数据,并可选择等待远程端点的响应。
- HTTP Requests: 执行 HTTP 请求。
- Web Service REST: 执行 REST Web 服务,提供身份验证。
- Web Service (POST): 执行简单的网页服务。
- “3CX Internal Properties”
- Get DN Property: 读取 DN 属性值。
- Set DN Property: 写入 DN 属性值。
- Get Global Property: 读取 3CX 全局参数。
- Set Global Property: 写入 3CX 全局参数。
- Get Extension Status: 获取分机正在使用的状态,并确认是否在通话中。
- Set Extension Status: 改变分机的状态。
- Get Queue Extension: 获取队列中登入的坐席列表。
- “User Defined Components” – 创建的这些用户自定义组件会自动添加到工具箱中。
关于 CFD 组件的更多功能,请参考: CFD 组件
Project Explorer Window
该面板可以浏览项目文件,包含 callflow, dialer 以及用户自定义模块。我们可以将这些组件按组的方式放在文件夹中。呼叫的入口始终是 callflow,而 dialer 是开始自动进行出站呼叫的入口。
“Project Explorer” 允许用户执行以下操作:
- 保持项目或文件
- 重命名项目,文件夹及文件
- 关闭项目或文件
- 创建一个新文件夹, callflow, dialer 或组件
- 添加一个已经存在的文件夹及, callflow, dialer 或组件
- 删除已经存在的文件夹, callflow, dialer 或组件
- 编译项目
这些动作都可以在选中一个项目后右键,在弹出的菜单中选择。文件和文件夹可以直接用拖拽的方式直接移动。如果 CFD 不能找到引用的文件或文件夹,会以红色字体显示,表示它已丢失。
Properties Window
“Properties Window” 显示当前选择的项目信息。窗口中会显示项目可以执行的一些动作,以方便执行。比如,”Create a condition” 组件包含 “Add Branch” 动作,可以更轻松的创建分支。
Error List Window
“Error List” 面板会显示项目编译过程中的几种信息:
- Errors: 项目因为某些组件的错误而无法编译。用户需要正确处理生成的错误。
- Warning: 有一些问题存在,但是可以编译输出文件。用户需要考虑这些信息,并检查某些动作在 CFD 中是否多余。
- Messages: 用户在不影响输出生成的情况下考虑的信息。
每条消息都会包含与之相关的组件信息以及文件位置。对某条信息双击或者按下回车,会自动打开引用的文件并选中组件。
CFD可以通过单击每种消息类型的按钮来过滤消息列表。
Output Window
“Output” 面板显示编译过程中执行的操作。比如,什么时候编译开始,什么时候编译文件等等。