最近在搞SIP话机相关的项目,在搭建opensips服务器时遇到了许多麻烦,大多数都能通过查阅资料解决,但是今天遇到一个问题在网上查不到解决方法,决定分享给大家。
虚拟机系统为Ubuntu14.04
opensips版本为2.1.2
当开启opensips服务时,出现以下错误:
root@sjt-VirtualBox:/usr/local/opensips_proxy/sbin# ./opensipsctl start
INFO: Starting OpenSIPS :
ERROR: PID file /var/run/opensips.pid does not exist -- OpenSIPS start failed
查看错误日志,提示“ERROR:core:db_check_table_version: invalid version 7 for table dialog found”,推测应该是数据库创建的时候有问题
root@sjt-VirtualBox:/usr/local/opensips_proxy/sbin# tail -f /var/log/syslog
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: INFO:alias_db:mod_init: initializing...
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: INFO:dialog:mod_init: Dialog module - initializing
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: INFO:core:evi_publish_event: Registered event <E_DLG_STATE_CHANGED(12)>
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: ERROR:core:db_check_table_version: invalid version 7 for table dialog found, expected 10
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: ERROR:dialog:init_dlg_db: error during table version check.
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: ERROR:dialog:mod_init: failed to initialize the DB support
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: ERROR:core:init_mod: failed to initialize module dialog
Oct 13 08:40:29 sjt-VirtualBox ./opensips[2851]: ERROR:core:main: error while initializing modules
于是再次创建一次opensips的数据库
root@sjt-VirtualBox:/usr/local/opensips_proxy/sbin# ./opensipsdbctl create
MySQL password for root:
INFO: test server charset
INFO: creating database opensips ...
ERROR 1007 (HY000) at line 1: Can't create database 'opensips'; database exists
ERROR: Creating database opensips failed!
提示数据库已经存在,创建失败。原因终于找到了,这是因为之前我建过一次数据库,而这次安装配置opensips和之前的数据库不匹配,才导致了opensips服务无法启动。
因此,删除之前的数据库,重新创建,执行./opensipsdbctl reinit。
root@sjt-VirtualBox:/usr/local/opensips_proxy/sbin# ./opensipsdbctl reinit
MySQL password for root:
INFO: Database opensips deleted
INFO: test server charset
INFO: creating database opensips ...
INFO: Using table engine MyISAM.
INFO: Core OpenSIPS tables successfully created.
Install presence related tables? (y/n): y
INFO: creating presence tables into opensips ...
INFO: Presence tables successfully created.
Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist b2b cachedb_sql registrant call_center fraud_detection? (y/n): y
INFO: creating extra tables into opensips ...
INFO: Extra tables successfully created.
再次开启opensips服务,成功!
root@sjt-VirtualBox:/usr/local/opensips_proxy/sbin# ./opensipsctl start
INFO: Starting OpenSIPS :
INFO: started (pid: 3128)