# 设计通话流程

在配置处理通话的应用之前，先定义提示语、按键选项、录音方式和通话结束方式。按照 [SIP 中继指南](/docs/guides/voice/sip-trunks)将该应用连接到 Bird。

## 定义来电者的预期结果

选择一个简单、可观测的结果。例如，服务信息菜单可以用一个按键提供营业时间，另一个按键提供路线指引。除了主要选项外，还要编写静音和无效按键对应的响应。

将外部业务操作保留在拥有这些操作的应用或会话运行时中。语音确认并不能证明另一个系统已预约或更改了订单。当对话依赖实时工具和对话交互时，请使用 [AI 语音集成指南](/docs/ai/voice-conversations)。

## 梳理步骤和依赖关系

1. 命名入口点和每个目标节点。列出依赖它们的电话号码和外部应用。
2. 编写提示语并准备音频。指定按键是否应中断提示语，还是等待提示语播放完毕。
3. 为有效按键选择、静音和无效输入定义分支。为每个分支指定一个目标节点或明确的挂断操作。
4. 如果应用需要录制响应，请指定录制何时开始和停止、录制哪段音频以及是否需要转录。将敏感输入排除在录制窗口之外。
5. 检查所连接的应用是否支持所需的行为。在配置工作流之前，验证其输入处理、录制和转接操作。

将录制、转录处理和通话结果分开管理。[录制指南](/docs/guides/voice/recordings)涵盖了对生成产物的授权同意、访问和审查。

## 连接应用

创建中继并启用所需的呼叫方向。对于来电，启用呼入功能，配置交付网关并将符合条件的号码指向该中继。[接听来电指南](/docs/guides/voice/receiving-calls)涵盖号码路由。

对于去电，启用呼出功能并配置身份验证、主叫身份和目的地访问。使用 [SIP 呼叫指南](/docs/guides/voice/placing-calls)准备连接。

在所连接的应用中配置提示语和菜单行为。查找其 API、CLI 或管理界面公开的操作，并在修改之前阅读其当前的 schema 或帮助文档。Bird 的通话记录 API 文档描述了读取操作；读取示例不是创建通话的请求。

## 在更改生产路由之前进行测试

使用您控制的号码和隔离的应用配置。[首次通话指南](/docs/guides/voice/first-call)涵盖连接准备。

测试有效输入、静音、无效按键、中断提示语和正常挂断。验证每个分支是否到达预期的响应。当工作流使用录制和转录时，单独检查它们的状态。

在测试期间协调修改并记录已测试的配置。保留之前的应用配置和号码路由，以便在新工作流失败时恢复。恢复路由不会撤销已执行的业务操作。

## 验证通话结果

使用[通话日志](/docs/guides/voice/call-log)检查通话结果。已接听的通话、已完成的菜单和已完成的业务任务是独立的结果。当更新缺失或乱序到达时，将 [Voice 事件](/docs/guides/voice/events)与通话记录进行核对。

## 后续步骤

- [路由来电](/docs/guides/voice/receiving-calls)
- [录制与转录](/docs/guides/voice/recordings)
- [AI 语音对话](/docs/ai/voice-conversations)

## Related resources

- [What is a voice API?](/explained/voice/what-is-a-voice-api) (answer)
- [Voice](/products/voice) (product)
- [Voice overview](/docs/guides/voice/overview) (docs)

[Get an implementation brief](/learn/workspace?topic=voice)
