我在公共ip xx.xx.xx.xx和Dedicated Freeswitch Server 192.168.1.2上设置了专用的Opensips服务器,这是一个专用的MySql数据库服务器192.168.1.3 . 我的路由器是192.168.1.1 . 我还从192.168.1.5上的提供商处获得了一个SIP中继 . 所有服务器都在Debian 8上 .
除了有自己的网关xxx.xx.xx.xy的opensips服务器之外,我已将我的网关设置为192.168.1.5 .
Opensips服务器有2个以太网端口eth0和eth1 . 我已将eth1设置为192.168.1.4如何启用Opensips服务器公共IP以访问本地Mysql服务器并将调用发送到Freeswitch服务器 .
我启用数据包转发:/etc/sysctl.conf net.ipv4.ip_forward = 1
我在openips上的iptables是这样的:
iptables规则:
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
谢谢 .
1 回答
只要为每个接口定义OpenSIPS listener,传出接口选择应该开箱即用 . 使用
$ru
或$du
(或两者!),然后t_relay()
设置您的目的地,你应该很好 .如果由于任何原因,所选的出站接口不正确,您可以在
t_relay()
调用之前使用force_send_socket()强制首选接口 .