SuperAPI AI 工具集

telnyx-numbers-services-java

编程与开发

查看项目

更新于 10-16 04:39

技能介绍

用途

Telnyx Numbers Services - Java 是面向 Java 开发者的技能示例,用于通过 Telnyx Java SDK 配置电话号码相关的服务,包括语音信箱(voicemail)、语音通道(voice channels / Channel Billing)以及紧急服务(E911)中的动态紧急地址与动态紧急端点。该技能以代码示例形式展示如何调用 Telnyx API,帮助开发者在 Java 项目中集成这些号码管理能力。

安装与初始化

该技能使用 Telnyx Java SDK,版本为 6.89.0。

Maven 安装方式:

<dependency>
    <groupId>com.telnyx.sdk</groupId>
    <artifactId>telnyx</artifactId>
    <version>6.89.0</version>
</dependency>

Gradle 安装方式:

implementation("com.telnyx.sdk:telnyx:6.89.0")

客户端初始化示例:

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;

TelnyxClient client = TelnyxOkHttpClient.fromEnv();

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

错误处理

所有 API 调用都可能因网络错误、速率限制(429)、校验错误(422)或认证错误(401)而失败。生产代码中应始终处理错误:

import com.telnyx.sdk.errors.TelnyxServiceException;

try {
    var result = client.messages().send(params);
} catch (TelnyxServiceException e) {
    System.err.println("API error " + e.statusCode() + ": " + e.getMessage());
    if (e.statusCode() == 422) {
        System.err.println("Validation error — check required fields and formats");
    } else if (e.statusCode() == 429) {
        // Rate limited — wait and retry with exponential backoff
        Thread.sleep(1000);
    }
}

常见错误码:401 表示 API 密钥无效,403 表示权限不足,404 表示资源未找到,422 表示校验错误(需检查字段格式),429 表示触发速率限制(建议使用指数退避重试)。

分页说明

列表方法返回一页数据。可使用 .autoPager() 自动迭代:for (var item : page.autoPager()) { ... }。如需手动控制,可使用 .hasNextPage() 与 .nextPage()。

主要能力

非美国区域语音通道

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

美国区域语音通道

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

使用 Channel Billing 的号码列表

  • 列出所有使用 Channel Billing 的号码(按 Zone 分组):GET /list,返回 number_of_channels、numbers(array[object])、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}。

动态紧急端点(E911)

  • 列出动态紧急端点: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。

使用方式

该技能以 Java 代码示例形式提供,开发者需先安装 Telnyx Java SDK 6.89.0,初始化 TelnyxClient,然后按需调用对应模块的方法。示例中展示了参数构建方式(如使用 builder 模式)以及返回对象的字段。对于列表接口,可使用自动分页或手动分页。

适用场景

适用于需要在 Java 应用中管理 Telnyx 电话号码服务的开发者,例如:配置号码语音信箱、调整美国或非美国区域的并发语音通道容量、查询使用 Channel Billing 的号码、管理 E911 动态紧急地址与端点等。

限制

文档未提供关于收费、价格、平台兼容性、性能效果或具体使用步骤的额外说明。部分接口的完整参数与返回字段以文档所列内容为准,未列出的信息暂未提供。