本文的前提是您已经安装好Freeswitch,Postgresql和Opensips。这三个的安装步骤不在本文中讨论
架构

这是最简单的架构,由Opensips/Kamailio负责Sip路由和负载,每个Freeswitch的注册信息在数据库Postgresql/Mysql中共享。
OK, let's do it!
Step 1. 配置Opensips
这里以Opensips为例,Kamailio可以参考,行为类似
opensips版本:2.4.5
安装过程不在赘述,可以参考我的另外一篇文档《CentOS下安装Opensips》或者网上其他帖子参考。
主要用到的是Opensips的dispatcher能力。
通过命令,如下
opensipsctl dispatcher addgw 1 sip:192.168.2.90:5060 '' 0 50 'fs1' 'Outbound Gateway1'
opensipsctl dispatcher addgw 1 sip:192.168.2.91:5060 '' 0 50 'fs2' 'Outbound Gateway2'
将两个Freeswitch配置到opensips的dispatcher中。这个命令说白了就是往数据库中差两条数据

所插入的表名字为dispatcher
如果执行过程中遇到500 command 'ds_reload' not available没有关系。实际上是没有配置DISPATCHER module中db的访问。不过实际上数据库里是已经写入了
可以使用命令
opensipsctl dispatcher show
来查看结果。说白了就是查询数据库表dispatcher。当然你也可以直接上数据库上查看。

Step 2. 安装带ODBC或者带连接Postgresql能力的freeswitch
安装freeswitch的帖子倒是很多,本来也不想赘述。但是如果对freeswitch的db有特殊要求的话,默认的安装方式是不行的。(默认的安装方式是试用本地的sqlite db的)
笔者是使用centos7系统的,之前是通过rpm包直接装的。现在需要通过源码安装。
我这里采用Postgresql数据库,具体的安装可以参考官网指导
这篇帖子中安装libpq的命令可能提示找不到,可以使用下面这个
yum install /usr/include/libpq-fe.h
安装完成后要确保系统的pkg-config可以找到它。执行如下命令试一下
pkg-config --list-all | grep libpq
笔者的系统上确实真没有。不过通过find找一下libpg,还是可以找到的。


都是在系统默认路径下,那就没有问题了。
编译Freeswitch
./configure --enable-core-pgsql-support
主要是加上pgsql特性的支持。默认的rpm包是没有的。
Step 3. 将freeswitch的数据库改配置为Postgresql
默认安装的Postgresql是只有本地监听的,所以要先改一下配置
-
修改postgresql.conf
将listen_addresses从localhost改为*
postgresql.conf
-
修改pg_hba.conf
将如下一行加入(IPv4)
pg_hba.conf
重启一下pgsql,再看一下端口情况

管理工具使用pgAdmin登录

如果忘记数据库登录密码,可以把密码重置一下。教程网上有。
默认Freeswitch数据库是存在sqlite里的。默认的位置在 /usr/local/freeswitch/db
改用database的话需要修改如下配置:
conf/autoload_configs/switch.conf.xml

如果需要创建表则需要把auto-create-schemas设置为true(仅需要一次)

重启freeswitch,然后就可以发现freeswitch的db转移到Postgresql里了。

然后把第二个freeswitch按照此步骤再配置一下就大功告成了。
网友评论