Kamailio項目誕生於2005年7月,它是從德國FhG FOKUS研究所主導的SIP Express Router(SER)項目組分裂出來的。新項目建立的目標是創建一個開放的開發環境,以建立一個強大的可擴展的開源SIP服務器。最初,新項目命名為OpenSer,後來因為商標侵權問題,在2008年7月28號,重命名為Kamailio(另外一個分枝是OpenSips)。
Kamailio的官方主頁是http://www.kamailio.org 。1.5.x前的版本,其源碼托管在sourceforge.net的SVN庫上。從3.0.0版開始,源碼托管在sip-router.org的GIT庫上。
2008年11月,Kamailio和SER的開發團隊再度攜手合作,整合兩個SIP服務應用項目。整合結束後發布的V3.0.0版,在同一源碼樹包含了這兩個應用。換句話說,從源碼角度,Kamailio和SER已經合並為一個應用。不同的地方僅是編譯時選擇的名字和缺省配置的加載模塊而已。
不同於PBX,KAMAILIO是個純粹的SIP服務器,它可以作為PROXY、注冊服務器、重定向服務器,也可作為簡單的PRESENCE服務器,其本身並不處理RTP,可能通過RTPPROXY來處理RTP的NAT問題。
1 編譯前准備
sudo apt-get install gcc
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libmysqlclient15-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
2 編譯過程
2.1 下載源碼 wget http://www.kamailio.org/pub/kamailio/latest/src/kamailio-4.1.1_src.tar.gz
2.2 解壓縮 tar -zxvf kamailio-4.1.0_src.tar.gz
2.3 vi modules.lst, 將db_mysql這個變量從exclude_modules裡面移除掉,然後保存並退出。
2.4 設置cfg。 make include_modules="db_mysql dialplan" cfg
2.5 make all
3 安裝與配置
3.1 make install
3.2 配置/usr/local/etc/kamailio/kamailio.cfg
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_MYSQL
3.3 配置 /usr/local/etc/kamailio/kamctlrc
SIP_DOMAIN= x.x.x.x
DBENGINE=MYSQL
## database host
DBHOST=localhost
## database name (for Oracle this is TNS name)
DBNAME=kamailio
# database path used by dbtext, db_berkeley or sqlite
# DB_PATH="/usr/local/etc/kamailio/dbtext"
## database read/write user
DBRWUSER="kamailio"
## password for database read/write user
DBRWPW="kamailiorw"
## database read only user
DBROUSER="kamailioro"
3.4 安裝 mysql server:
3.5 建立數據庫: /usr/local/sbin/kamdbctl create
3.6 增加用戶: kamctl add 1 1
3.7 安裝rtpproxy: apt-get install rtpproxy
3.8 配置rtpproxy: vim /etc/default/rtpproxy, 內容改成如下:
# Defaults for rtpproxy
# The control socket.
#CONTROL_SOCK="unix:/var/run/rtpproxy/rtpproxy.sock"
# To listen on an UDP socket, uncomment this line:
CONTROL_SOCK=udp:127.0.0.1:7722
# Additional options that are passed to the daemon.
EXTRA_OPTS=""
LISTEN_ADDR=x.x.x.x #公網IP
EXTRA_OPTS="-l ${LISTEN_ADDR}"
3.9 重啟rtpproxy: /etc/init.d/rtpproxy restart
4.0 啟動服務:./kamctl start
RedHat 5系統上SIP服務器Kamailio-3.2.2安裝 http://www.linuxidc.com/Linux/2012-02/54055.htm
更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2