![HTML5/WebSocket 问题 Windows Server 2011/2012/2016](https://linux22.com/image/724023/HTML5%2FWebSocket%20%E9%97%AE%E9%A2%98%20Windows%20Server%202011%2F2012%2F2016.png)
我们在运行客户应用程序时遇到了一个奇怪的问题,但仅限于 Windows Server 机器上,我确实非常考虑将此问题发布到 StackOverflow,但由于我怀疑这是一个服务器配置问题,所以我觉得最好首先将其放在这里。
背景
一年多来,Asterisk/FreePBX 服务器一直处于生产状态,世界各地的代理在各种 Windows 桌面/Linux/MAC 机器上使用该服务器。代理无需费心使用软件电话(需要手动编程),只需使用 Web 界面即可输入凭证,并使用 WebSockets 让用户拨打/接听电话,这在桌面机器上运行完全没有问题。
客户开始将所有代理的 RDS 访问权限转移到全新的服务器上,以便他们能够更好地控制访问其内部系统的国际用户。
因此,我们扩展了新的 Windows Server 2016 并开始测试其所有应用程序,以确保它们可以在新环境中运行。
问题
我们发现,仅在 Windows Server 环境中,呼叫无法进行。代理输入电话号码后,呼叫立即失败。
诊断
当我们在 RDS 会话上连接到服务器时,我们在办公室本地构建了一台 2016 服务器进行测试,同样的问题仍然存在。随后我们又尝试了 2011 和 2012,都出现了同样的问题。
查看代理登录 VoIP 服务器时的连接日志,我们看到对等方已成功注册,但是,拨打电话时根本没有与服务器进行任何通信。
事实上,在 Windows 服务器上运行 Wireshark 跟踪显示根本没有数据尝试发送到 VoIP 服务器。
因此,我们(在我们的测试机上)禁用了所有防火墙以及任何其他可能阻止互联网流量的设备,但问题仍然存在。
我们还尝试了多个浏览器,Firefox、Chrome 和 Opera(Yuck)都存在同样的问题,这些浏览器内置的 Web 开发工具除了呼叫无故失败和终止外没有显示任何错误。
概括
由于这在 Windows 桌面/Linux/MAC 环境中运行没有问题,我们得出结论,这一定与 Windows Server 环境有关,任何建议都将非常感谢。
更新 安装用户体验功能后,https://voice.mozilla.org/en/listen现在可以听到,原始申请仍然存在同样的问题