我目前在带有PostgreSQL的CentOS 7上运行FusionPBX 4.4。
我用一个IP地址安装了系统,例如192.168.201.201,现在要将系统移至新的IP地址,例如10.65.208.2。可以通过修改/ etc / sysconfig / network-scripts / ifcfg-enoX中的设置来完成此操作,并且我确保可以访问新IP地址。
此后,通过在高级>域下将域从旧值更改为新值来处理特定于域的配置。我无需指定admin@192.168.201.201即可使用新IP地址登录系统。
但是,我当前的问题是我无法使SIP应用程序绑定到新的IP地址。如果我运行 netstat 来检查绑定,则只能找到IPv6地址。
[root@pbx ~]# netstat -an | grep 5060
tcp6 0 0 ::1:5060 :::* LISTEN
udp6 0 0 ::1:5060 :::***
如果我打开 fs_cli 并尝试评估存在的变量,则似乎Freeswitch也已注册使用新IP地址。
freeswitch@pbx.local> eval $${local_ip_v4}
10.65.208.2
freeswitch@pbx.local> eval $${external_sip_ip}
10.65.208.2
freeswitch@pbx.local> eval $${external_rtp_ip}
10.65.208.2
freeswitch@pbx.local>
仍然 /var/log/freeswitch/freeswitch.log ,告诉我以下内容(请注意,它试图绑定到旧IP地址,这会导致错误):
2019-01-29 07:06:47.075924 [NOTICE] sofia.c:5949 Started Profile external [sofia_reg_external]
2019-01-29 07:06:47.075924 [DEBUG] sofia.c:3046 Creating agent for external
2019-01-29 07:06:47.075924 [ERR] sofia.c:3146 Error Creating SIP UA for profile: external (sip:mod_sofia@192.168.201.201:5080;maddr=192.168.201.201;transport=udp,tcp) ATTEMPT 1 (RETRY IN 5 SEC)
2019-01-29 07:06:47.075924 [INFO] switch_time.c:1423 Timezone reloaded 530 definitions
2019-01-29 07:06:52.075998 [ERR] sofia.c:3146 Error Creating SIP UA for profile: external (sip:mod_sofia@192.168.201.201:5080;maddr=192.168.201.201;transport=udp,tcp) ATTEMPT 2 (RETRY IN 5 SEC)
2019-01-29 07:06:57.076030 [ERR] sofia.c:3146 Error Creating SIP UA for profile: external (sip:mod_sofia@192.168.201.201:5080;maddr=192.168.201.201;transport=udp,tcp) ATTEMPT 3 (RETRY IN 5 SEC)
2019-01-29 07:06:57.076030 [ERR] sofia.c:3156 Error Creating SIP UA for profile: external (sip:mod_sofia@192.168.201.201:5080;maddr=192.168.201.201;transport=udp,tcp)
The likely causes for this are:
1) Another application is already listening on the specified address.
2) The IP the profile is attempting to bind to is not local to this system.
我只定义了一个网络接口(eno2)。安装期间使用的另一个界面被禁用。
[root@pbx freeswitch]# ifconfig
eno2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.65.208.2 netmask 255.255.254.0 broadcast 10.65.209.255
inet6 fe80::21a:c7d6:cd98:5e88 prefixlen 64 scopeid 0x20<link>
ether ac:1f:6b:73:7e:b5 txqueuelen 1000 (Ethernet)
RX packets 23943 bytes 3534910 (3.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 71471 bytes 95115547 (90.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xf7c00000-f7c7ffff
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 166592 bytes 48338476 (46.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 166592 bytes 48338476 (46.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果我启动eno1接口并将IP地址设置为旧的(192.168.201.201),Freeswitch不会给我任何错误,并且我能够绑定到旧的地址。
freeswitch@pbx.local> sofia status
Name Type Data State
=================================================================================================
external-ipv6 profile sip:mod_sofia@[::1]:5080 RUNNING (0)
external profile sip:mod_sofia@192.168.201.201:5080 RUNNING (0)
internal-ipv6 profile sip:mod_sofia@[::1]:5060 RUNNING (0)
internal profile sip:mod_sofia@192.168.201.201:5060 RUNNING (0)
=================================================================================================
4 profiles 0 aliases
从netstat中,我们还可以看到freeswitch已开始侦听旧IP地址上的TCP / 5060。
[root@pbx ~]# netstat -an | grep 5060
tcp 0 0 192.168.201.201:5060 0.0.0.0:* LISTEN
tcp6 0 0 ::1:5060 :::* LISTEN
udp 0 0 192.168.201.201:5060 0.0.0.0:*
udp6 0 0 ::1:5060 :::*
这使我想到了问题;
使用哪个变量进行绑定(即旧的192.168.201.201地址存储在哪里),如何修改它以便FusionPBX / Freeswitch理解要使用的IP地址?
答案 0 :(得分:1)
您应该能够在高级下改变SIP_PROFILE IP地址>变量,取决于它如何最初安装。
答案 1 :(得分:0)
freeswitch/vars.xml 包含所有变量,如 $${external_rtp_ip} 、 $${external_sip_ip} 、$${local_ip_v4} 。如果您有多个接口,freeswitch 不知道它应该绑定到哪个接口。在您的情况下,您是说它正在侦听旧 IP。在 vars.xml 中手动输入您的本地 ip 地址变量并重新启动 freeswitch。
<X-PRE-PROCESS cmd="set" data="local_ip_v4=<your ip address>"/>
如果您在 sipprofile 中使用 $${local_ip_v4} 变量,它应该开始监听您的本地 IP 地址。