Hướng dẫn cài đặt Opensips 1.11 trên CentOS 6.4 x64

posted Aug 5, 2014, 11:49 AM by TEL4VN Channel   [ updated Aug 6, 2014, 12:29 PM ]
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 Opensips, bạn cần cài đặt các package cơ bản:

yum install gcc gcc-c++ bison flex zlib-devel openssl-devel mysql-devel subversion pcre-devel

Việc cài đặt Opensips ở 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 Opensips để kiểm tra lại.

2) Cài đặt Opensips

Download Opensips:

cd /usr/src
wget http://opensips.org/pub/opensips/latest/src/opensips-1.11.1_src.tar.gz


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

cd opensips-1.11.1-tls/
vi Makefile

Bỏ comment phía trước exclude_modules và remove db_mysql, sau khi thực hiện xong ta sẽ được như sau:

exclude_modules?= b2b_logic jabber cpl-c xmpp rls mi_xmlrpc xcap_client \
        db_postgres db_unixodbc db_oracle db_berkeley aaa_radius \
        osp perl snmpstats db_perlvdb carrierroute mmgeoip \
        presence presence_xml presence_mwi presence_dialoginfo \
        pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
        ldap h350 identity regex cachedb_memcached cachedb_redis event_rabbitmq \
        db_http json python dialplan mi_http


Compile Opensips:

make all include_modules="db_mysql"
make install include_modules="db_mysql"


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

Chú ý: Mặc định Opensips 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 Opensips để các softphone có thể register được:

listen=udp:0.0.0.0:5060 # Nếu bạn chỉ muốn Opensips 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.120:5060

3) Tạo database cho Opensips:

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 Opensips, bằng cách mở file /usr/etc/opensips/opensipsctlrc và enable các dòng sau:

SIP_DOMAIN=192.168.2.120 # nếu bạn không có domain thì có thể input ip của server opensips như thế này
DBENGINE=MYSQL
DBHOST=localhost
# nếu bạn sử dụng db trên cùng server với opensips thì set localhost
DBNAME=opensips # tên của db sẽ được tạo ra, bạn có thể thay đổi tên tuỳ ý
DBRWUSER=opensips # user sẽ được tạo ra để Opensips connect tới db, bạn có thể thay đổi tên user tuỳ ý
DBRWPW="opensipsPW" # password của user ở trên, bạn không nên để giá trị mặc định
DBROOTUSER="root" # user với quyền super admin của db của bạn, mặc định là root
OSIPS_FIFO="/tmp/opensips_fifo"

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

Quá trình tạo script trên CentOS bị lỗi nên khi bạn chạy script tạo db, bạn sẽ gặp lỗi sau:

ERROR: could not load the script in /usr//lib64/opensips/opensipsctl/opensipsdbctl.mysql for database engine MYSQL
ERROR: database engine not loaded - tried 'MYSQL'


Bạn sẽ fix lỗi này với các bước sau:

/usr/src/opensips-1.11.1-tls/scripts/opensipsdbctl.mysql /usr/lib64/opensips/
cd /usr/lib64/opensips/opensipsctl
mkdir mysql
cp /usr/src/opensips-1.11.1-tls/scripts/mysql/*.sql mysql/
opensipsdbctl 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.
Sau bước này bạn cần kiểm tra lại db xem db opensips đã được tạo ra hay chưa, kết quả đúng sẽ như hình sau:


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

opensipsctl start

Kết quả cài đặt Opensips 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:

opensipsctl add 1001 TEL4VN # ext: 1001, password: TEL4VN
opensipsctl add 1002 TEL4VN # ext: 1002, password: TEL4VN

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 Opensips 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.opensips.org/Documentation/Modules-1-11

Bạn cũng có thể tìm hiểu thêm về giao diện quản lý cho Opensips, đó là Opensips-CP
Comments