1. 程式人生 > >kamailio4.2.6 安裝和配置教程

kamailio4.2.6 安裝和配置教程

下面就是安裝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,接聽後可完成通話