用途
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 参数细节、返回结构完整定义或版本兼容性说明。