Với một server mới thì việc đầu tiên là update packages sau đó reboot để apply:
yum update reboot
1) Công tác chuẩn bị
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