Twilio webRTC 通话在 10 分钟后中断

2024-05-12

使用 Twilio.js 使用 webRTC 录制通话。工作正常,但在 10 分钟时(完全正确!)电话挂断。 TwiML 上的最大记录时间设置为 7200 秒。

浏览器的控制台显示:
[Twilio.PeerConnection] signalingState is "stable" twilio.js:1843 [Twilio.PeerConnection] iceConnection State is "checking" twilio.js:1843 [Twilio.PeerConnection] iceConnection State is "connected" twilio.js:1843 [Twilio.PeerConnection] iceConnection State is "completed"

[10分钟后...]

twilio.js:1843 [Connection] Received HANGUP from gateway twilio.js:1843 [Connection] Disconnecting...

Chrome://webrtc-internals转储是无用的:{ "time": "11/28/2016, 4:35:48 PM", "type": "iceConnectionStateChange", "value": "ICEConnectionStateCompleted" }, { "time": "11/28/2016, 4:45:51 PM", "type": "stop", "value": "" },

破坏 twilio.js 库,我发现有东西发送了带有有效负载的 websocket 消息:{"payload":{"callsid":"CA18974349269fb9f24977185c5deaa62c"},"type":"hangup","version":""},这显然会导致客户端挂断电话。

关于为什么会发生这种情况有什么想法吗?它发生在桌面和移动浏览器上。


结果 Twilio 在 600 秒后切断了 webRTC 呼叫。不太清楚为什么,但我猜这有关系--陈旧随机数Turn 服务器的参数恰好有 600 秒的超时。或许?

编辑并修复。

最终 Twilio 回复了我们的请求并提供了一个解决方法来启用 WEBRTC 10 分钟以上的录制。恕我直言,这很hacky,但它确实有效。

当呼叫者加入时,将出站 API 调用注入会议,并播放无声 mp3(可以是很长的 MP3,也可以是循环播放的短 MP3)。此出站线路是开始会议所必需的,静音 mp3 将双向发送 RTP。 另一个相当相似的方法是让客户端像这样拨号:

<Response>
   <Dial record="true" action="record_action">
    <Conference waitUrl="url_to_nearly_silent_audio_file">record</Conference>
  </Dial>
</Response>

您需要为 waitURL 中的循环创建一个小容量 WAV 文件,以防完全静默的 WAV 文件不生成 RTP 数据包。

https://www.twilio.com/docs/api/twiml/conference https://www.twilio.com/docs/api/twiml/conference

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Twilio webRTC 通话在 10 分钟后中断 的相关文章

随机推荐