操作系统 :CentOS 7.6_x64
opensips版本:2.4.9
MySQL版本:5.7.38
一、添加mysql支持
1、安装mysql依赖库
安装命令如下:
wget https://repo.mysql.com/mysql57-community-release-el7.rpm rpm -ivh mysql57-community-release-el7.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 yum search mysql yum install -y mysql-community-libs.x86_64 mysql-community-devel.x86_64 yum install -y mysql-community-client.x86_64
2、编译opensips支持mysql数据库
在opensips源码目录执行如下命令:make menuconfig
选中mysql模块:
然后执行编译及安装操作:
make && make install
CentOS7环境下源码安装opensips,可参考如下文章:
3、opensips加载mysql库
文件:/usr/local/etc/opensips/opensips.cfg
添加如下内容:
loadmodule "db_mysql.so"
二、初始化opensips数据库
数据库连接信息:
host : 192.168.137.1 port : 3306 user : root password : 123456 dbname : opensips
1、配置数据库信息
文件:/usr/local/etc/opensips/opensipsctlrc
内容:
2、创建数据库及数据表
文件:/usr/local/sbin/opensipsdbctl
执行如下命令:
./opensipsdbctl create
数据库创建成功,效果如下:
三、数据表描述
数据表说明可参考opensips官方文档:
https://www.opensips.org/Documentation/Install-DBSchema-2-4
官方文档是按模块划分的,这里按表名称的字母顺序进行整理。
一共有57张表:
| acc | | active_watchers | | address | | b2b_entities | | b2b_logic | | cachedb | | carrierfailureroute | | carrierroute | | cc_agents | | cc_calls | | cc_cdrs | | cc_flows | | clusterer | | cpl | | dbaliases | | dialog | | dialplan | | dispatcher | | domain | | domainpolicy | | dr_carriers | | dr_gateways | | dr_groups | | dr_partitions | | dr_rules | | emergency_report | | emergency_routing | | emergency_service_provider | | fraud_detection | | freeswitch | | globalblacklist | | grp | | imc_members | | imc_rooms | | load_balancer | | location | | missed_calls | | presentity | | pua | | re_grp | | registrant | | rls_presentity | | rls_watchers | | route_tree | | rtpengine | | rtpproxy_sockets | | silo | | sip_trace | | speed_dial | | subscriber | | tls_mgm | | uri | | userblacklist | | usr_preferences | | version | | watchers | | xcap | +----------------------------+ 57 rows in set (0.00 sec)
- acc
所属模块: acc
功能:
用于记录成功和失败的事务(失败的事务会存储在missed_calls表)。
参考文档:https://opensips.org/docs/modules/2.4.x/acc.html
-
active_watchers
所属模块: presence
功能:
存储presence模块活跃的客户端订阅列表数据(解析后的)。
参考文档:https://opensips.org/docs/modules/2.4.x/presence.html -
address
所属模块: permissions
功能:
白名单列表,不是该表的ip+port均丢弃。
参考文档: https://opensips.org/docs/modules/2.4.x/permissions.html -
b2b_entities
所属模块:b2b_entities
功能:
实现B2BUA的底层逻辑。
参考文档: https://opensips.org/docs/modules/2.4.x/b2b_entities.html -
b2b_logic
所属模块:b2b_logic
功能:
B2BUA的逻辑引擎。
参考文档:https://opensips.org/docs/modules/2.4.x/b2b_logic.html -
cachedb
所属模块:cachedb_sql
功能:
CacheDB 数据库访问接口。
参考文档:https://opensips.org/docs/modules/2.4.x/cachedb_sql.html -
carrierfailureroute
所属模块:carrierroute
功能:
存储故障路由信息,用于故障时重新路由。
参考文档:https://opensips.org/docs/modules/2.4.x/carrierroute.html -
carrierroute
所属模块:carrierroute
功能:
存储路由信息,用于选择最佳路由。
参考文档:https://opensips.org/docs/modules/2.4.x/carrierroute.html -
cc_agents
所属模块:carrierroute
功能:
存储呼叫中心模块坐席信息。
参考文档:https://opensips.org/docs/modules/2.4.x/carrierroute.html -
cc_calls
所属模块:call_center
功能:
存储呼叫中心模块正在进行的呼叫,该表存储运行时数据,不能手动配置。
参考文档:https://opensips.org/docs/modules/2.4.x/call_center.html
-
cc_cdrs
所属模块:call_center
功能:
存储呼叫中心模块的通话记录。
参考文档:https://opensips.org/docs/modules/2.4.x/call_center.html -
cc_flows
所属模块:call_center
功能:
存储呼叫中心模块的呼叫队列或呼叫流。
参考文档:https://opensips.org/docs/modules/2.4.x/call_center.html -
clusterer
所属模块:clusterer
功能:
用于配置opensips实例的集群。
参考文档:https://opensips.org/docs/modules/2.4.x/clusterer.html -
cpl
所属模块:cpl_c
功能:
配置cpl模块(Call Processing Language)的表,存储呼叫处理逻辑。
参考文档:https://opensips.org/docs/modules/2.4.x/cpl_c.html -
dbaliases
所属模块:alias_db
功能:
存储数据库别名和连接参数。
参考文档:
https://opensips.org/docs/modules/2.4.x/alias_db.html -
dialog
所属模块:dialog
功能:
存储sip会话信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/dialog.html -
dialplan
所属模块:dialplan
功能:
存储dialplan模块规则数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/dialplan.html -
dispatcher
所属模块:dispatcher
功能:
存储dispatcher模块配置数据,用于负载均衡和路由选择。
参考文档:
https://opensips.org/docs/modules/2.4.x/dispatcher.html -
domain
所属模块: domain
功能:
存储域信息配置数据,用于区分不同域。
参考文档:
https://opensips.org/docs/modules/2.4.x/domain.html -
domainpolicy
所属模块:
功能:
存储域策略配置数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/domainpolicy.html -
dr_carriers
所属模块: drouting
功能:
存储运营商配置数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/drouting.html -
dr_gateways
所属模块: drouting
功能:
存储转发消息的目的地数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/drouting.html -
dr_groups
所属模块: drouting
功能:
保存每个trunk各个号码的路由规则。
参考文档:
https://opensips.org/docs/modules/2.4.x/drouting.html -
dr_partitions
所属模块: drouting
功能:
存储drouting的分区信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/drouting.html -
dr_rules
所属模块: drouting
功能:
保存相同groupid对于不同被叫的转发规则。
参考文档:
https://opensips.org/docs/modules/2.4.x/drouting.html -
emergency_report
所属模块: emergency
功能:
紧急呼叫路由模块的事件记录数据,以便排障。
参考文档:
https://opensips.org/docs/modules/2.4.x/emergency.html
https://opensips.org/Documentation/Tutorials-Emergency-2-4 -
emergency_routing
所属模块: emergency
功能:
紧急呼叫路由模块使用该表将 ERT(紧急路由元组)信息转换为用于将紧急呼叫路由到相应 ESGW 网关的 ESGWRI信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/emergency.html
https://opensips.org/Documentation/Tutorials-Emergency-2-4
- emergency_service_provider
所属模块: emergency
功能:
紧急呼叫路由中涉及的供应商信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/emergency.html
https://opensips.org/Documentation/Tutorials-Emergency-2-4
-
fraud_detection
所属模块: fraud_detection
功能:
fraud_detection(欺骗检测)模块使用该表存储规则数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/fraud_detection.html -
freeswitch
所属模块: freeswitch
功能:
存储freeswitch的ESL配置数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/freeswitch.html
https://opensips.org/docs/modules/2.4.x/freeswitch_scripting.html -
globalblacklist
所属模块: userblacklist
功能:
存储全局黑名单数据,用于屏蔽特定号码或IP地址。
参考文档:
https://opensips.org/docs/modules/2.4.x/userblacklist.html -
grp
所属模块: group
功能:
存储用户和组的绑定关系。
参考文档:
https://opensips.org/docs/modules/2.4.x/group.html -
imc_members
所属模块: imc
功能:
存储即时消息会议( instant message conference)的成员数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/imc.html -
imc_rooms
所属模块: imc
功能:
存储即时消息会议( instant message conference)的会议室数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/imc.html -
load_balancer
所属模块: load_balancer
功能:
存储负载均衡模块配置数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/load_balancer.html -
location
所属模块: usrloc
功能:
存储usrloc模块的用户位置信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/usrloc.html -
missed_calls
所属模块: acc
功能:
存储未接通的呼叫数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/acc.html -
presentity
所属模块: presence
功能:
存储presence服务的发布者数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/presence.html -
pua
所属模块: pua
功能:
存储presence服务的用户代理(UA)数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/pua.html
https://opensips.org/docs/modules/2.4.x/presence.html -
re_grp
所属模块: group
功能:
group 模块使用此表来检查基于正则表达式的成员资格。
参考文档:
https://opensips.org/docs/modules/2.4.x/group.html -
registrant
所属模块: uac_registrant
功能:
存储uac_registrant模块的注册信息,用于opensips作为uac注册到其它sip服务器。
参考文档:
https://opensips.org/docs/modules/2.4.x/uac_registrant.html -
rls_presentity
所属模块: rls
功能:
存储资源列表服务器(Resource List Server)的发布者信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/rls.html -
rls_watchers
所属模块: rls
功能:
存储资源列表服务器(Resource List Server)的订阅者信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/rls.html -
route_tree
所属模块: carrierroute
功能:
carrierroute模块用于提供路由、负载均衡和黑名单功能。
参考文档:
https://opensips.org/docs/modules/2.4.x/carrierroute.html -
rtpengine
所属模块: rtpengine
功能:
存储rtpengine的配置数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/rtpengine.html -
rtpproxy_sockets
所属模块: rtpproxy
功能:
存储rtpproxy的配置数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/rtpproxy.html -
silo
所属模块: msilo
功能:
msilo 模块使用该表进行离线消息存储。
参考文档:
https://opensips.org/docs/modules/2.4.x/msilo.html -
sip_trace
所属模块: siptrace
功能:
siptrace模块使用该表进行 SIP 消息存储。
参考文档:
https://opensips.org/docs/modules/2.4.x/siptrace.html -
speed_dial
所属模块: speeddial
功能:
speeddial模块使用该表存储快速拨号数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/speeddial.html -
subscriber
所属模块: auth_db
功能:
存储身份验证信息。
参考文档:
https://opensips.org/docs/modules/2.4.x/auth_db.html -
tls_mgm
所属模块: tls_mgm
功能:
存储TLS 证书和参数数据。
参考文档:
https://opensips.org/docs/modules/2.4.x/tls_mgm.html -
uri
所属模块: uri
功能:
存储sip uri数据用于检测。
参考文档:
https://opensips.org/docs/modules/2.4.x/uri.html -
userblacklist
所属模块: userblacklist
功能:
存储用户黑名单数据,用于屏蔽特定号码或IP地址。
参考文档:
https://opensips.org/docs/modules/2.4.x/userblacklist.html -
usr_preferences
所属模块: avpops
功能:
存储用户首选项信息(可用于个性化设置)。
参考文档:
https://opensips.org/docs/modules/2.4.x/avpops.html -
version
功能:存储各个表的版本信息。
-
watchers
所属模块: presence
功能:
存储presence模块客户端订阅列表数据(解析后的)。
参考文档:
https://opensips.org/docs/modules/2.4.x/presence.html -
xcap
所属模块: xcap
功能:
存储xcap文档。
opensips可以和openxcap服务器配合使用,具体参考: http://openxcap.org/ -