SuperAPI AI 工具集

telnyx-texml-ruby

编程与开发

查看项目

更新于 10-16 07:46

技能介绍

Telnyx TeXML Ruby 是 Telnyx 提供的 Ruby 语言 SDK 技能,用于基于 TeXML(一种与 TwiML 兼容的标记语言)构建语音应用。它通过 telnyx gem 调用 Telnyx TeXML API,覆盖应用、呼叫、会议、录音、队列与媒体流等资源的管理。

用途 该技能面向使用 Ruby 开发语音类应用的场景,帮助开发者通过 TeXML 标记语言创建可编程语音交互,例如外呼、接听控制、会议通话、通话录音和实时媒体流。

安装与初始化 安装命令:gem install telnyx 初始化示例: require "telnyx" client = Telnyx::Client.new( api_key: ENV["TELNYX_API_KEY"], # 默认值,可省略 ) 文中所有示例均假定 client 已按上述方式初始化。

主要能力 呼叫(Calls):获取账号下多个呼叫资源(该端点最终一致性)、发起外呼 TeXML 呼叫、获取单个呼叫、更新呼叫、获取呼叫录音、请求呼叫录音、更新呼叫录音、为呼叫请求 siprec 会话、更新 siprec 会话、从呼叫开始媒体流、更新呼叫媒体流。 会议(Conferences):列出会议资源、获取会议资源、更新会议资源、列出会议参与者、拨入新参与者、获取参与者资源、更新参与者、删除参与者、列出会议录音、获取会议录音。 队列(Queues):列出队列资源、创建队列、获取队列资源。 录音与流:支持录音通道、轨道、状态回调等参数,以及向指定 WebSocket 地址推送媒体流。

使用方式 通过 client.texml 命名空间调用各资源方法,例如:

  • 发起外呼:client.texml.accounts.calls.calls("account_sid", application_sid: "example-app-sid", from: "+13120001234", to: "+13121230000")
  • 获取呼叫:client.texml.accounts.calls.retrieve("call_sid", account_sid: "...")
  • 列出队列:client.texml.accounts.queues.list("account_sid") 文档给出了各端点的 HTTP 方法与路径(如 GET /texml/Accounts/{account_sid}/Calls)、必需与可选参数,以及返回字段列表。

错误处理 所有 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:被限流,等待并按指数退避重试

sleep(1) # 查看 Retry-After 头获取实际延迟 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 构建可编程语音能力的团队,包括外呼与呼叫控制、会议通话与参与者管理、通话录音与 siprec 合规录音、呼叫队列以及实时媒体流接入等。

限制 该技能依赖 Telnyx 账号与 TeXML 应用配置;具体计费、价格、区域可用性、SLA 等资料暂未提供。部分端点标注为最终一致性,读取结果可能存在延迟。