SuperAPI AI 工具集

telnyx-twilio-migration

编程与开发

查看项目

更新于 10-16 02:44

技能介绍

用途

telnyx-twilio-migration 是一个把现有 Twilio 集成迁移到 Telnyx 的编排型技能(Skill)。它规定必须按 0 到 6 的顺序依次执行各个阶段,不得跳过阶段,也不得用自制的检查替代脚本。整个流程会实际修改用户的源代码文件以完成迁移。

主要能力

分阶段迁移流程

流程按顺序推进:Phase 0 前置准备、Phase 1 发现、Phase 2 规划、Phase 3 安装配置、Phase 4 代码迁移、Phase 5 验证、Phase 6 清理。每个阶段都有前置条件和退出标准,未满足退出标准不得进入下一阶段。

迁移状态跟踪

通过 bash {baseDir}/scripts/migration-state.sh <command> <project-root> [args] 在 migration-state.json 中记录进度。可用命令包括 init、set-phase、set、add-product、add-file、set-commit、status、show。该文件跨阶段保留资源 ID,并支持中断后恢复。若上下文丢失(例如压缩后),应立即执行 status 和 show 恢复当前阶段与所有资源 ID,然后从中断阶段继续。

统一变更(适用于所有迁移)

  • 认证方式:Basic Auth(AccountSID:AuthToken)改为 Bearer Token(Authorization: Bearer $TELNYX_API_KEY)。
  • Webhook 签名:HMAC-SHA1 改为 Ed25519。
  • Webhook 载荷:Messaging 和 Call Control 从扁平表单数据改为 data.payload 下的嵌套 JSON;TeXML 回调仍保持表单编码。
  • 录音默认值:TeXML <Record> 默认双声道,如 Twilio 流程期望单声道需设置 channels="single";<Dial recordingChannels> 默认单声道,recordMaxLength 默认 0。

阶段概览

  • Phase 0(主要用户输入阶段):确认 TELNYX_API_KEY 已安全设置、收集各产品目标号码(E.164)、每个目标对应的 ISO-2 国家代码(或显式同意计费的 lookup)、基于当前价格检查后批准的最高花费,以及 WebRTC 实时通话的单独选择。
  • Phase 1 发现:运行 bash {baseDir}/scripts/run-discovery.sh <project-root>,生成 twilio-scan.json,对扫描结果分类并确定范围。支持迁移的产品包括 voice、messaging、verify、webrtc、sip、fax、video、lookup、numbers、porting、pay。不支持的产品(Flex、Studio、TaskRouter、Conversations、Sync、Notify、Proxy、Autopilot)会以打包决策形式呈现。检测到移动平台(iOS、Android、React Native、Flutter)时按参考文献引导迁移。
  • Phase 2 规划:读取产品对应的参考文献,按确定性决策矩阵自动选择语音方案(TeXML 或 Call Control)与迁移策略(一次性或增量),生成 MIGRATION-PLAN.md。
  • Phase 3 安装配置:创建迁移分支,安装 Telnyx SDK(在 Phase 6 之前保留 Twilio 以便回滚),更新环境变量。
  • Phase 4 至 Phase 6:分别对应代码迁移、验证和清理。

使用方式

在各阶段中按文档给出的命令执行脚本,路径约定中的 {baseDir} 需替换为 SKILL.md 所在目录的绝对路径,不能把字面量传入 bash。Phase 0 要求一次性向用户收集五项信息,且禁止要求用户把 API Key 粘贴到对话中。Phase 1 至 6 除少数限定情形(如发现不支持产品的一次限定决策、新增或增加的付费操作审批、修复 3 次后仍失败的故障)外自主运行。

安装 SDK 时需使用带版本约束的确切命令,例如:Python 使用 pip install 'telnyx>=4.0,<5.0';Node 使用 npm install telnyx@^6 ws@^8(ws 为必需,因为 telnyx@6 将其声明为可选 peer 依赖,但 resources/index.js 会无条件加载 text-to-speech)。

适用场景

适用于需要把基于 Twilio 构建的服务(语音、消息、WebRTC、Verify、SIP、传真、视频、Lookup、号码、携号转网、支付等)整体迁移到 Telnyx 的项目,涵盖 Python、JavaScript/TypeScript、Go、Ruby、Java、PHP、C#/.NET 以及各移动平台客户端。

限制

  • 必须严格按阶段顺序执行,不得跳过阶段或替换脚本检查。
  • 不支持的 Twilio 产品在用户给出处理决定前不得修改或删除其代码。
  • 付费操作需先核对当前价格并获批最高花费;价格字符串只是非约束性示例而非报价,--confirm 只是执行保护,不能替代价格核对或花费授权。若当前价格不可得或可能费用无法界定,则不执行该付费操作。
  • 电话号码购买、10DLC 注册/审核和携号转网是独立工作流,需要各自当前的报价和显式授权;Phase 5 测试不会购买持久号码。
  • WebRTC 实时通话默认不拨打 PSTN,需单独付费授权后才可启用。
  • 文档中未提供的内容(如具体价格、效果数据、部分语言的完整示例)暂未提供。