Asterisk cực kỳ linh hoạt, có thể kết nối với mạng điện thoại bên ngoài qua đường tương tự hay số và có thể phân luồng cuộc gọi nội bộ qua cáp điện thoại truyền thống hay mạng IP (mạng máy tính).
Phần mềm Asterisk được thiết kế dạng môđun. Các thành phần chức năng được thiết kế thành từng môđun riêng biệt và tách rời với phần chuyển mạch lõi, điều này tạo khả năng dễ điều chỉnh và mở rộng cao. Một trong những "điểm son" của Asterisk là phần quản lý extension. Từng bước của cuộc gọi được định nghĩa như một ứng dụng. Quay số là một ứng dụng; trả lời, phát lại, thư thoại... là những ví dụ ứng dụng khác. Ta có thể tạo kịch bản thực hiện gọi ứng dụng bất kỳ trên kênh bất kỳ. Ví dụ, có thể thiết lập một số extension được đổ chuông cùng lúc ở 2 kênh (có thể nối đến 2 máy điện
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
50
thoại: 1 analog và 1 digital) trước khi chuyển cuộc gọi đến điện thoại di động, và sau đó chuyển qua hệ thống thư thoại.
Asterisk cung cấp 4 bộ API dùng cho việc giao tiếp với các môđun:
• Channel API: cho phép phần lõi PBX giao tiếp với các nguồn tín hiệu khác nhau, hỗ trợ các giao thức VoIP gồm SIP, H.323 và MGCP.
• Codec Translator API: cung cấp khả năng làm việc với các định dạng âm thanh mã hóa như MP3, GSM, G.7123, ADPCM...
• File Format API: Cho phép đọc và phát âm thanh từ các định dạng file WAV, MP3.... đem đến sự linh hoạt cho các ứng dụng trên nền Asterisk trong việc xử lý âm chuông, DTMF (âm thanh phát ra khi nhấn phím)...
• Application API: Có thể dùng cho ứng dụng thứ ba như thư thoại, hội đàm... cho phép viết các ứng dụng mới có thể tương tác trực tiếp với phần lõi PBX.
Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạp với một số ngôn ngữ như PHP hay Perl. Nói chung, khả năng viết các ứng dụng tùy biến rất lớn.