Openmeetings 6.3.0视频通话失败:ICE错误与TURN服务器验证失败求助
解决Openmeetings 6.3.0视频通话ICE失败及Coturn验证问题
针对你遇到的WebRTC ICE失败、Coturn用户验证失败问题,结合AWS ECS多容器部署场景,按以下步骤排查修复:
1. 确保Coturn与Openmeetings密钥完全一致
- 检查Openmeetings配置文件
openmeetings.properties中的turn.secret,必须和Coturn启动参数--static-auth-secret的值完全匹配(大小写、空格、特殊字符都不能错) - Openmeetings的
turn.username需留空,因为使用static-auth-secret时,用户名是动态生成的,无需固定配置 - 确认
stun.server和turn.server指向Coturn容器的内网地址(如coturn-service:3478,利用ECS服务发现),不要用公网地址(除非跨VPC访问)
2. 修正Coturn核心配置
- 确保Coturn启动命令包含必要参数:
turnserver --use-auth-secret --static-auth-secret=你的密钥 --realm=openmeetings --verbose --listening-port=3478 --min-port=49152 --max-port=65535 --external-ip=你的ECS公网IP--realm需和Openmeetings的turn.realm一致,若两边都没设置则忽略--external-ip必须设置为Coturn容器对应的公网IP,否则ICE候选会返回内网IP,导致公网用户无法连接
- 开启
--verbose日志后,查看Coturn日志中的验证请求:对比客户端发送的username和服务器计算的签名是否匹配,若不匹配则密钥或realm配置有误
3. AWS ECS网络配置检查
- 若使用awsvpc网络模式,确保Openmeetings、Kurento、Coturn容器在同一个VPC和子网内,安全组允许三者之间的端口访问(3478/UDP/TCP、49152-65535/UDP、8888/TCP)
- Coturn容器的任务定义需正确映射端口:3478(UDP/TCP)、49152-65535(UDP),安全组需开放这些端口给客户端(如果是公网用户)
- 若容器间用服务发现,确认服务名称配置正确,Openmeetings能解析到Coturn和Kurento的服务地址
4. 验证Kurento与Openmeetings联动
- 检查Openmeetings的
kurento.url配置为Kurento容器的内网地址,如ws://kurento-service:8888/kurento - Kurento需同步配置STUN/TURN信息,确保和Openmeetings一致,可通过Kurento的配置文件或环境变量设置
- 重启所有容器,避免配置缓存导致的生效延迟
5. 浏览器端辅助验证
- 打开浏览器
about:webrtc页面,查看ICE候选列表:若没有relay类型的候选,说明Coturn未正常提供中继服务 - 确认浏览器使用HTTPS访问(localhost除外),WebRTC在非HTTPS环境下会限制部分功能
- 检查浏览器控制台是否有其他权限错误,如摄像头/麦克风权限是否已授予
内容的提问来源于stack exchange,提问作者Lal
相关产品推荐
相关产品推荐

