CÀI ĐẶT ASTERISK 16 FROM SOURCE TRÊN CENTOS

Hướng dẫn cài đặt asterisk từ source download từ trang chủ

Trên trang chủ đã có hướng dẫn rồi. Mà không hiểu sao cái README.md của nó thiếu thư viện quá trời…

Bước 1: Download source từ trang chủ về

wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Xem chi tiết cách download trên trang chủ tại đây

Bước 2: Tải các thư viện về để bắt đầu quá trình biên dịch (Compile)

Sử dụng một trong hai lệnh sau với quyền root hoặc sudo root nhé

sudo yum group install "Development Tools"
yum groupinstall "Development Tools"

Một số thư viện mà trang README.md yêu cầu:

yum install glibc-devel ncurses-devel openssl-devel zlib-devel

Một số thư viện khi mà mình cài nó lại báo thiếu… Nên phải cài thêm đây:

yum install libuuid-devel libedit-devel libjansson-devel

Bước 3: Compile thôi

./configure

Ops! Cái gì đây?

checking for uuid/uuid.h… yes
checking for JANSSON… no
checking for json_sprintf in -ljansson… no
configure: *** Asterisk requires libjansson >= 2.11 and no system copy was found.
configure: *** Please install the ‘libjansson’ development package or
configure: *** use ‘./configure –with-jansson-bundled’

Lỗi thiếu thư viện

OK, thích thì chiều

./configure --with-jansson-bundled

checking for uuid/uuid.h… yes
checking for clock_gettime in -lrt… yes
checking for xml2-config… no
configure: *** The Asterisk menuselect tool requires the ‘libxml2’ development package.
configure: *** Please install the ‘libxml2’ development package.

Lỗi thiếu thư viện nữa…
yum install libxml2-devel -y

Rồi chạy lại thôi…

checking for sqlite_exec in -lsqlite… no
checking for sqlite3_open in -lsqlite3… no
configure: error: *** Asterisk now uses SQLite3 for the internal Asterisk database.

Lỗi nữa…

Check trên stackoverflow thì người ta bảo cài thêm thư viện hỗ trợ SQLite3. Nhưng mà nó chỉ cài trên Ubuntu… còn mình làm trên CentOS thì phải tự tìm package.

yum search sqlite | grep devel

Rồi theo kinh nghiệm chọn ngay luôn:

yum install sqlite-devel

Rồi xong. Chạy lại thôi.

./configure --with-jansson-bundled

OK xong xuôi rồi đó.

Ảnh configure thành công

Mọi người xem tất cả các thư viện cài 1 lần luôn cũng được. Đừng cài từng cái theo kiểu của mình nha. Lâu lắc mệt lắm.

Tiếp tục đọc README.md thôi.

Bước 4: Nó bảo mình là Run make menuselect [optional]

make menuselect

Bước 5: Make thôi

Bước 6: Make install kìa

make install

Gặp lỗi rồi

[pjproject] Compiling lib libpj-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjlib-util-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjsua-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjsip-ua-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjsip-simple-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjsip-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjmedia-codec-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjmedia-videodev-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjmedia-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjmedia-audiodev-x86_64-unknown-linux-gnu.a
[pjproject] Compiling lib libpjnath-x86_64-unknown-linux-gnu.a
[pjproject] Generating symbols
[jansson] Building bundled jansson.
make[2]: *** [dest/include/jansson.h] Error 2
make[1]: *** [jansson] Error 2
make: *** [third-party] Error 2

Nghe đồn bỏ PATH thư viện 64 bit vào sẽ ổn

./configure --libdir=/usr/lib64 --with-jansson-bundled

Tạm ổn. Chạy lại các lệnh trên thôi

make menuselect
make install

OK. Cuối cùng cũng xong xuôi rồi đó. Còn vài thứ linh tinh thôi.

Chạy lệnh make sample để ghi đè cấu hình. Nó cấu hình vài thứ có sẵn, để làm ví dụ, ai mới xài lần đầu như mình thì nên chạy nhé. Không chạy không có file cấu hình sẵn thì không start được dịch vụ lên đâu.

make samples

Có cả sample cho PBX nữa, lệnh phía dưới

make basic-pbx

Còn document nữa, nhưng yêu cầu có doxygen nha.

make progdocs

1 thought on “CÀI ĐẶT ASTERISK 16 FROM SOURCE TRÊN CENTOS

  1. Pingback: ASTERISK CẤU HÌNH CƠ BẢN “HELLO WORLD” WITH SIP | TẬP GHI CHÉP

Leave a Reply

Your email address will not be published. Required fields are marked *