SuperAPI AI 工具集

telnyx-voice-streaming-curl

通用与其它

查看项目

更新于 10-16 03:39

技能介绍

用途:基于 Telnyx Call Control API,用 curl 实现通话音频的实时处理,包括媒体分叉(fork)、WebSocket 近实时流式传输和实时语音转写,可用于实时音频分析、欺诈检测或生成 AI 语音响应。

准备工作:curl 在 macOS、Linux 和 Windows 10+ 上已预装。设置环境变量 TELNYX_API_KEY="YOUR_API_KEY_HERE",后续示例均用它鉴权。所有请求为 POST,路径形如 https://api.telnyx.com/v2/calls/{call_control_id}/actions/...。

主要能力与接口:

  1. fork_start:把通话媒体实时分叉到指定目标,请求须指定 target 或 rx/tx 属性,可选 client_state、command_id、rx、stream_type(decrypted)、tx,返回 result。
  2. fork_stop:停止分叉,触发 call.fork.stopped webhook,可选 client_state、command_id、stream_type(raw、decrypted)。
  3. streaming_start:把媒体流到指定 WebSocket 地址或 Dialogflow 连接,音频以 base64 编码 RTP 载荷(原始音频)包在 JSON 中。可选参数包括流地址 stream_url、编解码 stream_codec(PCMU、PCMA、G722、OPUS、AMR-WB、L16、default)、轨道 stream_track(inbound_track、outbound_track、both_tracks)、双向模式与采样率、stream_auth_token、dialogflow 配置等。
  4. streaming_stop:停止流式传输,触发 streaming.stopped webhook,可选 stream_id 等。
  5. transcription_start:启动实时转写,可在挂断或调用 transcription_stop 时停止,触发 call.transcription webhook;可选 transcript 引擎(Google、Telnyx、Deepgram、Azure、xAI、AssemblyAI、Speechmatics、Soniox、Parakeet 等)及引擎配置、轨道。
  6. transcription_stop:停止转写。

错误处理:需检查 HTTP 状态码。常见 401 无效 API Key、403 权限不足、404 资源不存在、422 校验错误(检查字段格式)、429 限流(指数退避重试)。示例用 curl -s -w "\n%{http_code}" 取出状态码并分支处理。

Webhook:Telnyx 使用 Ed25519 非对称签名(非 HMAC),请求含 telnyx-signature-ed25519 与 telnyx-timestamp 头,须用 SDK 的 client.webhooks.unwrap 验证;时间戳超过 5 分钟应拒绝以防重放。端点须在 2 秒内返回 2xx,否则最多重试 3 次,可在门户配置故障转移 URL。事件类型包括 call.fork.started/stopped、streaming.started/failed/stopped、call.transcription,载荷含 call_control_id、call_leg_id、call_session_id、connection_id 等关联字段。

限制:资料未提供计费与价格信息;具体使用步骤和配额未详述。