Asterisk giữ lại các dữ liệu chi tiết cuộc gọi đầy đủ .Chúng ta có thể chứa thông tin
này trong một tệp phẳng (flat file), hoặc tốt hơn là một database để lưu trữ và tra cứu
hiệu quả. Sử dụng thông tin này chúng ta có thể giám sát sự sử dụng của hệ thống
Asterisk.
Chúng ta có thể so sánh các dữ liệu này với hóa đơn mà công ty điện thoại gởi đến,
cho phép chúng ta phân tích lưu lượng cuộc gọi.
4.11.Call Recording
Asterisk đưa đến cho chúng ta khả năng để ghi âm các cuộc gọi. Tính năng này được
sử dụng để chứng minh nội dung cuộc gọi làm thõa mản một yêu cầu nào đó của
khách hàng khi cần thiết cũng như khả năng giúp đỡ trong các trường hợp có liên quan
đến pháp luật.
4.12.Blacklist
Blacklist cũng giống như Privacy Manager nhưng có một sự khác biệt là những máy điện thoại nằm trong danh sách sẽ không gọi được đến máy của bạn (sử dụng trong
tình trạng hay bị quấy rối điện thoại)
4.13.User permission to/international call
Chúng ta có thể được cấp quyền bằng mật mã hoặc theo số nội bộ.
Và còn rất nhiều tính năng nữa mà hệ thống Asterisk có thể cung cấp cho người sử
dụng , trên đây chỉ là một số tính năng thường được sử dụng.Để biết thêm các tính
CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX
Trong chương này sẽ mô tả việc cài đặt phần mềm Asterisk vào máy server, tìm hiểu
các file cấu hình hệ thống quan trọng, kế hoạch quay số(dialplan)…
5.1. Cài đặt Asterisk
Để cài đặt Asterisk, đầu tiên chúng ta phải cài đặt hệ điều hành Linux vào máy server . Có thể cài các bản phân phối sau của Linux: Fedora, CentOS, Redhat, Debian …Các gói phần mềm phụ thuộc phải có trong hệ điều hành Linux trước khi cài đặt Asterisk
là: - bison - gcc - kernel-source - libtermcap-devel - ncurses-devel - openssl096b - openssl-devel
Đối với các phiên bản Asterisk trước 1.2, chúng ta phải cài đặt thêm gói mpg123 . Để cài đặt gói mpg123, chúng ta download bằng lệnh :
#wget http://www.mpg123.de/mpg123-0.59.tar.gz
Tiếp theo chúng ta bung nén vào một thư mục chỉ định, biên dịch (compile) và cài đặt
(install) bằng các lệnh:
#tar –zxvf mpg123-0.59.tar.gz #make
#make install
Sau khi hoàn tất các bước trên, chúng ta tiến hành download phần mềm Asterisk với
phiên bản mới nhất .Tất cả các gói phần mềm của Asterisk được cung cấp đầy đủ từ
website cung cấp mã nguồn mở : http://www.asterisk.org Download các gói phần mềm Asterisk bằng các lệnh :
#cd /usr/src #wget http://ftp.digium.com/pub/asterisk/asterisk-1.x.x.tar.gz #wget http://ftp.digium.com/pub/asterisk/asterisk-addons-1.x.x.tar.gz #wget http://ftp.digium.com/pub/asterisk/asterisk-sounds-1.x.x.tar.gz #wget http://ftp.digium.com/pub/zaptel/zaptel-1.x.x.tar.gz #wget http://ftp.digium.com/pub/libpri/libpri-1.x.x.tar.gz ( x :đại diện cho version)
Việc download nhanh hay chậm tùy vào tốc độ đường truyền internet, sau khi
download hoàn thành chúng ta tiến hành bung nén các gói : #tar –xzvf asterisk-1.x.x.tar.gz
#tar –xzvf asterisk-addons-1.x.x.tar.gz #tar –xzvf asterisk-sounds-1.x.x.tar.gz #tar –xzvf zaptel-1.x.x.tar.gz
#tar –xzvf libpri-1.x.x.tar.gz
Chúng ta cũng nên tạo một liên kết bằng cách gõ lệnh :
#ln –s /usr/src/asterisk-1.x.x /usr/src/asterisk .Lệnh này đảm bảo gói “addons” được
biên dịch đúng .
Tiếp theo chúng ta biên dịch các gói đã giải nén.Trước tiên là gói zaptel, kế đến là gói
libpri, sau cùng là gói asterisk.
5.1.1. Cài đặt Zaptel
Gói zaptel được chứa ở thư mục /usr/src/zaptel-1.x.x . Đánh lệnh như dưới đây để cài
đặt: #cd /usr/src/zaptel-1.x.x #make clean #./configure #make #make install
Các lệnh này thực hiện khoảng vài phút, tùy thuộc vào tốc độ của máy tính cài đặt . Sau khi cài đặt xong sẽ trở lại dấu nhắc lệnh và hiển thị một loạt các thông báo, trong đó có một số bản tin lỗi mà chủ yếu là yêu cầu cài đặt các gói phụ thuộc đã liệt kê ở
trên, nếu các gói đó chưa được cài đặt.
Gói Zaptel, chứa các driver Zapata được tạo cho Asterisk, cần thiết cho việc sử dụng
phần cứng điện thoại của hãng Digium, và cũng bao gồm một số thư viện mà Asterisk phụ thuộc vào, bất kể là chúng ta có sử dụng phần cứng của hãng Digium hay không. Nếu chúng ta muốn Asterisk khởi động khi boot máy tính, chúng ta dùng lệnh:
#make config
Lệnh này tạo ra một script chèn module Zaptel vào kernel và chạy ztconfig khi boot máy tính.
5.1.2. Cài đặt libpri
Kế đến chúng ta biên dịch và cài đặt gói libpri được chứa tại thư mục /usr/src/libpri- 1.x.x bằng các lệnh sau:
#cd /usr/src/libpri-1.x.x #make clean
#make #make install
Quá trình biên dịch này khoảng một phút, sau khi thực hiện xong sẽ trở về dấu nhắc
lệnh .
Libpri cung cấp các thư viện được yêu cầu cho việc sử dụng trung kế PRI, cũng như
một số giao tiếp điện thoại khác. Ngay cả khi Asterisk không giao tiếp với PRI, chúng
ta cũng nên cài đặt nó.
5.1.3. Cài đặt Asterisk
Bây giờ đến lúc chúng ta thực sự cài đặt Asterisk, được chứa tại thư mục
/usr/src/asterisk-1.x.x . Chúng ta cài đặt như sau ; #cd /usr/src/asterisk-1.x.x
#make clean #./configure #make #make install
Sau khi cài đặt thành công, chúng ta sẽ có một hệ thống PBX với các tính năng cơ bản. Tại thời điểm này chúng ta sẽ tiến hành cấu hình hệ thống theo nhu cầu sử dụng.
Để hiểu rõ hơn về cách cấu hình hệ thống, chúng ta sẽ xem các tập tin cấu hình mẫu
bằng cách gõ lệnh:
#make samples
Để Asterisk khởi động mỗi khi boot máy tính chúng ta dùng lệnh:
#make config
Lệnh make samples tạo ra một tập tin zaptel.confở thư mục /etc và các tập tin cấu hình mẫu ở thư mục /etc/asterisk
Các tập tin cấu hình mẫu bao gồm:
adsi.conf: tập tin này chứa đựng cấu hình cho giao diện các dịch vụ hiển thị Analog
hay viết tắt là ADSI (Analog Display Services Interface).
agents.conf: tập tin này chứa cấu hình cho việc sử dụng các agent (điện thoại viên),
thường được ứng dụng trong các trung tâm cuộc gọi (call center).Tập tin này cho phép
chúng ta định nghĩa các agent và gán cho họ các ID và mật khẩu.
alarmreceiver.conf: tập tin này cấu hình ứng dụng nhận cảnh báo. Chúng ta sẽ không thay đổi các giá trị từ sự thiết lập mặc định của nó .
alsa.conf: tập tin này chứa các tham số cấu hình cho card âm thanh của hệ thống.
asterisk.adsi: bao gồm script ADSI mặc định của Asterisk. Script này sẽ được thực thi
từ điện thoại nếu chúng ta dùng phần cứng ADSI.
asterisk.conf: tập tin này thiết lập các biến tổng quát cho việc sử dụng Asterisk. Hầu
hết những tham số này chúng ta sẽ không cần phải chỉnh sửa . Nó thông báo cho Asterisk một cách căn bản nơi để tìm các tập tin tổng quát và các chương trình có khả năng thực thi.
cdr_manager.conf: tập tin này cấu hình CDR cho quản lý cuộc gọi.
cdr_odbc.conf: đây là tập tin cấu hình cho việc sử dụng một kết nối cơ sở dữ liệu ODBC để lưu trữ các CDR của chúng ta.
cdr_pgsql.conf:tập tin cấu hình này cho phép chúng ta sử dụng cơ sở dữ liệu PostgreSQL để lưu trữ các bản ghi CDR của chúng ta.
cdr_tds.conf: đây là tập tin cấu hình cho việc sử dụng FreeTDS, cho phép các kết nối đến Microsoft SQL và Sybase.
enum.conf: tập tin này cấu hình sử dụng ENUM, cho phép chúng ta phân giải các số điện thoại dựa trên các DNS, qua đó cho phép chúng ta định tuyến cuộc gọi đến một
số IP thay vì đi trên mạng PSTN.
extconfig.conf: với tập tin này, chúng ta có thể tùy chọn lưu các thông tin hoạt động
của queue và một cơ sở dữ liệu nào đó.
extensions.conf: tập tin này cấu hình hoạt động của Asterisk.Chúng ta sẽ tim hiểu sâu
về tập tin này.
features.conf: tâp tin này bao gồm các tùy chọn cho các chức năng cơ bản của hệ
thống như : call parking, call pickup…
festival.conf: tập tin này tiết lập các tham số cho Festival, là một chương trình nguồn
mở mà cho phép server của chúng ta đọc các tập tin văn bản.
iax.conf: tập tin này cấu hình các tài khoản sử dụng giao thức IAX để đàm thoại
indications.conf: đây là nơi cho phép chúng ta cấu hình các thuộc tính tổng quát của
thanh để người dùng sử dụng các âm thanh của mạng điện thoại của một quốc gia nào
đó.
logger.conf: tập tin này thiết lập các dạng logging mà chúng ta sẽ sử dụng.
manager.conf: tập tin này cấu hình các quyền truy cập từ xa đến hệ thống quản lý
cuộc gọi Asterisk.
meetme.conf: tập tin cấu hình này thiết lập các phòng hội thọai đơn giản .Chúng ta
cũng có thể tùy chọn định nghĩa các mật khẩu cho từng phòng.
modem.conf: tập tin này thiết lập các biến tổng quát cho phép chúng ta sử dụng các
modem lựa chọn với Astersik. Chú ý rằng không nhiều các modem được hổ trợ bởi
Asterisk, và hầu hết các modem chỉ là half-duplex, chúng không có hiệu năng tốt .
modules.conf: tập tin cấu hình này lựa chọn các module Astersik nào sẽ được khởi động. Chúng ta có thể kích hoạt hoặc tắt các tính năng của PBX thông qua việc thay đổi các tham số ở đây .
musiconhold.conf: tập tin cấu hình này tạo các tập tin nhạc chờ và định nghĩa thứ tự
tập tin nào sẽ được phát.
oss.conf: cấu hình này giống như alsa.conf, chúng ta sẽ không dùng đến nó.
phone.conf: tập tin này cho phép chúng ta sử dụng các giao tiếp điện thoại Linux, như
linejack của Quicknet…
privacy.conf:tập tin này cho phép chúng ta cấu hình các tùy chọn riêng.
queues.conf: tập tin cấu hình này cho phép chúng ta tạo các hàng đợi (queue) cho người gọi, cho phép chúng ta tiếp nhận một số lượng lớn các cuộc gọi cùng một lúc
bằng giải pháp thông minh.
res_config_odbc.conf: tập tin này thiết lập cấu hình để lưu trữ các thông tin cấu hình hệ thống vào một cơ sở dữ liệu dạng ODBC.
rpt.conf: tập tin này cho phép chúng ta sử dụng các bộ lặp vô tuyến (radio repeater).
rtp.conf: tập tin cấu hình này thiết lập các cổng để sử dụng giao thức thời gian thực ( Real -Time Protocal ).
sip.conf: tập tin cấu hình này định nghĩa các tài khoản dùng giao thức khởi tạo phiên (Session Initiation Protocal) và các tùy chọn cho chúng .Chúng ta cũng có thể thiết lập
các biến tổng quát cho SIP, như dùng cổng nào và thời gian timeout là bao nhiêu.
skinny.conf: tập tin này cấu hình giao thức VoIP skinny, vốn được sử dụng rất nhiều trong các điện thoại của Cisco.
telecordia-1.adsi: đây là một script ADSI mẫu.
voicemail.conf: tập tin cấu hình này tạo các người dùng hộp thư thoại(voicemail) và một vài tham số tổng quát cho các kịch bản Mail, hệ thống voicemail của Astersik.
vpb.conf: tập tin này cấu hình phần cứng Voice Tronix.
zapata.conf: tập tin này thiết lập các thông số cấu hình giao tiếp điện thoại
Zapata.Chúng ta sẽ sử dụng tập tin này để cấu hình phần cứng của Digium. Phần cứng
của Digium cho phép chúng ta liên lạc với PSTN .
5.1.4. Cài đặt Asterisk-addons
Ta dùng các lệnh sau để cài đặt Asterisk-Addons: #cd /usr/src/asterisk-addons-1.x.x
#./configure #make #make install
Sau khi biên dịch và cài đặt thành công, chúng ta có thể khởi động và sử dụng Asterisk
với các tham số mặc định. Có nhiều cách để khởi động Asterisk, nhưng cách đơn giản
nhất là thực hiện lệnh sau:
# /usr/sbin/asterisk –rvvvv
Để thoát khỏi chế độ dòng lệnh, ta dùng lệnh sau:
CLI>exit
Cấu trúc thư mục của Asterisk:
Asterisk sử dụng nhiều thư mục trên hệ thống Linux để quản lí các khía cạnh khác
nhau của hệ thống, như các bản ghi hộp thư thoại, các bản tin nhắc thoại, và các tập tin
cấu hình.Phần này sẽ trình bày các thư mục chính yếu, được tạo ra trong quá trình cài
đặtvà được cấu hình trong tập tin asterisk.conf
/etc/asterisk/
Thư mục /etc/asterisk/ chứa các tập tin cấu hình của hệ thống Asterisk, ngoại trừ tập
tin zaptel.conf được đặt tại thư mục /etc/ .Phần cứng Zaptel đầu tiên được phát triển
bởi Jim Dixon thuộc nhóm điện thoại Zapata( Zapata Telephony Group) để giao tiếp
giữa máy tính với mạng điện thoại , mà Asterisk lại sử dụng phần cứng này , với lý do đó mà file cấu hình zaptel.conf không nằm trong thư mục /etc/asterisk/
/usr/lib/asterisk/modules/
Thư mục /usr/lib/asterisk/modules/ chứa tất cả các modules cần thiết để Asterisk hoạt động .Bên trong thư mục là các ứng dụng khác nhau, các codec, các định dạng(format)
và các kênh(channel) được sử dụng bởi Asterisk. Theo mặc định Asterisk sẽ nạp tất cả
các module vào lúc khởi động . Chúng ta có thể không cho nạp một module bất kỳ
nạp module thì phải biết chắc module đó không ảnh hưởng đến hoạt động của
Asterisk, nếu không lỗi sẽ xuất hiện khi khởi động .
/var/lib/asterisk/
Thư mục /var/lib/asterisk/ chứa tập tin astdb và một số thư mục con.Tập tin astdb chứa đựng thông tin cơ sở dữ liệu của Astersik, giống như Microsoft Windows Registry. Các thư mục con của thư mục /var/lib/asterisk/ bao gồm:
. agi-bin/
Thư mục agi-bin/ chứa các script của người dùng, các script này có thể giao tiếp
với Asterisk qua các ứng dụng AGI(Asterisk Gate Interface) khác nhau được cài đặt sẵn.AGI là phần giao tiếp với ngôn ngữ lập trình script để thực hiện một
số công việc của Asterisk từ bên ngoài.
. firmware/
Thư mục firmware/ chứa một số firmware cho các thiết bị khác nhau tương
thích với Asterisk.Nó hiện tại chỉ chứa thư mục con /iax chứa các firmware cho
thiết bị IAXy của Digium.IAXy là thiết bị ATA sử dụng giao thức IAX.
. images/
Các ứng dụng thông tin với các kênh hổ trợ các ảnh đồ họa thì sử dụng thư mục
này. Nhưng hiện tại các kênh thông tin thì hầu như không hỗ trợ truyền ảnh nên
thư mục này cũng hiếm khi được sử dụng.Tuy nhiên nếu các thiết bị có hỗ trợ
thì thư mục này trở nên hiệu dụng.
. keys/
Asterisk có thể sử dụng một hệ thống khóa public/private để xác minh các kết
nối giữa các server Asterisk thông qua chữ ký điện tử RSA.Nếu đặt một khóa public vào thư mục /keys thì kết nối của server đầu bên kia có thể được xác
minh bằng kênh thông tin có hỗ trợ, đối với Asterisk thì kênh giao thức IAX hỗ
trợ loại xác minh này. Một khóa private thì không bao giờ được phân phát đến
public, chúng ta chỉ công bố khóa public đến với server cần kết nối, sau đó sẽ
xác minh với khóa private này.Cả hai khóa public và private được lưu với đuôi .pub và .key đặt tại thư mục keys/
. mohmp3/
Khi chúng ta cấu hình Asterisk với tính năng Music on Hold, tính năng này hoạt động sẽ lấy các tập tin MP3 tại thư mục mohmp3/. Tập tin định dạng theo
chuẩn của Asterisk nên khi sử dụng các file MP3 thông thường cần có sự
chuyển đổi thích hợp trước khi chép vào thư mục trên để sử dụng.
. sounds/
Tất cả các tập tin âm thanh liên quan đến nhắc thoại của Asterisk được đặt tại thư mục sounds/.Nội dung của các tập tin chứa trong thư mục được liệt kê qua tập tin sounds.txtđặt tại thư mục mã nguồn của Asterisk. Còn nội dung của các
tập tin âm thanh được mở rộng thêm được liệt kê trong tập tin sounds-extra.txt
/var/spool/asterisk/
Thư mục /var/spool/asterisk/ chứa nhiều thư mục con bao gồm outgoing/, qcall/,tmp/, voicemail/ . Astersik luôn kiểm tra thư mục outgoing và qcall vì đây là hai thư mục
chứa các tập tin dạng text, chứa thông tin yêu cầu cuộc gọi . Các tập tin đó cho phép
chúng ta tạo ra một cuộc gọi đơn giản bằng cách sao chép hoặc di chuyển tập tin có