安装环境Ubuntu 18.04.1,opensips版本2.4.4:
# cat /etc/issue
Ubuntu 18.04.1 LTS
首先安装opensips保存配置和用户信息的数据库,此处使用mysql。另外安装make menuconfig所需的ncurses库:
# apt-get install mysql-server mysql-client
# apt-get install libncurses5-dev
下载opensips-2.4.4代码,解压:
# wget http://opensips.org/pub/opensips/2.4.4/opensips-2.4.4.tar.gz
# tar -xf opensips-2.4.4.tar.gz
# cd opensips-2.4.4
使用按照make menuconfig提示编译代码,并进行安装,使用默认的配置不做更改:
# make menuconfig
# make install
opensips安装完成之后,首先修改opensips.cfg配置文件,将监听地址(listen的值)修改为本机网卡的IP地址:
# vi /usr/local/etc/opensips/opensips.cfg
listen=udp:192.168.1.124:5060 # CUSTOMIZE ME
接下来配置opensips与数据库mysql的接口,即配置文件opensipsctlrc,包括数据库引擎名、位置、数据库名,访问数据库用户名和密码, 最后一项为访问mysql的用户名:
# vi /usr/local/etc/opensips/opensipsctlrc
DBENGINE=MYSQL
DBPORT=3306
DBHOST=127.0.0.1
DBNAME=opensips
DBRWUSER=opensips
DBRWPW="opensipsrw"
DBROOTUSER="root"
配置完成之后,使用opensipsdbctl工具创建所需的数据库:
# opensipsdbctl create
ERROR: could not load the script in /usr/local//lib64/opensips/opensipsctl/opensipsdbctl.mysql for database engine MYSQL
ERROR: database engine not loaded - tried 'MYSQL'
遇到以上错误,缺少opensipsdbctl.mysql文件,需要由opensips-2.4.4源码目录中进行拷贝:
# cd /usr/local/lib64/opensips/opensipsctl/
# cp /home/kai/work/opensips-2.4.4/scripts/*.mysql .
此处拷贝了两个文件,分别为opensipsctl.mysql和opensipsdbctl.mysql,然后拷贝整个mysql目录:
# cp -rf /home/kai/work/opensips-2.4.4/scripts/mysql .
由于在安装mysql时(版本5.7.24)为设置root用户密码,默认为空。以下更新root密码为111111:
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> use mysql;
mysql> update mysql.user set authentication_string=PASSWORD('111111'), plugin='mysql_native_password' where user='root';
mysql> flush privileges;
再次运行opensipsdbctl创建数据库,遇到缺少standard-create.sql文件的错误:
# opensipsdbctl create
MySQL password for root:
INFO: test server charset
INFO: creating database opensips ...
INFO: Using table engine InnoDB.
sed: can't read ./mysql/standard-create.sql: No such file or directory
需要将opensips-2.4.4源码目录的相应文件拷贝到/usr/local/share/opensips目录下:
# cd /usr/local/share/opensips
# cp /home/kai/work/opensips-2.4.4/scripts/*.mysql .
# cp -rf /home/kai/work/opensips-2.4.4/scripts/mysql/ .
最终运行opensipsdbctl创建完成所需数据库:
root@sip:/usr/local/share/opensips# opensipsdbctl create
MySQL password for root:
INFO: test server charset
INFO: creating database opensips ...
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
b2b
cachedb_sql
call_center
carrierroute
cpl
domainpolicy
emergency
fraud_detection
freeswitch_scripting
imc
registrant
siptrace
userblacklist
? (Y/n): y
INFO: creating extra tables into opensips ...
INFO: Extra tables successfully created.
启动opensips服务:
# opensipsctl start
INFO: Starting OpenSIPS :
INFO: started (pid: 76847)
创建SIP用户1001:
# opensipsctl add 1001 111111
ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN
#
# opensipsctl add 1001@testtest.com.cn 111111
new user '1001@testtest.com.cn' added
使用Yate客户端进行注册之后,查看用户1001的信息如下:
# opensipsctl ul show
Domain:: location hash_size=512
AOR:: 1001
Contact:: sip:1001@192.168.1.110:50535 Q=
ContactID:: 3784994011828221762
Expires:: 466
Callid:: 1383794306@testtest.com.cn
Cseq:: 6
User-agent:: YATE/6.0.0
State:: CS_NEW
Flags:: 0
Cflags::
Socket:: udp:192.168.1.124:5060
Methods:: 63
# opensipsctl online
1001
#
完。