分类: LINUX
2010-09-21 14:02:44
Redhat5.2(32bit)安装配置opensips
一. 安装系统时选包
a) Servers>Mysql Database>Optional Packages>Default plus
i. mysql-devel-
ii. php-mysql-
iii. mod_auth_mysql-
b) Servers>Web Server>Optional Packages>Default plus
i. mod_nss-
c) Servers>Mail Server>Default
二. 安装和配置
1.确认安装环境,否则编译很难通过。
如果按照第一步选包系统已经安装包:
zlib-
openssl-
mysql-server-
除此之外,还应安装如下rpm套件,可以使用“rpm –qa |grep (套件名)”来查询。
gcc, bison, flex, zlib-devel, openssl-devel
2.编译安装opensips
把opensips-
tar xzvf opensips-
拷贝到/usr/src/目录下面
mv opensips-
然后切换到/usr/src/opensips目录下面修改配置文件,编译
cd /usr/src/opensips/
vi Makefile 修改Makefile,去掉db_mysql选项
# if not set on the cmd. line or the env, exclude this modules:
exclude_modules?= b2b_logic jabber cpl-c xmpp rls mi_xmlrpc xcap_client \
db_mysql db_postgres db_unixodbc db_oracle db_berkeley aaa_radius \
osp perl snmpstats perlvdb carrierroute mmgeoip \
presence presence_xml presence_mwi presence_dialoginfo \
pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
ldap h350 identity regex memcached db_http json
去掉后:
# if not set on the cmd. line or the env, exclude this modules:
exclude_modules?= b2b_logic jabber cpl-c xmpp rls mi_xmlrpc xcap_client \
db_postgres db_unixodbc db_oracle db_berkeley aaa_radius \
osp perl snmpstats perlvdb carrierroute mmgeoip \
presence presence_xml presence_mwi presence_dialoginfo \
pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
ldap h350 identity regex memcached db_http json
编译opensips:
make clean
make all include_modules="mysql"
make prefix=/usr/local install include_module="mysql"
编辑opensipsctlrc 取消mysql注释“#”
vi /usr/local/etc/opensips/opensipsctlrc
# this parameter.
# DBENGINE=MYSQL
启动数据库mysql
[root@sun-test ~]# service mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h sun-test password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at
Support MySQL by buying support/licenses at
[ OK ]
Starting MySQL: [ OK ]
为mysql数据库的root用户创建密码为baustem:
[root@sun-test bin]# mysqladmin -u root password baustem
[root@sun-test bin]#
创建opensips数据库
[root@sun-test bin]# /usr/local/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): y
INFO: creating presence tables into opensips ...
INFO: Presence tables succesfully created.
Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist? (y/n): y
INFO: creating extra tables into opensips ...
INFO: Extra tables succesfully created.
[root@sun-test bin]#
设置mysql自启动并查看
[root@sun-test ~]# chkconfig mysqld on
[root@sun-test ~]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
设置opensips自启动的启动脚本:
把内容复制下来,然后在linux系统服务器中新建文件/etc/init.d/opensips,并把内容粘贴进去保存退出
[root@sun-test ~]# chmod 755 /etc/init.d/opensips
[root@sun-test ~]# chkconfig --add opensips
[root@sun-test ~]# chkconfig --list opensips \\查看添加系统启动服务成功
opensips 0:off 1:off 2:off 3:on 4:on 5:on 6:off
运行opensips命令
[root@sun-test ~]# service opensips stop
Stopping opensips: [ OK ]
[root@sun-test ~]# service opensips start
Starting opensips: [ OK ]
[root@sun-test ~]# service opensips status
opensips (pid 17605 17604 17603 17602 17601 17600 17599 17598 17597 17596 17595 17594 17593 17592 17591 17590 17588) is running...
配置到此步骤,服务器已经可以完成用户自动注册服务;如果想控制用户的添加等操作,需要进一步修改配置文件/usr/local/etc/opensips/opensips.cfg
下面配置内容前面的#号全部取消:实际配置内容应如下:
/* uncomment next line for MySQL DB support */
loadmodule "db_mysql.so"
···
loadmodule "acc.so"
/* uncomment next lines for MySQL based authentication support
NOTE: a DB (like db_mysql) module must be also loaded */
loadmodule "auth.so"
loadmodule "auth_db.so"
····
/* uncomment the following lines if you want to enable DB persistency
for location entries */
modparam("usrloc", "db_mode", 2)
···
/* uncomment the following lines if you want to enable the DB based
authentication */
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
···
#authenticate the REGISTER requests (uncomment to enable auth)
if (!www_authorize("
{
www_challenge("
exit;
}
opensips.cfg配置文件:
配置完后重启opensips服务。
[root@sun-test ~]# service opensips reload
Stopping opensips: [ OK ]
Starting opensips: [ OK ]
3.非自动注册模式使用
配置SIP_DOMAIN,添加如下内容到/root/.bash_profile文件:
export SIP_DOMAIN=192.168.0.241 //服务器ip
添加一个测试用户:
[root@sun-test ~]# opensipsctl add 2000 123456
MySQL password for user 'opensips@localhost': //密码为opensipsrw
new user '2000' added
测试注册用户,在pc机器上安装linphone,配置开通的用户和密码,然后拨号,在服务器上可以看到:
Pc拨号软件端设置,拨号连接时候需要填写之前注册用户名密码
Sipserver服务器上查看:
Domain:: location table=512 records=1
AOR:: 654333
Contact:: sip:654333@192.168.0.203:5060 Q=
Expires:: 3556
Callid:: 29964
Cseq:: 2
User-agent:: Linphone/3.3.2 (eXosip2/3.3.0)
State:: CS_SYNC
Flags:: 0
Cflag:: 0
Socket:: udp:192.168.0.241:5060
Methods:: 4294967295
chinaunix网友2010-12-22 13:12:39
朋友,你试过这样可以行的吗,我按照你的方法试了下,出现下面错误 n 13-14: failed to load module Dec 22 10:54:59 localhost opensips: ERROR:core:main: bad config file (1 errors) Dec 22 10:55:03 localhost sshd(pam_unix)[4723]: session opened for user root by root(uid=0) Dec 22 10:55:22 localhost opensips: ERROR:core:sr_load_module: could not open module : libmysqlclient.so.16: cannot open shared object file: No such file or directory Dec 22 10:55:22 localhost opensips: CRITICAL: