在《FreeSWITCH权威指南》中,我们曾讲过一个在同一台电脑上启动多个FreeSWITCH实例的例子。当时所有实例都使用同一个IP,下面,我们使用另一种方式实现,每个FreeSWITCH使用一个IP。
在此,我们拟准备三个FreeSWITCH环境。以下操作在Mac上进行,在Linux上的操作也类似。
首先找到Mac当前的IP 192.168.3.119 。
在当前网卡上再设置两个静态IP,通过别名方式实现(在Linux上可以使用eth0:1虚拟网卡实现):
sudo ifconfig en1 inet 192.168.3.28 netmask 255.255.255.255 alias
sudo ifconfig en1 inet 192.168.3.29 netmask 255.255.255.255 alias
检查配置:
$ sudo ifconfig en1
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether b8:09:8a:d3:91:2f
inet6 fe80::ba09:8aff:fed3:912f%en1 prefixlen 64 scopeid 0x5
inet 192.168.3.119 netmask 0xffffff00 broadcast 192.168.3.255
inet6 fd88:be92:acb::ba09:8aff:fed3:912f prefixlen 64 autoconf
inet6 fd88:be92:acb::e1d2:ee95:2da:d148 prefixlen 64 autoconf temporary
inet6 fd77:2340:cb8b::ba09:8aff:fed3:912f prefixlen 64 autoconf
inet6 fd77:2340:cb8b::81e:fc5d:30f3:3546 prefixlen 64 autoconf temporary
inet 192.168.3.28 netmask 0xffffffff broadcast 192.168.3.28
inet 192.168.3.29 netmask 0xffffffff broadcast 192.168.3.29
nd6 options=1<PERFORMNUD>
media: autoselect
status: active
设置目录:
cd /usr/local
mkdir fs28
mkdir fs29
cp -R /usr/local/freeswitch/conf fs28/
cp -R /usr/local/freeswitch/conf fs29/
mkdir fs2{8,9}/{log,db}
分别修改vars.xml,使它们看起来如下:
<X-PRE-PROCESS cmd="set" data="local_ip_v4=192.168.3.28"/>
<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
<X-PRE-PROCESS cmd="set" data="local_ip_v4=192.168.3.29"/>
<X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
分别修改autoload_configs/event_socket.conf.xml以避免IP/端口冲突:
<param name="listen-ip" value="$${local_ip_v4}"/>
<param name="listen-ip" value="$${local_ip_v4}"/>
在fs28和fs29中分别启动FreeSWITCH
cd fs28 && ../freeswitch/bin/freeswitch -log log -db db -conf conf -nonat
cd fs29 && ../freeswitch/bin/freeswitch -log log -db db -conf conf -nonat
好了,加上默认的FreeSWITCH(我们放在fs14目录下,IP为192.168.3.119)我们现在一共有三个FreeSWITCH,用电话客户端分别注册三个FreeSWITCH确保能正常注册。
收工。
本文分享自 FreeSWITCH中文社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!