回呼、电话菜单和语音助手使用呼叫平台的不同部分。
语音 API 可以控制什么?
语音 API 可以暴露配置、呼叫控制和报告功能,支持的操作由提供商定义。
配置涵盖中继线、主叫身份、目的地和号码路由。呼叫控制涵盖会话中的行为,例如语音提示或按键输入。报告返回呼叫的状态、时长和其他记录的结果。
不同提供商以不同方式实现呼叫控制。例如,Twilio 的 TwiML 通过返回给 Twilio 的指令描述操作。因此迁移应用程序意味着映射其行为和回调预期,而不仅仅是替换主机名。
读取呼叫的方法不等于发起呼叫的操作。
API 和 SIP 如何协同工作?
应用程序 API 可以配置或控制服务,而 SIP 在其下层建立电话会话。
SIP 是呼叫信令协议,用于创建、修改和终止会话,并协商参与者的连接方式。RTP 承载音频等实时媒体。
这些路径可以独立失败。呼叫可能在振铃,但媒体设置或网络路径阻止了某一方听到对方的声音。除了振铃和挂断之外,还要测试双向音频。
PBX(企业电话路由系统)可以保留自身的呼叫处理逻辑,同时使用提供商的 SIP 中继线。对话式运行时可以使用类似的连接,同时自行提供语音和业务工具。
我可以读取哪些呼叫信息?
通话记录标识该次尝试并报告其观测状态。可用字段取决于操作类型和呼叫所处的阶段。
- 连接: 呼叫是否被接纳、振铃并收到应答。
- 媒体: 参与者是否能听到彼此并进行交互。
- 业务结果: 预期的预约、回呼或支持任务是否完成。
已接听的电话呼叫可能到达真人、语音信箱或另一个自动化系统。仅凭通话记录无法证明客户完成了某项任务。
事件帮助你的应用程序对变化做出响应。处理重复和延迟送达的事件,然后将缺失或不确定的更新与提供商的记录状态进行核对。
如何使用 Bird 构建?
你需要配置外呼,包括一条 SIP 中继线、一个已验证的主叫号码和一个已启用的目的地国家。
配置变更需要具有写入级别的 voice_management。
在中继线上,outbound_enabled 必须为 true。其 domain 是你的 SIP 客户端连接的地址。API 密钥认证将你的密钥列在 allowed_api_key_ids 中;该密钥需要具有写入级别的 voice。更新该列表会替换所有条目,因此请保留其他客户端仍在使用的密钥。
你的主叫号码需要 status: verified,这表示你的工作区已完成验证呼叫。其 phone_number 包含国际号码,含前导 +。
目的地国家需要同时满足 enabled: true 和 status: available。启用某个国家并不意味着不支持的目的地变为可呼叫。
浏览器电话还需要在中继线上设置 session_credentials_enabled: true,并在中继线的 digest_algorithms 列表中包含 MD5。
通话后,您可以查看 status、rejection_reason 和 sip_response_code。列出呼叫段和读取呼叫段操作会返回这些字段。这些操作报告呼叫尝试的情况。您的 SIP 应用负责发起这些尝试。
对于电话菜单,你需要在已连接的应用程序中配置语音提示和按键分支。语音 AI 运行时为对话提供语音、推理和业务工具。
简而言之
语音 API 提供不同的操作。
配置、呼叫控制和通话记录是不同的接口。读取操作并不意味着可以发起呼叫。
信令和音频走不同的路径。
SIP 建立和变更会话。媒体承载参与者听到的内容,因此信令成功并不能证明音频正常工作。
电话接通并不能证明任务已完成。
已接听的呼叫可能到达语音信箱或其他系统。拥有该任务的应用程序负责确认任务是否完成。