1、Windows防火墙拦截我们的数据包
Windows防火墙拦截了部分视频会议交互信令或音视频数据包(无论是SIP协议的数据包,还是H323协议的数据包),导致视频会议终端有时无法入会,或者入会后看不到音视频图像。之前在公司里的测试机器和工作机器上都遇到过,只要将系统防火墙关闭掉就正常了。
对于音视频码流,可以抓包验证一下。WireShark抓包软件可以抓到Windows硬件网卡上收到的音视频数据包,这说明音视频码流已经发到网卡上了,但是在往应用程序传送时被应用程序底层的防火墙模块拦截了。所以应用层软件没有收到音视频码流,所以应用软件上没有图像显示。
解决办法是,可以关闭防火墙:
也可以将我们的程序添加到防火墙的白名单中(允许直接通过防火墙):
2、路由器拦截了我们的数据包
在一个客户的网络环境中,经常会出现收不到入会通知等消息,导致终端无法入会的情况。怀疑可能是客户网络中的网络设备拦截了我们软件的部分数据包。客户将配置了很多规则的路由器换成一个没有配置任何转发规则的新路由器,我们的软件就能收到入会通知消息了,就能正常加入视频会议了。之前收不到的其他消息也都能收到了,所以这个问题是路由器拦截了部分数据包引起的。
3、网络设备篡改了我们的数据包
客户的公司在不同的地方下设了多个分公司,总公司和个别分公司之间的会议交互有问题。抓包发现h323包被篡改,包中的端口被篡改,导致和平台通信有问题。因为使用的是标准的h323协议,路由器或者防火墙会篡改数据包(平台侧抓包看出来的),有的甚至直接拦截丢弃掉,包都发不出去。后来将协议改成非标的,还是有问题,再后来将1719和1720端口放行也不行,最后将端口号修改掉才好的(新端口也要放行)。路由器或者防火墙,不仅拦截h323协议包,还会拦截端口上的数据。
以前在其他客户那里,也遇到过数据包被拦截的问题,将标准H323协议改为非标的就好了。