随便写点,以后学习。
代码由开源sip服务器Kamailio (OpenSER)修改而成,使用了mysql数据库保存用户信息,我的测试平台是FC9。首先需要先安装好mysql,我使用的版本是mysql5.1.38,正确安装完后,将默认字符集改为 Latin1,不然后面生成kamailio数据库的时候会出现错误,提示key太长,这个应该是mysql的一个bug,网上说5.2.0以上版本就没有这个问题了,我没有试验,直接将他的默认字符集改为Latin1就没问题了。
下面就是安装kamailio,我使用的是kamailio1.4.1版本,下载后放在 /usr/src目录下,然后
cd /usr/src
tar zxvf kamailio-1.4.1-notls_src.tar.gz
cd kamailio-1.4.1-notls_src
make prefix=/ include_modules="db_mysql" all
make prefix=/ include_modules="db_mysql" all install
选定 db_mysql模块安装。
1、修改 /etc/kamailio/kamctlrc
去掉SIP_DOMAIN前的注释,并且修改成自己的服务器地址192.168.1.111。
我的是SIP_DOMAIN=192.168.1.111。
然后去掉 DBENGINE=MYSQL前的注释语句,选定mysql数据库。
2、修改 /etc/kamailio/kamailio.cfg
去掉以下语句前的注释符,使其生效,同时添加自己的服务器ip地址(192.168.1.111)。
loadmodule "db_mysql.so"
loadmodule "auth.so"
loadmodule "auth_db.so"
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url", "mysql://openser:openserrw@localhost/openser")
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url", "mysql://openser:openserrw@localhost/openser")
modparam("auth_db", "load_credentials", "")
if (!www_authorize("192.168.1.111", "subscriber"))
{
www_challenge("192.168.1.111", "0");
exit;
}
if (!check_to())
{
sl_send_reply("403","Forbidden auth ID");
exit;
}
3、生成kamailio的mysql数据库
执行 /sbin/kamdbctl create
如果前面不更改mysql的默认字符集,这里会出问题。
4、注册用户
kamctl add 1000 12345
kamctl add 1001 12345
使用上面的命令添加两个用户 1000和1001 密码都是1234
5、使用x-lite软电话测试
测试需要一个服务器和两个客户端,在实验室的局域网下完成,我的linux装在虚拟机上,所以再需要局域网内的一台机器就够了,借用同学的机器A。在A和我的主机win环境分别下载安装x-lite软电话软件,使用用户名1000和1001登陆,服务器地址写为192.168.1.111(虚拟机ip地址)。通过putty登陆虚拟机,输入
kamctl start
启动sip服务器。
Sip服务器启动后,可以发现A和我的主机下的x-lite可以登陆到服务器,在我的主机下输入1001可以呼叫A下的x-lite,接听后可完成通话。
测试完成。
http://blog.csdn.net/waiting320/article/details/5174163