用途
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 获取。
- 计费、价格、配额、平台支持范围及具体运行环境要求暂未提供。