SuperAPI AI 工具集

telnyx-webrtc-java

编程与开发

查看项目

更新于 10-16 05:37

技能介绍

用途

Telnyx WebRTC Java 技能面向使用 Java 构建浏览器端或移动端软电话(softphone)应用的开发者,用于通过 Telnyx Java SDK 管理 WebRTC 相关凭证和移动推送通知设置。

主要能力

该技能基于 Telnyx Java SDK,覆盖以下 API 资源与操作:

移动推送凭证(mobile_push_credentials)

  • 列表:GET /mobile_push_credentials
  • 创建:POST /mobile_push_credentials,必填 type、certificate、private_key、alias
  • 检索:GET /mobile_push_credentials/{push_credential_id}
  • 删除:DELETE /mobile_push_credentials/{push_credential_id}

返回字段包括:alias、certificate、created_at、id、private_key、project_account_json_file、record_type、type、updated_at。

电话凭证(telephony_credentials,即 On-demand Credentials)

  • 列表:GET /telephony_credentials
  • 创建:POST /telephony_credentials,必填 connection_id,可选 expires_at、name、tag
  • 检索:GET /telephony_credentials/{id}
  • 更新:PATCH /telephony_credentials/{id},可选 connection_id、expires_at、name、tag
  • 删除:DELETE /telephony_credentials/{id}

返回字段包括:created_at、expired、expires_at、id、name、record_type、resource_id、sip_password、sip_username、updated_at、user_id。

使用方式

安装

Maven:

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

Gradle:

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

初始化客户端

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

TelnyxClient client = TelnyxOkHttpClient.fromEnv();

错误处理

所有 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 key,403 权限不足,404 资源未找到,422 校验错误(检查字段格式),429 速率限制(使用指数退避重试)。

分页

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

调用示例

列出移动推送凭证:

import com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialListPage;
import com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialListParams;

MobilePushCredentialListPage page = client.mobilePushCredentials().list();

创建移动推送凭证(iOS 示例):

import com.telnyx.sdk.models.mobilepushcredentials.MobilePushCredentialCreateParams;
import com.telnyx.sdk.models.mobilepushcredentials.PushCredentialResponse;

MobilePushCredentialCreateParams.CreateMobilePushCredentialRequest.Ios params = MobilePushCredentialCreateParams.CreateMobilePushCredentialRequest.Ios.builder()
    .alias("LucyIosCredential")
    .certificate("-----BEGIN CERTIFICATE----- MIIGVDCCBTKCAQEAsNlRJVZn9ZvXcECQm65czs... -----END CERTIFICATE-----")
    .privateKey("-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAsNlRJVZn9ZvXcECQm65czs... -----END RSA PRIVATE KEY-----")
    .build();
PushCredentialResponse pushCredentialResponse = client.mobilePushCredentials().create(params);

检索移动推送凭证:

PushCredentialResponse pushCredentialResponse = client.mobilePushCredentials().retrieve("0ccc7b76-4df3-4bca-a05a-3da1ecc389f0");

删除移动推送凭证:

client.mobilePushCredentials().delete("0ccc7b76-4df3-4bca-a05a-3da1ecc389f0");

列出所有电话凭证:

import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialListPage;
import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialListParams;

TelephonyCredentialListPage page = client.telephonyCredentials().list();

创建电话凭证:

import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialCreateParams;
import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialCreateResponse;

TelephonyCredentialCreateParams params = TelephonyCredentialCreateParams.builder()
    .connectionId("1234567890")
    .build();
TelephonyCredentialCreateResponse telephonyCredential = client.telephonyCredentials().create(params);

获取电话凭证:

import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialRetrieveParams;
import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialRetrieveResponse;

TelephonyCredentialRetrieveResponse telephonyCredential = client.telephonyCredentials().retrieve("550e8400-e29b-41d4-a716-446655440000");

更新电话凭证:

import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialUpdateParams;
import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialUpdateResponse;

TelephonyCredentialUpdateResponse telephonyCredential = client.telephonyCredentials().update("550e8400-e29b-41d4-a716-446655440000");

删除电话凭证:

import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialDeleteParams;
import com.telnyx.sdk.models.telephonycredentials.TelephonyCredentialDeleteResponse;

TelephonyCredentialDeleteResponse telephonyCredential = client.telephonyCredentials().delete("550e8400-e29b-41d4-a716-446655440000");

适用场景

  • 构建浏览器端软电话应用时,通过 Java 后端管理 WebRTC 凭证。
  • 构建移动端软电话应用时,配置 iOS 等平台的推送证书与私钥,以支持移动推送通知。
  • 生成、更新和撤销按需电话凭证(含 SIP 用户名与密码)。

限制

  • 资料仅提供 Java SDK 的凭证与推送设置管理能力,未提供其他语言或平台的支持说明。
  • 未提供收费、价格、配额或性能指标等信息。
  • 未提供完整的 API 参数细节、返回结构完整定义或版本兼容性说明。