SuperAPI AI 工具集

telnyx-voice-media-curl

编程与开发

查看项目

更新于 10-16 05:36

技能介绍

用途

Telnyx Voice Media(curl 版)用于在 Telnyx 通话中控制媒体播放与录音,适合构建 IVR 系统、播放语音公告、进行文本转语音播报以及录制通话内容。所有操作通过 Telnyx Call Control API 的 HTTP 接口完成,示例均使用 curl 命令。

主要能力

  • 播放音频 URL:在通话中播放指定音频文件,支持 mp3、wav 等类型,可设置缓存、循环、叠加播放等参数。连续下发多个播放命令时,音频会排队等待播放。
  • 停止音频播放:停止当前通话中正在播放的音频。
  • 文本转语音(Speak):将文本转换为语音并在通话中播放,支持指定语音、语言、SSML 负载类型、服务等级等。连续下发多个 speak 命令时同样会排队。
  • 录音控制:支持开始录音、停止录音、暂停录音、恢复录音。开始录音时可指定格式、声道、是否转写、转写引擎、转写语言、说话人分离等参数。
  • Webhook 事件:提供 callPlaybackStarted、callPlaybackEnded、callSpeakStarted、callSpeakEnded、callRecordingSaved、callRecordingTranscriptionSaved、callRecordingError 等事件,用于跟踪命令执行结果。

使用方式

  1. 安装:curl 在 macOS、Linux 和 Windows 10+ 上已预装,无需额外安装。
  2. 设置认证:通过环境变量设置 API Key: export TELNYX_API_KEY="YOUR_API_KEY_HERE"
  3. 调用接口:所有请求使用 Authorization: Bearer $TELNYX_API_KEY 头进行认证。

主要接口示例:

  • 播放音频:POST /calls/{call_control_id}/actions/playback_start
  • 停止播放:POST /calls/{call_control_id}/actions/playback_stop
  • 开始录音:POST /calls/{call_control_id}/actions/record_start(必填 format、channels)
  • 停止录音:POST /calls/{call_control_id}/actions/record_stop
  • 暂停录音:POST /calls/{call_control_id}/actions/record_pause
  • 恢复录音:POST /calls/{call_control_id}/actions/record_resume
  • 文本转语音:POST /calls/{call_control_id}/actions/speak(必填 payload、voice)

错误处理

API 调用可能因网络错误、速率限制(429)、校验错误(422)或认证错误(401)而失败。生产代码中应始终处理错误。常见错误码:401 无效 API Key,403 权限不足,404 资源未找到,422 校验错误(检查字段格式),429 速率限制(使用指数退避重试)。

Webhook 验证

Telnyx 使用 Ed25519 对 Webhook 进行签名,每个请求包含 telnyx-signature-ed25519 和 telnyx-timestamp 头。生产环境应始终验证签名,建议使用对应语言的 Telnyx SDK 进行验证(client.webhooks.unwrap)。端点必须在 2 秒内返回 2xx,否则 Telnyx 会重试(最多 3 次)。可在 Telnyx Portal 配置故障转移 URL。

适用场景

  • 构建 IVR 交互式语音应答系统
  • 播放公告或提示音
  • 文本转语音播报
  • 录制通话并可选进行转写

限制

  • 使用 overlay 模式时,target_legs 仅限 self。
  • 录音会在通话挂断时停止,也可通过停止录音命令主动停止。
  • 部分参数为可选,具体字段与枚举值以官方 API 文档为准。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。