SuperAPI AI 工具集

telnyx-texml-javascript

编程与开发

查看项目

更新于 10-16 02:05

技能介绍

用途

telnyx-texml-javascript 是 Telnyx 提供的 JavaScript SDK 技能,面向使用 TeXML(与 TwiML 兼容的标记语言)构建语音应用的开发者。它把 Telnyx 的 TeXML REST 接口封装为 JavaScript 客户端调用,便于在 Node.js 环境中管理语音应用、通话、会议、录音、队列和媒体流。

安装与初始化

安装命令:

npm install telnyx@6.74.2

初始化:

import Telnyx from 'telnyx';

const client = new Telnyx({ apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted });

主要能力

  • 通话(Calls):查询账户下多个通话资源(GET /texml/Accounts/{account_sid}/Calls);发起外呼呼叫(POST .../Calls,必填 Url,可选 Texml 对象),Telnyx 会从连接配置中的 XML Request URL 拉取 TeXML;按 CallSid 查询单个通话;更新通话(POST .../Calls/{call_sid},payload 键需使用 CamelCase)。
  • 通话录音(Recordings):查询某通话的录音(GET .../Calls/{call_sid}/Recordings.json);为通话请求开始录音(POST .../Calls/{call_sid}/Recordings.json);更新指定录音资源(POST .../Calls/{call_sid}/Recordings/{recording_sid}.json)。
  • Siprec:为通话启动 siprec 会话(POST .../Calls/{call_sid}/Siprec.json);更新指定 siprec 会话(POST .../Calls/{call_sid}/Siprec/{siprec_sid}.json)。
  • 媒体流(Streams):将通话媒体流推送到指定 WebSocket 地址(POST .../Calls/{call_sid}/Streams.json);更新指定媒体流资源(POST .../Calls/{call_sid}/Streams/{streaming_sid}.json)。
  • 会议(Conferences):列出会议资源、查询/更新单个会议;列出并拨入会议参会者、查询/更新/删除参会者;列出会议录音及会议录音 JSON。
  • 队列(Queues):列出队列资源、创建队列、查询队列、更新队列等。

使用方式

  • 错误处理:API 调用可能因网络错误、限流(429)、校验错误(422)或鉴权错误(401)失败。SDK 提供 Telnyx.APIConnectionError、Telnyx.RateLimitError、Telnyx.APIError 等错误类型;429 可读取 retry-after 头并做指数退避重试;422 应检查必填字段与格式。常见错误码含义:401 无效 API Key、403 权限不足、404 资源不存在、422 校验错误、429 被限流。
  • 分页:列表方法返回自动分页迭代器,可用 for await (const item of result) { ... } 自动遍历所有页。
  • 示例调用(节选):

const response = await client.texml.accounts.calls.retrieveCalls('account_sid'); console.log(response.calls);

const response = await client.texml.accounts.calls.calls('account_sid', { params: { Url: 'https://www.example.com/texml.xml' }, }); console.log(response.from);

const call = await client.texml.accounts.calls.retrieve('call_sid', { account_sid: '550e8400-e29b-41d4-a716-446655440000' }); console.log(call.account_sid);

for await (const queueListResponse of client.texml.accounts.queues.list('account_sid')) { console.log(queueListResponse.account_sid); }

适用场景

需要以 JavaScript 构建语音通信能力的服务端应用:外呼与通话状态跟踪、通话录音与存储管理、会议及参会者编排、呼叫队列、SIPREC 录制会话以及向外部 WebSocket 实时推送通话媒体流。

限制与说明

  • 部分查询接口为最终一致(例如 Calls 列表与单个通话查询)。
  • 更新通话等接口要求 payload 键使用 CamelCase。
  • 发起外呼时 TeXML 由 Telnyx 依据 Mission Control Portal 中为连接配置的 XML Request URL 获取。
  • 计费、价格、配额、平台支持范围及具体运行环境要求暂未提供。