Hướng dẫn cài đặt Kamailio trên Centos 6

 

Bài viết này sẽ hướng dẫn các bạn cài đặt phần mềm Kamailio trên hệ điều hanh CentOS 6

1) Công tác chuẩn bị

Với một server mới thì việc đầu tiên là update packages sau đó reboot để apply:

yum update
reboot

Trước khi cài đặt Kamailio, bạn cần cài đặt các package cơ bản:

yum install gcc make flex bison mysql-server mysql-client mysql-devel

Việc cài đặt Kamailio ở các version khác có thể cần thêm các packages ngoài danh sách ở trên, bạn cần vào trang web của Kamailio để kiểm tra lại.

2) Cài đặt Kamailio

Download Kamailio:

cd /usr/src
wget http://www.kamailio.org/pub/kamailio/latest/src/kamailio-4.1.6_src.tar.gz

Giải nén và enable module db_mysql:

tar zxvf kamailio-4.1.6_src.tar.gz
cd kamailio-4.1.6
make FLAVOUR=kamailio include_modules=”db_mysql” cfg

Compile Kamailio:

make all
make install

Sau khi cài đặt Kamailio xong thì file cấu hình của Kamailio sẽ được lưu trữ tại: /usr/local/etc/kamailio/kamailio.cfg

Chú ý: Mặc định Kamailio sẽ listen ở 127.0.0.1, vì thế bạn cần thay đổi 1 xíu phần listen trong file cấu hình của Kamailio để các softphone có thể register được:

listen=udp:0.0.0.0:5060 # Nếu bạn chỉ muốn Kamailio listen ở ip thì bạn thay 0.0.0.0 bằng ip address của server, trong bài này mình sử dụng listen=udp:192.168.2.200:5060

3) Tạo database cho Kamailio:

Set password cho mysql, chẳng hạn password là “TEL4VN.COM”:

mysqladmin -u root password ‘TEL4VN.COM’

Thay đổi thông số của db sẽ được tạo ra dành cho Kamailio, bằng cách mở file /usr/local/etc/kamailio/kamctlrc và enable các dòng sau:

SIP_DOMAIN=192.168.2.200 # nếu bạn không có domain thì có thể input ip của server Kamailio như thế này
DBENGINE=MYSQL
DBHOST=localhost
 # nếu bạn sử dụng db trên cùng server với Kamailio thì set localhost
DBNAME=kamailio # tên của db sẽ được tạo ra, bạn có thể thay đổi tên tuỳ ý
DBRWUSER=kamailio # user sẽ được tạo ra để Kamailio connect tới db, bạn có thể thay đổi tên user tuỳ ý
DBRWPW=”kamailiorw” # password của user ở trên, bạn không nên để giá trị mặc định
DBROUSER=”kamailioro” 
DBROPW=”kamailioro”
FIFOPATH=”/tmp/kamailio_fifo”

Sau khi quy định thông số của db xong, ta sẽ chạy script để tạo db.

/usr/local/sbin/kamdbctl create

Hệ thống sẽ yêu cầu bạn nhập root password và confirm vài câu hỏi, bạn chỉ cần input yes (y) là được.
Ví dụ:
MySQL password for root:
INFO: test server charset
INFO: creating database kamailio …
INFO: granting privileges to database kamailio …
INFO: creating standard tables into kamailio …
INFO: Core Kamailio tables succesfully created.
Install presence related tables? (y/n): y
INFO: creating presence tables into kamailio …
INFO: Presence tables succesfully created.
Install tables for imc cpl siptrace domainpolicy carrierroute
userblacklist htable purple uac pipelimit mtree sca mohqueue
rtpproxy? (y/n): y
INFO: creating extra tables into kamailio …
INFO: Extra tables succesfully created.
Install tables for uid_auth_db uid_avp_db uid_domain uid_gflags
uid_uri_db? (y/n): y
INFO: creating uid tables into kamailio …
INFO: UID tables succesfully created.

Sau bước này bạn cần kiểm tra lại db xem db kamailio đã được tạo ra hay chưa, kết quả đúng sẽ như hình sau:

 

4) Khởi động Kamailio và test:

kamctl start

Kết quả cài đặt Kamailio thành công sẽ như sau:

 

Việc cuối cùng sẽ là tạo 2 SIP accounts và thực hiện cuộc gọi:

kamctl add 1001 1234 # ext: 1001, password:1234
kamctl add 1002 1234 # ext: 1002, password: 1234

Ta cũng cần kiểm tra table subscriber xem 2 SIP accounts đã được tạo ra thành công hay chưa

Đến đây bạn có thể login 2 SIP accounts này trên softphone (Xlite, 3CX, PortGo Lite, Qutecom,…) và gọi với nhau.

Chúc mừng bạn đã cài đặt Kamailio thành công, nhiệm vụ tiếp theo của bạn là tìm hiểu thông tin về các modules bạn muốn sử dụng, tại http://www.kamailio.org/docs/modules/4.1.x/

Bạn cũng có thể tìm hiểu thêm về giao diện quản lý cho Kamailio, đó Siremis