用途
本技能面向使用 Ruby 语言对接 Telnyx 平台的开发者,提供 SIP 中继集成相关 API 的 SDK 调用示例。内容覆盖自定义存储凭据、Dialogflow 连接、外部连接、日志消息、市政地址与位置、电话号码、Release 请求和上传请求等管理操作,帮助开发者在 Ruby 项目中快速调用 Telnyx 接口。
主要能力
- 自定义存储凭据:检索、创建、更新、删除自定义存储凭据,支持 gcs、s3、azure 后端。
- Dialogflow 连接:检索、创建、更新、删除与 CallControl 连接关联的 Dialogflow 连接,保存服务账号凭据。
- 外部连接:列出、创建、检索、更新、删除外部连接,用于配置与 Telnyx 合作伙伴(如 Zoom、Operator Connect)的 SIP 中继集成。
- 日志消息:列出、检索、忽略外部连接的日志消息。
- 市政地址与位置:列出市政地址与位置,检索市政地址,更新位置的静态紧急地址。
- 电话号码:列出、检索、更新外部连接关联的电话号码。
- Release 请求:列出、检索 Release 请求。
- 上传请求:列出、创建、刷新状态、获取待处理数量、检索上传请求,用于向 Microsoft Teams 上传电话号码。
使用方式
安装:
gem install telnyx
初始化客户端:
require "telnyx"
client = Telnyx::Client.new( api_key: ENV["TELNYX_API_KEY"], # This is the default and can be omitted )
所有示例均假设 client 已按上述方式初始化。
错误处理:所有 API 调用都可能因网络错误、速率限制(429)、验证错误(422)或认证错误(401)而失败,生产代码中应始终处理错误:
begin result = client.messages.send_(to: "+13125550001", from: "+13125550002", text: "Hello") rescue Telnyx::Errors::APIConnectionError puts "Network error — check connectivity and retry" rescue Telnyx::Errors::RateLimitError
429: rate limited — wait and retry with exponential backoff
sleep(1) # Check Retry-After header for actual delay rescue Telnyx::Errors::APIStatusError => e puts "API error #{e.status}: #{e.message}" if e.status == 422 puts "Validation error — check required fields and formats" end end
常见错误码:401 无效 API 密钥,403 权限不足,404 资源未找到,422 验证错误(检查字段格式),429 速率限制(使用指数退避重试)。
分页:使用 .auto_paging_each 自动迭代:page.auto_paging_each { |item| puts item.id }。
适用场景
适用于需要在 Ruby 应用中管理 Telnyx SIP 中继集成的场景,例如配置外部连接以对接 Zoom 或 Operator Connect、管理 Dialogflow 语音集成、维护自定义存储凭据、处理与 Microsoft Teams 相关的电话号码上传与 Release 请求,以及查询外部连接日志和市政地址信息。
限制
资料未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤的额外说明。删除外部连接时,若应用正被电话号码使用、处于活动状态或属于 Operator Connect 连接,删除可能被阻止;移除 Operator Connect 集成需联系 Telnyx 支持。上传请求中 civic_address_id 与 location_id 只能提供其一,numbers_ids 数组最多允许 1000 个电话号码。