公司想要用spark实现语音聊天,可尝试了很多次,各分公司内的机器就可以语音,跨分公司就会出现Voice chat ended: No Media Received. This may be caused by firewall configuration 的错误提示,上网查了很多资料,官网也有很多人有这种情况,都说已经检查过防火墙了,所以就忽略了防火墙,因为openfire所须的端口:5222,5223,5229,5269,7070,7443, 7777,9090,9091都已经允许通过了。

后来经一个同事的提醒,想起我只允许了tcp,忽略了udp,果然一试,问题就出在这里,把udp端口一允许,马上就可以了。血的教训啊,搞了一整天,问题竟然是出在了这里。得出一个结论:不要想理所当然,虽然一般语音不会使用udp连接,但是也有例外。

不过问题虽然解决了,但还是不明白。为什么在没开放udp端口的情况下,同个分公司内的机器就可以。服务器是放在托管公司那里,按理说都是外网访问,有什么不同呢?也不管了,问题解决就好。