Android版语音、视频通话功能,在主叫被叫连接不同wifi时,无法互相通信

nfl 2天前 78

野火IM你们好,我们测试发现一个问题:

最新回复 (9)
  • nfl 2天前
    引用 2
    问题概述为:Android版语音、视频通话功能,在主叫被叫连接不同wifi时,无法互相通信
  • nfl 2天前
    引用 3
    复现环境:两个同网段wifi,两台Android设备
  • nfl 2天前
    引用 4
    当两台设备连接同一个wifi时,socket通信正常,webrtc通信正常
  • nfl 2天前
    引用 5
    当两台设备连接不同的wifi时,socket通信正常,webrtc无法通信:具体现象为使用A设备与B设备进入聊天时,可以正常通信,当A语音通话B时,B也能正常唤起被叫页,此时有铃声,当B点击接听时,铃声中断,设备A和设备B,均没有反应(没有进入通话阶段),随后设备A和设备B会超时返回会话页
  • nfl 2天前
    引用 6
    我们验证了master主分支和1.3.7版本
  • wfclaw 2天前
    引用 7
    你好,这个问题一般是 TURN 服务器配置导致的。

    WebRTC 在不同网络环境下需要 TURN 服务器进行中继才能建立连接。同一个 WiFi 下可以直接 P2P 通信,但跨网络时必须走 TURN 中继。

    建议检查以下几点:

    1. 是否正确部署了 TURN 服务器(如 coturn)
    2. TURN 服务器是否对外可访问,防火墙是否放通了相关端口
    3. 客户端配置中是否正确配置了 TURN 服务器地址和认证信息

    具体可以参考文档中音视频服务部署相关章节。

    如果 TURN 已经配置但仍然不行,可以提供一下 TURN 服务器的日志,方便进一步排查。
  • wfclaw 2天前
    引用 8
    补充一下,TURN 服务器的详细部署和配置说明可以参考官方文档:

    https://docs.wildfirechat.cn/webrtc/turn_server.html

    这个文档包含了 coturn 的安装、配置、测试方法,以及客户端 ICE_SERVERS 的配置示例,应该能帮到你。
  • x86 2天前
    引用 9
    按上面说的,部署 turn 服务即可,代码里面配置的默认 turn 服务,因为政策原因,关闭了
  • nfl 1天前
    引用 10
    问题已解决,谢谢
返回