接上篇OpenSIPS-从安装部署开始认识一个组件,是采取全默认的方式体验OpenSIPS,那么我需要额外的模块怎么办呢?可选的有哪些?
流程在第一篇文章中已经介绍了,这边主要是操作一下接入一个db_mysql的组件是如何操作的。
开启配置
make menuconfig
进入编译选项:
---> Configure Compile Options
选择模块
选择db_mysql模块
---> Configure Excluded Modules
完成的可选模块列表如下:
- aaa_diameter
- aaa_radius
- auth_jwt
- cachedb_cassandra
- cachedb_couchbase
- cachedb_memcached
- cachedb_mongodb
- cachedb_redis
- carrierroute
- cgrates
- compression
- cpl_c
- db_berkeley
- db_http
- db_mysql
- db_oracle
- db_perlvdb
- db_postgres
- db_sqlite
- db_unixodbc
- dialplan
- emergency
- event_rabbitmq
- event_kafka
- h350
- regex
- identity
- jabber
- json
- ldap
- lua
- httpd
- mi_xmlrpc_ng
- mmgeoip
- osp
- perl
- pi_http
- rabbitmq
- rabbitmq_consumer
- proto_sctp
- proto_tls
- proto_wss
- presence
- presence_dialoginfo
- presence_mwi
- presence_xml
- presence_dfks
- pua
- pua_bla
- pua_dialoginfo
- pua_mi
- pua_usrloc
- pua_xmpp
- python
- rest_client
- rls
- sngtc
- siprec
- snmpstats
- tls_openssl
- tls_mgm
- tls_wolfssl
- xcap
- xcap_client
- xml
- xmpp
- uuid
根据自己的需求选择需要额外编译的模块,这边为了测试db_mysql数据库模块,因此将db_mysql
选中
左键返回到列表,注意进行保存 ` —> Save Changes `
此时你将获得如下提示
You have enabled the 'db_mysql' module, so please install ' development libraries of mysql-client , typically libmysqlclient-dev'
Press any key to continue
官方温馨提示到,引入的模块需要具备的基础依赖包,需要你自行确认现有服务器是否具备,否则需要你先具备后,再进行编译。
安装基础依赖
因此我们退出可视化界面,先安装 mysql-client
,特别是 ` libmysqlclient-dev`
在目前CentOS7的机器上,非常容易实现这一点,官方的提示可能是基于 ubuntu系统的,那么安装libmysqlclient-dev,实际上需要安装的是mysql-devel包,mysql-devel包含了开发MySQL客户端所需的库和头文件,等同于libmysqlclient-dev。
- 首先确保你的系统软件包是最新的:
sudo yum update -y
- 安装mysql-devel:
sudo yum install mysql-devel -y
以上安装完成后,就可以继续开启编译了
再次执行编译,加入额外模块
make menuconfig
-> Compile And Install OpenSIPS
然后依旧是快速地编译,快速地结束,我们看一下modules模块下,对应的内容编译完成了吗?
# find / -name db_mysql.so
/usr/local/lib64/opensips/modules/db_mysql.so
选一个模块使用db_mysql
接下来我们就是需要测试,这个模块是否与我们的DB能够交互,版本兼容性上面是否存在异常
官方对于一些核心模块使用数据库,在安装菜单内还有两个专门的菜单,描述如何进行数据库表结构的初始化,以及数据库表结构
我们可以选择使用官方脚本,进行数据库表的初始化。也可以从数据库结构中,配置需要接入数据库配置的部分表。
要创建您在上面预置的 database_name 数据库,请运行
opensips-cli -x database create
如果您决定添加新模块,例如 presence,只需调用:
opensips-cli -x database add presence
您还可以使用以下方法为数据库指定不同的名称,例如 opensips_test:
opensips-cli -x 数据库创建opensips_test
opensips-cli -x database create opensips_test
比如我们需要usrloc的模块,引入MySQL数据库存储配置
modparam("usrloc", "db_url", "dbdriver://username:password@dbhost/dbname")
配置后启动服务,usrloc数据就从db进行初始化,DB中修改后,就通过reload http接口进行动态生效。