使用OpenSips1.9搭建Sip服务器

1 篇文章 0 订阅

Sip有很多服务端可以用,miniSipServer ,sipServer等等。如果只是做简单的测试用,可以直接下载minisipserver

1、安装好Mysql数据库

2、在opensips官方网站(http://opensips.org/)下载OpenSips1.9的源码

3、解压编译安装(安装过程中有很多命令需要用root权限。所以建议使用root角色进行操作。sudo -i)

$ make menuconfig


进入configure compile Options选择 Configure Install Prefix设置路径。



返回,选择编译并安装OpenSips,耐心等待2分钟,编译完成后会在设置的目录下生成一个opensips_proxy目录。这是OpenSips的安装目录。

 

4、修改/usr/local/opensips_proxy/etc/opensips/opensipsctlrc配置如下(只是打开了一些注释,其他的都不改变):

## your SIP domain 
SIP_DOMAIN=192.168.1.43 
#服务器的ip地址,使用ifconfig命令查看
## chrooted directory 
# $CHROOT_DIR="/path/to/chrooted/directory" 

## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT, 
## by default none is loaded 
# If you want to setup a database with opensipsdbctl, you must at least specify 
# this parameter. 
DBENGINE=MYSQL 

## database host 
DBHOST=localhost 

## database name (for ORACLE this is TNS name) 
DBNAME=opensips 

# database path used by dbtext or db_berkeley 
# DB_PATH="/usr/local/etc/opensips/dbtext" 

## database read/write user 
DBRWUSER=opensips 

## password for database read/write user 
DBRWPW="opensipsrw" 

## database super user (for ORACLE this is 'scheme-creator' user) 
DBROOTUSER="root" 

5、修改/usr/local/opensips_proxy/etc/opensips/opensips.cfg配置文件,部分修改的配置项,其他的不动

####### Global Parameters ######### 
 
debug=3 
log_stderror=no 
#设置日志打印到单独的文件中 
#	root@ubuntu:vim /etc/rsylog.conf 
#	在最后面添加代码 
#	local1.*   -/var/log/opensips.log 
#	最后重启日志 
#	root@ubuntu:/etc/init.d/rsyslog restart 
#	日志即配置完成。 
log_facility=LOG_LOCAL1 
fork=yes 
children=4 
 
/* uncomment the following lines to enable debugging */ 
#debug=6 
#fork=no 
#log_stderror=yes 
 
/* uncomment the next line to enable the auto temporary blacklisting of 
   not available destinations (default disabled) */ 
#disable_dns_blacklist=no 
 
/* uncomment the next line to enable IPv6 lookup after IPv4 dns 
   lookup failures (default disabled) */ 
#dns_try_ipv6=yes 
 
/* comment the next line to enable the auto discovery of local aliases 
   based on revers DNS on IPs */ 
auto_aliases=no 
 
#添加TCP/UDP监听配置 
listen=udp:192.168.1.43:5060   # CUSTOMIZE ME 
 
disable_tcp=no 
listen=tcp:192.168.1.43:5060   # CUSTOMIZE ME 
 
disable_tls=yes 
 
 
####### Modules Section ######## 
 
#set module path  设置模块路径,这里一定是绝对路径。 
mpath="/usr/local/opensips_proxy/lib64/opensips/modules/" 
 
#### SIGNALING module 
loadmodule "signaling.so" 
 
#### StateLess module 
loadmodule "sl.so" 
 
#### Transaction Module 
loadmodule "tm.so" 
modparam("tm", "fr_timer", 5) 
modparam("tm", "fr_inv_timer", 30) 
modparam("tm", "restart_fr_on_each_reply", 0) 
modparam("tm", "onreply_avp_mode", 1) 
 
#### Record Route Module 
loadmodule "rr.so" 
/* do not append from tag to the RR (no need for this script) */ 
modparam("rr", "append_fromtag", 0) 
 
#### MAX ForWarD module 
loadmodule "maxfwd.so" 
 
#### SIP MSG OPerationS module 
loadmodule "sipmsgops.so" 
 
#### FIFO Management Interface 
loadmodule "mi_fifo.so" 
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo") 
modparam("mi_fifo", "fifo_mode", 0666) 
 
#### URI module 
loadmodule "uri.so" 
modparam("uri", "use_uri_table", 0) 
#必须添加 
modparam("uri", "db_url", "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME 
 
#### MYSQL module 添加Mysql模块支持 
loadmodule "db_mysql.so" 
 
 
 
#### USeR LOCation module 
loadmodule "usrloc.so" 
modparam("usrloc", "nat_bflag", "NAT") 
modparam("usrloc", "db_mode",   2) 
modparam("usrloc", "db_url", 
"mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME 
 
#### REGISTRAR module 
loadmodule "registrar.so" 
modparam("registrar", "tcp_persistent_flag", "TCP_PERSISTENT") 
 
/* uncomment the next line not to allow more than 10 contacts per AOR */ 
#modparam("registrar", "max_contacts", 10) 
 
#### ACCounting module 
loadmodule "acc.so" 
/* what special events should be accounted ? */ 
modparam("acc", "early_media", 0) 
modparam("acc", "report_cancels", 0) 
/* by default we do not adjust the direct of the sequential requests. 
   if you enable this parameter, be sure the enable "append_fromtag" 
   in "rr" module */ 
modparam("acc", "detect_direction", 0) 
modparam("acc", "failed_transaction_flag", "ACC_FAILED") 
/* account triggers (flags) */ 
modparam("acc", "log_flag", "ACC_DO") 
modparam("acc", "log_missed_flag", "ACC_MISSED") 

6、设置启动项

#cp /home/tang/sip/opensips-1.9/packaging/debian/opensips.init /etc/init.d/opensips 

#chmod +x /etc/init.d/opensips

修改/etc/init.d/opensips如下(部分):

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/opensips_proxy/sbin/opensips
NAME=opensips
DESC=opensips
HOMEDIR=/var/run/opensips
PIDFILE=$HOMEDIR/$NAME.pid
DEFAULTS=/etc/default/opensips
RUN_OPENSIPS=no

# Do not start opensips if fork=no is set in the config file
# otherwise the boot process will just stop
check_fork ()
{
    if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" /usr/local/opensips_proxy/etc/opensips/opensips.cfg; then
	echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/opensips debug instead"
	exit 1
    fi
}

7、设置默认项opensips.default

# cp /home/tang/sip/opensips-1.9/packaging/debian/opensips.default /etc/default/opensips

修改/etc/default/opensips如下(部分修改的地方)

# Set to yes to enable opensips, once configured properly.
RUN_OPENSIPS=yes
 
# User to run as
USER=opensips
 
# Group to run as
GROUP=opensips
 
# Amount of shared memory to allocate for the running OpenSIPS server (in Mb)
S_MEMORY=128
 
# Amount of pkg memory to allocate for the running OpenSIPS server (in Mb)
P_MEMORY=4

8、创建数据库

root@pc:/usr/local/opensips_proxy/sbin# ./opensipsdbctl create 

MySQL password for root: 

INFO: test server charset 

INFO: creating database opensips ... 

INFO: Core OpenSIPS tables succesfully created. 

Install presence related tables? (y/n): n 

Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist registrant? (y/n): n 

9、添加用户

root@pc:/usr/local/opensips_proxy/sbin# ./opensipsctl add 1001 1001 

new user '1001' added

用户将添加到subscriber表中

10、操作过程中的其他命令

root@ubuntu:/etc/init.d/opensips restart(重启)

root@ubuntu:/etc/init.d/opensips start(启动)

root@ubuntu:ps aux | grep opensips(查看进程)

root@ubuntu:netstat -ulpn|grep opensips(查看UDP链接状态)

root@ubuntu:netstat -utpn|grep opensips(查看TCP链接状态)

检查配置是否正确:opensips -c

 

如果在这个过程中出现其他错误,可以开启两个终端,通过命令:tail -f /var/log/syslog进行查看。

 

服务器的所有配置完成,可以自己下载一些sip源码或者直接下载现有的sip软件进行测试了。

具体的操作请查看官方文档

原创文章,转载请注明出处:http://blog.csdn.net/tangcheng_ok




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值