问题描述:
我们最近碰到这样的问题,当本地VOPTech FXO网关以gateway方式远程成功注册到云3CX IPPBX后,外部号码可以从FXO网关呼入到3CX IPPBX分机,但是3CX IPPBX分机无法从FXO网关呼出,在网关的日志管理-》呼叫消息查看没有任何日志,说明呼叫没有到达网关。为了排查是否是网关这边的防火墙阻止了相关的sip消息,在网关这边的防火墙打开了相关的sip跟rtp端口(默认情况下不需要打开),网关这边还是没有任何呼叫日志。
问题查看:
当3CX分机呼出的时候,在3CX这边抓包查看,发现3CX服务器一直给网关发送invite请求,但是3CX没有收到网关那边的任何回复。后来我们在3CX抓包查看网关那边送过来的注册端口,发现3CX收到来自网关的注册端口号不是网关的本地端口号,网关的本地端口号默认是5060,而3CX收到的注册端口号是1025。
在3CX IPPBX网关的设置里,将5060改为1025后,3CX分机就可以从网关呼出了。
正常情况下,网关应该用5060来注册,但是经过网关这边的防火墙或是路由器后,注册端口号变成了1025,之后我们发现网关这边防火墙将5060被映射给了其它设备,在网关修改本地端口号为其它非5060后,3CX那边收到网关的注册端口号就变成了网关的本地端口号。
解决方法:
为了确保网关使用设置的本地端口号来跟3CX通信也为了安全起见,建议如下:
1.关闭网关的选项:变换本地端口增量值
2.同时为了安全起见:
a.设置网关的本地端口为非5060端口;
b.在网关这边的防火墙设置只接受来自3CX那边送过来的数据到达网关,防止网关接受外部大量数据包而无法处理正常数据;
c.设置网关的路由表,只路由3CX那边送过来的数据:
3.确保在网关这边的防火墙或路由器端口映射里网关的本地端口没有被其它设备占用。