[转]FreeSwitch1.10版本安装及内置mariadb(mysql)使用记录

因为FS现在停止了1.8(更不要说1.6),当前是1.10版本,于是对这个版本进行了安装配置的测试,小记如下:
1、初步安装测试,1.10版本在centos7.7下可以安装,运行OK
2、1.10版本的FS已经内置了mariadb(mysql)的数据库支持,可以不再用ODBC来启用mysql了(按FS官方的文档,1.10版本主要就是优化了数据库)

为测试这个版本,并主要测试使用内置mariadb数据库,进行的安装记录如下:

=====使用 yum 安装=====

1、centos7.7 最小安装

2、这是centos7下面对 delta的补充安装,并安装wget备用

yum provides '*/applydeltarpm'
yum install deltarpm wget

 

3、直接使用yum安装Freeswitch,仅安装英文语言包,启用xml-cdr和mariadb(mysql)

yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release
yum install -y freeswitch-config-vanilla freeswitch-lang-en freeswitch-sounds-en-* freeswitch-sounds-music-* freeswitch-lua freeswitch-xml-cdr freeswitch-database-mariadb
systemctl enable freeswitch

 

4、使用内置mariadb数据库

注意,如果使用FS的mariadb支持就不能使用最新的mariadb,要用centos自带的,否则mysql C connector版本不兼容!

yum install -y mariadb mariadb-sever
service mariadb start
systemctl enable mariadb
mysql_secure_installation 

上面修改root用户密码,后面需要创建freeswitch的空数据库(建议用默认字符集)

 5、修改FS配置文件,启用mariadb

里面默认启用的是pgsql,mariadb的被注释了,启用即可

vi /etc/freeswitch/autoload_configs/pre_load_modules.conf.xml

 如果没有这个文件,参考:

<configuration name="pre_load_modules.conf" description="Modules">
  <modules>
    <!-- Databases -->
    <load module="mod_mariadb"/>
    <!-- <load module="mod_pgsql"/> -->
  </modules>
</configuration>

 

6、修改FS配置文件,让FS的核心使用mariadb(mysql)数据库

需修改 core-db-dsn 或 odbc-dsn 数据库连接的相关信息,按上面自己设置的内容连接,

连接串的格式为:

mariadb://Server=localhost;Database=freeswitch;Uid=freeswitch;Pwd=pass;
vi /etc/freeswitch/autoload_configs/switch.conf.xml
vi /etc/freeswitch/autoload_configs/db.conf.xml
vi /etc/freeswitch/sip_profiles/internal.xml
vi /etc/freeswitch/sip_profiles/internal-ipv6.xml

 

7、启动FS

service freeswitch start

 

小记说明:测试运行正常,安装后配置文件中 mod_b64、mod_png、mod_av 这几个默认存在的模块都不可用,而且FS也没有相关的包,

开发中需使用的ESL库(libesl.a)也不可用(没有相关包,安装了 freeswitch.devel 包也不包含,必须自己编译,

所以,还是要下载源代码,又回到原点了)...,考虑到实际使用,看来源码编译安装还是不可替代的!

所以吗, yum安装,仅对一般使用者,对有扩展开发的还是不行!!

===== 源代码编译 =====

1、centos7.7 最小安装

2、FS的源代码编译基础环境

这里使用yum-builddep工具,基于FS的yum包依赖库批量安装,简单了很多:

yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release yum-utils
yum-builddep -y freeswitch
yum install -y yum-plugin-ovl centos-release-scl rpmdevtools git
yum install -y devtoolset-4-gcc*
scl enable devtoolset-4 'bash'

 

3、下面这个是对mod_av的补充

mod_av需要libavformat-dev,但centos没有,通过第三方yum库安装ffmpeg-devel包实现(yum的FS版本里面是没有mod_av、mod_b64、mod_png的,所以上面的安装也就没有):

rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install -y ffmpeg-devel

 

4、开始安装

cd /usr/local/src
git clone -b v1.10 https://github.com/signalwire/freeswitch.git freeswitch
cd /usr/local/src/freeswitch
./bootstrap.sh -j
./configure --enable-portable-binary \
--prefix=/usr --localstatedir=/var --sysconfdir=/etc \
--with-gnu-ld --with-python --with-erlang --with-openssl \
--enable-core-odbc-support --enable-zrtp
make
make -j install
make -j cd-sounds-install
make -j cd-moh-install

 不过我还是 习惯 所有 mod conf bin log db 等等 文件夹 都放在一起, 比如: /usr/local/freeswtich/

 

5、OK,又回到了熟悉的状态,yum没有的模块都回来了

6、对FS1.10新添加的mariadb模块的编译安装

cd /usr/local/src/freeswitch/src/mod/databases/mod_mariadb
make
make install

  

[转自:http://blog.sina.com.cn/s/blog_539d6e0c01032c2q.html]

 

 

======亲自尝试(非转载)======

还有以下mod的conf要改(我用到的)

autoload_configs/callcenter.conf.xml
autoload_configs/fifo.conf.xml
autoload_configs/voicemail.conf.xml
sip_profiles/external.xml
sip_profiles/external-ipv6.xml

咋知道有这么些要改的??

简单,db文件夹下删不掉的-->你懂的...

只有switch.conf 中的是`core-db-dsn`参数

其他的都是`odbc-dsn`参数 :)

没看到有<!-- -->注释的预置的,就自己加!

 然后第一次启动会报一些错,因为没表呗(嗯,数据库,用户要先创建,不说), 启动完后, 重新启动一次

不过第N次启动任然会报错 都是创建 index 重复的错误.....

 

 然后还有个错误,mod_db报的,没研究了:

 

可见非SQLite的coredb支持任然不完善吧,O(∩_∩)O哈哈~ 

 

posted @ 2020-06-02 13:53  _Ong  阅读(3392)  评论(3编辑  收藏  举报