Android 开发

海纳百川 有容乃大

Kamailio 配置mysql 文章后部分重要

随便写点,以后学习。

 

代码由开源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


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭