Kamailio 的 SIP服务器使用经验

来源:互联网 发布:centos部署django环境 编辑:程序博客网 时间:2024/05/18 01:30


代码由开源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,接听后可完成通话。
  
原创粉丝点击