1, 安装 apt-get install
openser
root@louis-laptop:/home/louis# /etc/init.d/openser restart
Restarting openser: openserListening on
udp: 127.0.0.1 [127.0.0.1]:5060
udp: 172.27.1.18 [172.27.1.18]:5060
tcp: 127.0.0.1 [127.0.0.1]:5060
tcp: 172.27.1.18 [172.27.1.18]:5060
Aliases:
tcp: louis-laptop.local:5060
tcp: localhost:5060
udp: louis-laptop.local:5060
udp: localhost:5060
2,创建
openser数据库结构
root
@louis-laptop:/home/louis# openserdbctl create
ERROR: could not load the script in /usr/lib/
openser/openserctl/openserdbctl.mysql
for database engine MYSQL
ERROR: database engine not loaded - tried 'MYSQL'
默认是MYSQL
接下来排错,发现这个文件夹下面是脚本用的是openserdbctl.dbtext
root
@louis-laptop:/usr/lib/
openser/openserctl# ls
openserctl.base openserctl.dbtext openserctl.sqlbase openserdbctl.base
openserctl.ctlbase openserctl.fifo openserctl.unixsock openserdbctl.dbtext
gedit /etc/
openser/openserctlrc
改成DBENGINE=DBTEXT
重新创建
openser数据库结构
root
@louis-laptop:/usr/lib/
openser/openserctl# openserdbctl create
INFO: creating DBTEXT tables at: /usr/local/etc/
openser/dbtext ...
Install presence related tables? (y/n): y
INFO: creating DBTEXT presence tables at: /usr/local/etc/
openser/dbtext ...
Install tables
for imc cpl siptrace domainpolicy carrierroute? (y/n): y
INFO: creating DBTEXT extra tables at: /usr/local/etc/
openser/dbtext ...
后来发现enigne还是要用MYSQL,cat -n /etc/
openser/
openser.cfg排错,最终发现竟是没有安装
openser-mysql-module,我倒...
再次重新创建
openser数据库结构,这里你要输入MYSQL的root的密码,之前你安装SQL的时候要设置的。
root
@louis-laptop:/usr/local/etc/
openser/dbtext# openserdbctl create
MySQL password
for root:
INFO: test server charset
INFO: creating database
openser ...
INFO: Core
OpenSER tables succesfully created.
Install presence related tables? (y/n): y
INFO: creating presence tables into
openser ...
INFO: Presence tables succesfully created.
Install tables
for imc cpl siptrace domainpolicy carrierroute? (y/n): y
INFO: creating extra tables into
openser ...
INFO: Extra tables succesfully created.
3,修改
openser.cfg支持mysql
gedit /etc/
openser/
openser.cfg
Uncomment the line
for MySQL DB support:
loadmodule “mysql.so”
Uncomment the following lines
for MySQL based authentication support:
loadmodule “auth.so”
loadmodule “auth_db.so”
modparam("auth", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
if (!www_authorize("sip.org", "subscriber")) {
www_challenge("sip.org", "0");
break;
};
Change the two sip.org instances in the above config, to your domain, or
realm. In our case, the server’s IP address. (172.27.1.18)
Uncomment the following line to enable DB persistency
for location entries:
modparam("usrloc", "db_mode", 2)
And comment the following line:
modparam("usrloc", "db_mode", 0)
gedit /etc/
openser/openserctlrc, uncomment the following lines:
SIP_DOMAIN = SERVER_IP_ADDRESS (ip here,172.27.1.18)
DBENGINE = MYSQL
DBHOST =
localhost
启动
openser /etc/init.d/
openser restart
用eyebeam发现注册不上,抓包发现ICMP port unreachable,发现sip server 端口5060竟然没有开启。
打开log排错 log_stderror=yes
root
@louis-laptop:/home/louis#Feb 8 22:23:12 [11278] ERROR:mysql:db_mysql_new_connection: drivererror:
Access
denied for
user '
openser'
@'
localhost' (using password:YES)
修改
openser.cfg,
modparam("usrloc", "db_url", "mysql://username:password
@localhost/
openser")
username和password在mysql中创建
mysql -u root -p 登录mysql
mysql>insert into mysql.
user (host,
user,password)
->values ('%','username',password('password')); 用password()函数加密密码
mysql>flush privileges; 重载MySQL授权表
测试刚建立的username,password是否可以使用
mysql -u username -p
4,重新启动
openser /etc/init.d/
openser restart
发现sip端口已经打开
root
@louis-laptop:/home/louis# netstat -au|grep "sip"
udp 0 0 louis-laptop.local:sip *:*
udp 0 0
localhost:sip *:*
5,Add users to database
There are several methods to do this:
Method1: use openserctl on the command line:
#openserctl add username password Authorization_
user_name(email)
@sipdomain
Following are some examples:
#openserctl add 100 100 100
@localhost
#openserctl add 101 101 101
@localhost
Method2: add users directly into the MySql DB into the table subscriber.
For example:
进入mysql
insert into subscriber (username, domain, password, email_address)
values ("username","
localhost","topsecret","username
@localhost");
用刚创建的username,password在eyebeam上注册...OK...打电话...OK
http://cache.baidu.com/c?m=9d78d513d99010fe0facd5690d678131450fd7352bd7a14122948448e2231a160771e3ca7a60475892923c7001de5e5ae8e73603695e71e4c592d50b9bafd56871877d72365e914061ce04f196017e807cc71cacf259beadf045c3f08f86c854248b0e5f3d97f0fc0b5d4bd76cf61232e0a0984f144810cdb7763aa1&p=882a9245899c5dee0caec7710a51&user=baidu&fm=sc&query=Access+denied+for+user+%27openser%27%40%27localhost%27&qid=dd73a9080d620dca&p1=2