You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twilio Media Streams握手错误31920排查求助

排查Twilio错误码31920的方向建议

针对你遇到的Twilio返回错误码31920、播报提示语后随即挂断的问题,结合你已经确认服务器支持TLS1.2的前提,给你以下具体排查方向:

  • 验证Direct Line WebSocket URL的有效性

    • 首先确认返回给Twilio的wss链接是否未过期:Direct Line令牌默认有30分钟有效期,若生成后间隔过久再使用可能失效。可以用wscat -w 5 "你的完整wss地址"命令测试连接(需提前安装wscat工具),查看能否成功建立WebSocket连接并正常交互。
    • 检查生成令牌所用的Direct Line密钥是否正确:确保用的是对应环境的密钥(生产/测试密钥不要混用),且关联的Bot服务处于正常运行状态,无限流、暂停等情况。
  • 检查Twilio Stream标签的参数与格式

    • 确认<Stream>标签的name属性符合规范:尽量使用字母、数字和下划线组合,避免特殊字符(Twilio对该属性虽无强制限制,但异常字符可能引发解析问题)。
    • 核实WebSocket URL的完整性:检查令牌t=后的内容是否被截断,XML响应中是否存在换行、空格导致URL拆分的情况。可以通过查看Web应用返回给Twilio的原始响应,确认整个wss地址是完整无缺的。
  • 确保XML响应格式完全合规

    • Twilio对TwiML格式要求严格,需确认:
      • XML声明<?xml version="1.0" encoding="UTF-8"?>位于响应最开头,无任何前置空格或换行;
      • 所有标签闭合正确,且大小写无误(Twilio标签区分大小写,<Response>、<Start>等标签需严格按首字母大写的格式书写);
      • 可以用本地工具如xmlstarlet val -e your_response.xml验证XML语法是否合法。
  • 排查Bot服务与WebSocket连接的交互逻辑

    • 查看Bot服务的日志,确认是否接收到Twilio通过Direct Line WebSocket发送的连接请求:若Bot无相关日志,说明WebSocket连接未成功建立,问题大概率出在URL或权限环节。
    • 确认Bot支持Twilio的音频格式:Twilio Stream发送的音频为PCMU(8kHz、单声道),需确保你的Bot已正确配置Direct Line Speech,流式端点正常开启且能处理该格式的音频输入。
  • 利用Twilio调试工具定位细节

    • 登录Twilio控制台的Debugger模块,查看该错误对应的详细日志:里面会包含具体的失败原因(如握手失败、令牌无效、连接超时等),这是定位问题最直接的依据。
    • 确认Webhook响应的及时性:Web应用需在收到Twilio请求后立即返回200 OK响应,若处理耗时过长,Twilio会因超时断开连接引发错误。

内容的提问来源于stack exchange,提问作者JIB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:32:51