1.下载 source code from website
http://www.iptel.org/,进入Downloads页面(http://www.iptel.org/download), Download一个release版本的SER source,这里 Download了ser-0.9.6_src.tar.gz (most recent released version)。
2.解开这个压缩包
cp /root/Download/ser-0.9.6_src.tar.gz /home/
tar -xvzf ser-0.9.6_src.tar.gz, 这会产生出文件夹:ser-0.9.6
3.安装SER Server
cd /home/ser-0.9.6/(本人是将压缩包解到/home/路径下的)
make all
make install
cd /home/ser-0.9.6/modules/mysql/
注意:编译mysql相关文件,需要mysql development package,本人用fedora 9,使用yum install mysql-devel即可安装该开发包. 否则会编译错误(找不到mysql.h,errmsg.h,struct my_con).
make(产生出mysql.so以供后用)
cp mysql.so /usr/local/lib/ser/modules/
make clean(清除安装过程中产生的临时和无用的文件)
4.运行SER
/usr/local/sbin/ser start(此时的SER支持简单的callfeature, 但是对用户不进行任何认证)
你可以通过命令:ps -A|grep ser 来查看SER是否起来了
到这里,就可以在客户端进行注册。
注意:在进行客户端操作之前需要进行Firewall configurations,具体操作如下:
System-->Administration-->Firewall-->Other ports-->Add(user defined,5060/udp)
*****建立资料库对用户进行认证和管理*****
service mysqld start
5.对用户的认证和管理
(1)添加domain
vi /etc/hosts
172.21.99.242abc.com
vi ~/.bash_profile
SIP_DOMAIN=abc.com
export SIP_DOMAIN
(2)建立资料库:
首先确保你的pc已经安装过了mysql
建立资料库表格:/usr/local/sbin/ser_mysql.sh create
系统提示输入密码,初始密码是空,直接回车即可
[如果是升级旧的资料库用:/usr/local/sbin/ser_mysql.sh reinstall
如果想删除旧的资料库:/usr/local/sbin/ser_mysql.sh drop ]
如果你想查看资料库表格是否产生出来了,使用命令:
mysql -u root -p(登入mysql数据库,此时需要你的mysql数据库密码,初始是空, 直接回车即可)
connect ser
show tables;(注意需要分号)
用户添加在uri表中,可使用相应的sql语句进行操作。
这里需要先指定SIP_DOMAIN,然后才可以添加用户, 否则要在每个用户名中指定domain, 很麻烦。
(3)添加用户到资料库中:
/usr/local/sbin/serctl add username password email(example,serctl add 62358974 123456 dada@abc.com)
此时系统会提示你输入密码,初始密码是:heslo
删除用户使用命令 serctl rm username
如果你想查看用户是否被添加了出来,使用命令:
serctl rpid show
如果想查看注册用户,使用命令:
serctl showdb
6.修改SER配置文件(/usr/local/etc/ser/ser.cfg)
反注解掉下行,载入mysql以启动资料库
loadmodule "/usr/lib/ser/modules/mysql.so"(将行首的#号去掉即可)
反注解掉以下两行以启动身份验证
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
启用写入资料库功能:
注解掉:modparam("usrloc", "db_mode", 0)(此行是关闭写入资料库行为,故需注解掉,在行首加#号即为注解掉)
反注解掉:modparam("usrloc", "db_mode", 2)(此行是周期性的将资料写入资料库)
启用将密码以未加密的形式存储功能,以便于管理,需反注解掉以下两行
modparam ("auth_db", "calculate_ha1", yes)
modparam ("auth_db", "password_column", "password")
最后反注解掉以下几行
if (!www_authorize("iptel.org", "subscriber"))
{
www_challenge("iptel.org", "0");
break;
};
7.restart SER 以使以上设置生效
注意,启动SER之前须先启动mysql:service mysqld start