現在、CentOS 7 で PostgreSQL を使用して FusionPBX 4.4 を実行しています。
システムを 1 つの IP アドレス (例: 192.168.201.201) でインストールしましたが、システムを新しい IP アドレス (例: 10.65.208.2) に移動したいと考えています。これは、/etc/sysconfig/network-scripts/ifcfg-enoX の設定を変更することによって行われ、新しい IP アドレスにアクセスできることを確認しました。
その後、Advanced>Domainsの下でドメインを古い値から新しい値に変更することで、ドメイン固有の構成が処理されました。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.
定義されているネットワーク インターフェイスは 1 つだけです (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 アドレスを理解できるように変更するにはどうすればよいですか?