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

如何不加入Conferance监听Twilio实时通话?Stream使用遇阻求助

无需加入会议监听Twilio通话的解决方案

你遇到的问题核心是用错了<Connect>动词的场景,<Connect>是用来发起新的通话连接,而非附加到已有的通话上监听,所以才只会收到停止消息和流ID。以下是正确的实现方式:

核心思路

要监听正在进行的通话,需要将包含<Stream>的TwiML附加到目标通话上,而不是用<Connect>包裹<Stream>。

具体步骤

  1. 更新正在进行的通话TwiML
    通过Twilio Calls API,将目标通话的处理地址指向返回<Stream>的TwiML接口:
POST /2010-04-01/Accounts/{你的AccountSid}/Calls/{目标CallSid}.json
Content-Type: application/x-www-form-urlencoded

Url=https://你的服务器地址/stream-twiml&Method=POST
  1. 返回正确的监听TwiML
    上述接口/stream-twiml需要返回如下TwiML,注意要添加<Pause>保持通话连接,避免挂断:
<Response>
  <Stream url="wss://你的WebSocket服务地址" statusCallback="https://你的回调地址" />
  <Pause length="3600" />
</Response>
  1. 排查现有代码问题
  • 你用的wss://chunderw-vpc-gll.twilio.com/signal是Twilio内部地址,必须替换成你自己的WebSocket服务地址,Twilio会把通话媒体流推送到这个地址。
  • <Connect>本身是建立新连接的动词,用来包裹<Stream>时,因为没有实际媒体流通过这个连接传输,所以Stream会立即停止。
  1. WebSocket服务要求
    你的WebSocket服务需要正确处理Twilio的流协议:
  • 接收初始的start消息(包含流ID、媒体编码等信息)
  • 处理后续的音频媒体帧数据
  • 确保服务可以被Twilio正常访问,无防火墙或权限拦截
  1. 回调事件排查
    如果仍只收到stop事件,说明Stream启动失败,可检查:
  • WebSocket连接是否建立成功
  • Twilio是否能访问到你的WebSocket服务
  • TwiML是否正确返回给通话

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:54:54