为了使软交换能够与PSTN等传统电话进行电话互拨,就需要通过网关来进行对接; 在内部试验通过网关与西门子交换机对接时,按照以下设置,可以很好的对接起来:
网关设定:
‘PCM设置’-信令方式: ISDN用户侧;开启CRC-4。
‘PSTN线路设置’:接口类型为E1
;线路语音编码为A-law
;
‘PCM中继’- 包含时隙:选择所需的时隙
交换机设定
信令:PRI网络侧;开启CRC-4。
语音编码:使用A率
通过以上配置后,内部试验时两边可以很好的互拨互通;但是在实际现场试验是遇到了很多问题。
1、从交换机到网关正常、但是网关到交换机时通时不通
查找很久好,发现交换机侧只设了20个时隙,但是网关侧开了30个时隙。
针对此问题,一定要在部署前了解好两侧所用的时隙数,并且要匹配。
排错方式:可通过检测每个时隙的联通性来检测。在网关上的‘PCM中继’- 包含时隙中,每次选择一个(依次从1~30)时隙,测试能否拨通对端,若不能在说明对应的时隙对方未开通。
2、从软交换到拨打电话到交换机,时通时不通
时隙问题测试完后,电话能正常互拨了;但不久又发现从软交换通过网关呼叫交换机时,出现时通时不通的问题。
通过抓包,发现网关IP地址冲突。
重新修改网关IP地址为新的,不冲突的地址后,问题解决。
排错方式:1)通过ping命令发现网络畅通,且无冲突:机器开时ping正常,无丢包现象;机器关时,无法ping通(若冲突会一直能ping同)
2)通过`tcpdump -i eno1 host {ip} -w fsinvite.cap`抓包分析:查看是否有冲突。
3、从软交换呼叫交换机能通,从交换机呼叫软交换不通
后面又遇到一个奇怪的问题,从软交换呼叫交换机能通,从交换机呼叫软交换不通;但是当从软交换呼叫交换机通后,立即从交换机呼叫软交换是通的。
抓包后发现,直接从交换机呼叫软交换时,网关发给软交换的Invite命令,都回复了‘Destination unreachable’;但是直接ping是畅通的,说明网络没问题,因此断定是防火墙阻挡了端口,在防火墙上放开端口后,互拨正常。
排错方式:通过`tcpdump -i eno1 host {ip} -w fsinvite.cap`抓包分析:若回复了‘Destination unreachable(Port Unreachable)’;但是直接ping是畅通,则说明是:
软交换未运行:先部署、运行软交换;
端口被防火墙阻挡了:firewall-cmd --list-port 查看端口是否开放;
Freeswitch没有运行在真实的IP地址上:若Freeswitch启动时,网络未连接,则会运行在127.0.0.1上
网络连接正常后,有关系统方面问题请找博主,看他名字就可以微他一起交流学习。重启Docker即可:docker restart {doc-id};