SIP 在构建时并没有考虑 NAT 路由器,我希望彻底弄清楚这个问题,检查所有设备需要做什么才能使其与 NAT 路由器一起工作,并了解在什么情况下它不能使用,我应该检查更多 NAT 友好的替代方案,比如 IAX。
一张图片胜过千言万语,这是我需要使用的布局:
http://img62.imageshack.us/img62/4077/sipandnatrouters.jpg
PBX 服务器位于连接到互联网的 NAT 路由器后面的私有 LAN 中(我知道如果它位于公共网络中会更容易,但是此路由器不支持 DMZ,因此服务器有位于私有网络中)
几部(软|硬)电话位于同一个 LAN 上,并与 PSTN 网关(Linksys 3102 或 Digium PCI 卡)一起连接到 PBX 服务器
使用(软|硬)电话的远程用户位于网络上具有动态 IP 的某个位置,并且也位于 NAT 路由器后面
我可能可以控制 PBX 服务器所在的本地 NAT 路由器,也可能不可以,但是我无法控制远程 NAT 路由器,这是因为用户不具备映射端口的计算机知识,或者因为路由器是禁止访问的(例如网吧、酒店 LAN 等)
是否可以配置 PBX 服务器、(软|硬)电话和 PSTN 网关,以便所有对话都能正常工作,无论端点如何(POTS 呼叫者/本地电话、POTS 呼叫者/远程电话、本地电话、远程电话/本地电话)?
在哪些情况下我可能会遇到问题?有解决方案吗?
无论如何,我倾向于使用 Freeswitch,但如果在这种情况下 Asterisk 具有技术优势,我最终也会使用 Asterisk。
感谢您提供的任何信息。
答案1
如果不能完全控制 FreeSwitch 前面的路由器,这种情况就不可能发生。
如果没有 NAT 关联,您需要告诉路由器将所有数据包转发到 FreeSwitch 机器 - 可以使用 DMZ 或 UPNP(FS 支持)来完成。
这里有更多信息FreeSwitch 维基
但最好在 FreeSwitch 机器上有一个静态真实 IP 地址。
PS:我是多年的 Asterisk 用户,目前将所有服务转向 FreeSwitch,因为它的稳定性、社区和功能。
答案2
Mike 已经很好地涵盖了核心问题。不过,补充一下,如果您的 NAT 路由器支持作为 VPN 服务器,那么对于使用真正有问题的 NAT 路由器或 SIP ALG 的人来说,这将是一个备用方法。
另一个选择是在 FS 盒上运行 Openvpn(或其他 vpn 服务器)并将流量通过端口转发到 FS 盒。
例如,SNOM 370 手机具有可以进行 OpenVPN 连接的固件映像。