GoForum🌐 V2EX

记录一次 Android 14 + coturn 下 WebRTC 通话 30 秒后断开的排查

snowlyg · 2026-05-23 16:43 · 0 次点赞 · 0 条回复

最近整理了一次 WebRTC 问题排查,脱敏后记录一下。

背景是一个 Android WebRTC 音视频通话场景。原来主要在内部网络使用,后续为了支持更复杂的网络边界,引入了 coturn 做 TURN 中继。

问题现象:

  • Android 14 设备和旧版 Android 设备通话时,Android 14 端经常在 30-60 秒内自动退出。
  • 旧版 Android 设备基本正常。
  • 少数情况下双方也能持续正常通话。
  • 强制走 TURN relay 后更容易稳定复现。

一开始日志里有一条本地地址相关的中继协商 timeout ,而且经常出现在断开前后,所以很容易误判为根因。

后面看 WebRTC 状态变化,真正关键的是:

IceConnectionChange -> DISCONNECTED / FAILED
StandardizedIceConnectionChange -> DISCONNECTED / FAILED

排查过程大概是:

  1. 先统一链路,强制走 coturn,避免内部网络直连把问题掩盖掉。
  2. 替换过 WebRTC 依赖版本,排除单纯的 SDK 版本问题。
  3. 扩大设备矩阵,问题逐渐收敛到 Android 14 设备。
  4. 回到 TURN 服务侧检查证书、安全参数和端口开放。
  5. 调整 coturn 相关配置后,同样测试矩阵下不再出现 30-60 秒自动断开。

这次最大的教训是:WebRTC 问题不要只盯某一条高频日志。更可靠的路径是先看 ICE 状态机、candidate pair 、当前到底走的是直连还是 relay 。

另外,直连和中继混在一起测,很容易让问题看起来像“网络随机抖动”。强制走 relay 后,问题才变成可复现、可分析。

欢迎交流 Android WebRTC 、coturn 、TURN relay 和 RTC Gateway 稳定性问题。

完整整理在这里: https://snowlyg.github.io/posts/android14-coturn-webrtc-disconnect/

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: snowlyg
发布: 2026-05-23
点赞: 0
回复: 0