我有以下设置:
ISP modem in bridge mode -> pfSense firewall -> HP2920 switch -> asterisk | VoIP phones
我终于可以接听来电和拨打电话了,但我听不到任何声音。如果我拨打内部电话,我可以听到双方的声音。
pfSense 的 NAT 端口转发设置为 IPv4 的任意/任意。我尝试了 UDP 端口 10000-20000 的端口转发,但没有帮助。后来我从我的 ISP 那里听说他们使用端口 16000-32000,试过了,没有用。
这是我当前的出站 NAT 规则和选择的手动出站 NAT:
其中 PBX 是星号服务器 192.168.10.10 的 IP。
您可以找到 Wireshark 的数据包捕获 此处[现已过期,高级(付费)用户除外]。
有人能给我指出正确的方向吗?或者我可以尝试其他的方法吗?
设置后的日志条目如下rtp set debug on
:
[2017-09-19 16:22:48] VERBOSE[16564][C-00000024] res_rtp_asterisk.c: Got RTP packet from 192.168.30.101:11864 (type 00, seq 000230, ts 5531040, len 000160)
[2017-09-19 16:22:48] VERBOSE[16557][C-00000024] res_rtp_asterisk.c: Sent RTP packet to 192.168.50.1:17234 (type 08, seq 010225, ts 5531040, len 000160)
[2017-09-19 16:22:48] VERBOSE[16564][C-00000024] res_rtp_asterisk.c: Got RTP packet from 192.168.30.101:11864 (type 00, seq 000231, ts 5531200, len 000160)
[2017-09-19 16:22:48] VERBOSE[16557][C-00000024] res_rtp_asterisk.c: Sent RTP packet to 192.168.50.1:17234 (type 08, seq 010226, ts 5531200, len 000160)
日志中奇怪的是 IP 192.168.50.1,这是无线网络的网关?!192.168.30.101 是我正在呼叫的 VoIP 电话。
VLAN ID IP/Subnet Gateway Description
10 192.168.10.0/24 192.168.10.1 Servers
20 192.168.20.0/24 192.168.20.1 Computers
30 192.168.30.0/24 192.168.30.1 VOIP
40 192.168.40.0/24 192.168.40.1 Cameras
50 192.168.50.0/24 192.168.50.1 Wireless Staff
60 192.168.60.0/24 192.168.60.1 Wireless Guests
这些是我在 FreePBX 上的附带设置:
这是 KJ4IPS 回答后更改的端口转发设置(仍然没有运气):
答案1
因此,您需要选择用于 RTP 的端口范围,并在 asterisk 的 rtp.conf 中进行设置,该相同的范围需要在 pfSense 路由器上转发。
您还需要编辑 sip.conf 的 localnet 设置,以便 asterisk 能够确定是否应该对任何给定的连接进行 NAT,以及 externip 或 externhost 设置之一,以便 asterisk 知道在跨 NAT 协商时使用什么地址。