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 12345kamctl 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,接聽後可完成通話