kamailio4.2.6 安装和配置教程

本博客是基于http://blog.csdn.net/jackywxs/article/details/26040263编写,在此感谢编者。


下面就是安装kamailio,我使用的是kamailio-4.2.6版本,下载后放在 /home/cuisy/download目录下,然后 

cd /home/cuisy/download

tar zxvf kamailio-4.2.6.tar.gz

cd kamailio-4.2.6

make FLAVOUR=kamailio cfg

用自己熟悉的编辑工具打开“modules.lst”文件,找到“exclude_modules”变量,删除db_mysql字段(这里可以根据自己的需要调整编译的模块)。然后编译:

在编译之前,需要安装第三方依赖库:

sudo apt-get install gcc

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install libmysqlclient-dev

sudo apt-get install make

sudo apt-get install libcurl4-openssl-dev

sudo apt-get install libxml2-dev

sudo apt-get install libpcre3-dev


然后执行编译和安装

  # make all

  # make install

  缺省情况下,Kamailio的可执行文件安装在“/usr/local/sbin”路径下,配置文件安装在“/usr/local/etc/kamailio”路径下。


 几个可执行文件功能如下:

  kamailio - Kamailio服务器的执行文件

  kamdbctl - 创建和管理数据库的脚本

  kamctl - 管理和控制Kamailio服务器的脚本

  sercmd - CLI,一个命令行工具,访问提供Kamailio服务器的接口


打开/usr/local/etc/kamailio/kamailio.cfg,添加下面几行(添加在最顶端即可):

  #!define WITH_MYSQL

  #!define WITH_AUTH

  #!define WITH_USRLOCDB

  #!define WITH_NAT


选定 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服务

  # /usr/local/sbin/kamctl start

会出现如下错误:

这种错误出现的原因一般是数据库的问题,因此,如果出现这个问题提示,请跳至下面的第四条。


4、生成kamailio的mysql数据库
 执行../sbin/kamdbctl create 
可能会遇到如下的问题

此时执行下面的语句来为用户授权,
grant all on *.* to 'root'@'%' identified by 'yourpassword';        
grant all on *.* to 'root'@'localhost' identified by 'yourpassword';

然后再试一下能否成功,如果还是不行,请检查kamdbctl这个配置文件中的DBHOST处是否是127.0.0.1或者localhost,如果不是请将其修改成127.0.0.1或者localhost试试。
也可以在前面授权的时候使用
grant all on *.* to 'root'@'你的ip' identified by 'yourpassword';试试

5. 监视Kamailio

# /usr/local/sbin/kamctl moni


6、注册用户

kamctl add 1000 12345
kamctl add 1001 12345
使用上面的命令添加两个用户 1000和1001 密码都是1234 ,添加完毕后,配置你的SIP终端注册。

  上面就是CentOS 6.0安装Kamailio的方法介绍了,Kamailio的编译安装需要下载源码,只需进行一些简单的配置即可,配置好后添加用户账号就可以使用了。


7、使用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,接听后可完成通话


你可能感兴趣的:(博客,SIP)