SuperAPI AI 工具集

telnyx-numbers-services-javascript

编程与开发

查看项目

更新于 10-16 02:26

技能介绍

用途

本技能文档面向使用 JavaScript/Node.js 的开发者,说明如何通过 Telnyx 官方 SDK 配置电话号码的附加服务,包括语音通道(Voice Channels)、动态紧急地址与端点(E911)以及语音信箱(Voicemail)。文档以可运行的代码示例为主,帮助开发者快速接入 Telnyx Numbers Services 相关 API。

安装与初始化

安装指定版本 SDK:

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
});

文档中所有示例均假设 client 已按上述方式初始化。

错误处理

文档指出所有 API 调用都可能因网络错误、限流(429)、校验错误(422)或认证错误(401)而失败,并建议在生产代码中始终处理错误。示例展示了针对 Telnyx.APIConnectionError、Telnyx.RateLimitError(可读取 retry-after 头并配合指数退避重试)以及 Telnyx.APIError(含状态码与消息,422 时提示检查必填字段与格式)的处理方式。常见错误码包括:401 无效 API 密钥、403 权限不足、404 资源未找到、422 校验错误、429 触发限流。

分页

列表方法返回自动分页迭代器,可使用 for await (const item of result) { ... } 自动遍历所有页面。

主要能力

语音通道(非美国区域)

  • 列出账户的非美国语音通道:GET /channel_zones,返回 channels、countries、created_at、id、name、record_type、updated_at。
  • 更新非美国区域的语音通道数量:PUT /channel_zones/{channel_zone_id},必填参数 channels,用于根据预期通话量增减容量,以处理对非美国号码的多个并发呼入。

语音通道(美国区域)

  • 列出美国区域语音通道:GET /inbound_channels,返回 channels、record_type。
  • 更新美国区域语音通道数量:PATCH /inbound_channels,必填参数 channels,用于处理对美国号码的多个并发呼入。

使用 Channel Billing 的号码列表

  • 列出所有使用 Channel Billing 的号码(按 Zone 分组):GET /list,返回 number_of_channels、numbers、zone_id、zone_name。
  • 列出指定 Zone 使用 Channel Billing 的号码:GET /list/{channel_zone_id},返回字段同上。

动态紧急地址(E911)

  • 列出动态紧急地址:GET /dynamic_emergency_addresses,返回 administrative_area、country_code(US/CA/PR)、created_at、extended_address、house_number、house_suffix、id、locality、postal_code、record_type、sip_geolocation_id、status(pending/activated/rejected)、street_name、street_post_directional、street_pre_directional、street_suffix、updated_at。
  • 创建动态紧急地址:POST /dynamic_emergency_addresses,必填 house_number、street_name、locality、administrative_area、postal_code、country_code;其余字段为可选。
  • 获取指定动态紧急地址:GET /dynamic_emergency_addresses/{id}。
  • 删除指定动态紧急地址:DELETE /dynamic_emergency_addresses/{id}。

动态紧急端点

  • 列出动态紧急端点:GET /dynamic_emergency_endpoints,返回 callback_number、caller_name、created_at、dynamic_emergency_address_id、id、record_type、sip_from_id、status(pending/activated/rejected)、updated_at。
  • 创建动态紧急端点:POST /dynamic_emergency_endpoints,必填 dynamic_emergency_address_id、callback_number、caller_name;其余字段为可选。
  • 获取指定动态紧急端点:GET /dynamic_emergency_endpoints/{id}。
  • 删除指定动态紧急端点:DELETE /dynamic_emergency_endpoints/{id}。

语音信箱

  • 获取电话号码的语音信箱设置:GET /phone_numbers/{phone_number_id}/voicemail,返回 enabled(boolean)、pin(string)。
  • 创建语音信箱设置:POST /phone_numbers/{phone_number_id}/voicemail,可选 enabled、pin。
  • 更新语音信箱设置:PATCH /phone_numbers/{phone_number_id}/voicemail,可选 enabled、pin。

使用方式

开发者需先安装 telnyx@6.74.2 并初始化客户端,然后按需调用上述方法。文档中的示例均以 client 为入口,例如 client.channelZones.list()、client.dynamicEmergencyAddresses.create({...})、client.phoneNumbers.voicemail.retrieve('123455678900') 等。列表类接口支持自动分页迭代。

适用场景

适用于需要在 JavaScript/Node.js 应用中管理 Telnyx 电话号码附加服务的场景,例如:为非美国或美国区域调整并发呼入容量、查询使用 Channel Billing 的号码、为号码配置 E911 动态紧急地址与端点、以及启用或修改语音信箱设置。

限制

文档未提供关于定价、计费标准、平台兼容性、性能指标或具体业务效果的信息。部分接口(如语音信箱的创建与更新)仅列出可选字段,未说明默认值或字段约束细节。错误处理示例仅覆盖部分错误类型,实际使用需结合业务补充。