Chương 1 TỔNG QUAN VỀ ASTERISK 5 1.1 GIỚI THIỆU ASTERISK 5 1.2 KIẾN TRÚC ASTERISK 8 1.3 MỘT SỐ TÍNH NĂNG CƠ BẢN 10 1.3.1 Voicemail (hộp thư thoại) 10 1.3.2 Call Forwarding(chuyển cuộc gọi) 10 1.3.3 Caller ID (hiển thị số gọi) 10 1.3.4 Automated attendant (chức năng IVR) 11 1.3.5 Time and Date 11 1.3.6 Call Parking 11 1.3.7 Remote call pickupe 11 1.3.8 Privacy Manager 12 1.3.9 Backlist 12 1.4 Các ngữ cảnh ứng dụng 12 1.4.1 Tổng đài voip IP PBX 12 1.4.2 Kết nối IP PBX với PBX 14 1.4.3 Kết nối giữa các server Asterisk 15 1.4.4 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị 16 1.4.5 Chức năng Phân phối cuộc gọi tự động ACD 17 Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 2 Chương 2 Các KHÁI NIỆM TRONG HỆ THỐNG ASTERISK 18 2.1 GIỚI THIỆU 18 2.2 PBX - Private Branch Exchange 18 2.3 VOIP - Voice Over Internet Protocol 19 2.4 PSTN – Public Switched Telephone Network 20 2.5 TDM – Time Division Multiplexing 20 2.6 Các hình thức báo hiệu giao tiếp TDM. 21 2.6.1 FXO và FXS 21 2.6.2 Báo hiệu Analog giữa đầu cuối và tổng đài 22 2.6.3 Báo hiệu giữa các tổng đài 23 2.7 Báo Hiệu trên mạng điện thoại VoIP 23 2.7.1 SIP Session Initiation Prorocol 23 2.7.2 Proxy server 23 2.7.3 RTP vá NAT 24 2.7.4 IAX – Inter Asterisk eXchange 25 2.8 Thiết Bị VoIP 26 2.8.1 Voip Phone 26 2.8.2 Softphone 26 Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 3 2.8.3 Card giao tiếp với PSTN 27 2.8.4 ATA Analog Telephone Adaptors 27 2.9 Codecs 28 2.10 QoS – Quality of Service 28 2.10.1 Độ trễ 29 2.10.2 Độ trượt(Jitter) 29 Chương 3 CÀI ĐẶT ASTERISK 31 3.1 Cài đặt Asterisk 31 3.1.1 Download và bung nén 31 3.1.2 Cài đặt gói Zaptel 32 3.1.3 Cài đặt gói libpri 33 3.2 Cài đặt gói Asterisk 33 3.3 Cài đặt TrixBox 34 3.3.1 Giới thiệu 34 3.3.2 DOWNLOAD VÀ LẮP ĐẶT TRIXBOX 35 3.3.3 Cấu hình địa chỉ IP cho card mạng: 35 3.4 Tổ Chức Thư Mục của Asterisk 36 3.4.1 /etc/asterisk/ 36 Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 4 3.4.2 /usr/lib/asterisk/modules/ 36 3.4.3 /var/lib/asterisk 37 3.4.4 /var/spool/asterisk/ 38 3.4.5 /var/run/ 39 3.4.6 /var/log/asterisk/ 39 3.4.7 /var/log/asterisk/cdr-csv 40 3.5 Một số lệnh thao tác trên hệ thống asterisk 40 Chương 4 CẤU HÌNH HỆ THỐNG ASTERISK 42 4.1 GIỚI THIỆU 42 4.2 Tập Tin cấu hình 42 4.3 Các kiểu ảnh hưởng trong tập cấu hình 43 4.3.1 Simple Group 44 4.3.2 Option inheritance 44 4.3.3 Complex Entity 45 4.4 Cấu hình giao tiếp với mạng PSTN 46 4.4.1 Ngữ cảnh kết nối 46 4.4.2 Lắp đặt card TDM01B và cấu hình. 46 4.5 Cấu hình Điện thoại IP SIP phone. 47 Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 5 4.5.1 Phần khai báo Chung 48 4.5.2 Khai báo kênh SIP 49 4.6 Giới Thiệu DialPlan 50 4.6.1 Extentions 51 4.6.2 Priorities – Thứ tự thực hiện 52 4.6.3 Aplications – Các hàm ứng dụng 53 4.6.4 Contexts - Ngữ cảnh 53 4.7 Ngữ cảnh thực hành ứng dụng 55 4.7.1 Bước 1: Cấu hình cho hai sip phone X-lite 8051 và 8052 bằng cách cấu hình trên file sip.conf như sau: 56 4.7.2 Bước 2: Cấu hình softphone x-lite phía client cho máy 8051 57 4.7.3 Bước 3 : Lập lại bước hai để khai báo máy điện thoại softphone 8052 58 4.8 Tạo diaplan. 58 4.8.1 Thực hiện một ví dụ cơ bản. 58 4.8.2 Các ứng dụng dial(), background() và goto(). 59 Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 6 1 TỔNG QUAN VỀ ASTERISK 1 GIỚI THIỆU ASTERISK Hân hạnh chào mừng đến với thế giới diệu kỳ của Astetisk. Asterisk đem đến cho người sử dụng tất cả các tính năng và ứng dụng của hệ thống tổng đài PBX và cung cấp nhiều tính năng mà tổng đài PBX thông thường không có được, đó là sự kết hợp giữa chuyển mạch VOIP và chuyển mạch TDM, đó là khả năng mở rộng đáp ứng nhu cầu cho từng ứng dụng… Asterisk là hệ thống chuyển mạch mềm, là phần mềm nguồn mở được viết bằng ngôn ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của tổng đài PBX và hơn thế nữa. Asterisk ra đời vào năm 1999 bởi một chàng trai sinh Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 7 năm 1977 tên là Mark Spencer, Anh ta viết phần mềm này ban đầu không ngoài mục đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại hỗ trợ cộng đồng người sử dụng và phát triển Linux. Asterisk là một PBX và nhiều hơn thế. Asterisk là một phần mềm mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí mà biến một PC rẻ tiền thông thường chạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh mẽ. Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử lý cuộc gọi đầy đủ chức năng. Asterisk là một nền tảng tích hợp điện thoại vi tính hoá kiến trúc mở. Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới. Công nghệ Asterisk đang phục vụ cho nhiều doanh nghiệp. Hiện nay Asterisk trên đà phát triển nhanh được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình. Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều có mạng máy tính và cần liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh và cần một chi phí thấp thậm chí không phải tốn chi phí khi thực hiện các cuộc gọi trên mạng nội bộ của công ty. Không gói gọn thông tin liên lạc trong công ty mà các ứng dụng giao tiếp với mạng PSTN hoặc mạng VOIP (như voice777) cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN. Ngoài ra việc tích hợp vào các ứng dụng như CRM và hệ thống Outlook làm cho khả năng ứng dụng của Asterisk linh hoạt hơn đáp ứng nhu cầu cần thiết cho người sử dụng điện thoại. Asterisk thoạt đầu được phát triển trên GNU/Linux nền x86 (Intel), nhưng giờ đây nó cũng có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac OS X và Microsoft Windows. Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 8 Sơ đồ Tổng quát Asterisk là hệ thống chuyển mạch tích hợp vừa là công nghệ truyền thống TDM vừa là chguyển mạch voip. Hình trên cũng cho thấy khả năng giao tiếp của hệ thống. Giao tiếp với điện thoại analog thông thường, giao tiếp với thiết bị điện thoại voip, ngoài ra còn có thể giao tiếp với mạng PSTN và các nhà cung cấp voip khác. 2 KIẾN TRÚC ASTERISK Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 9 Về cơ bản kiến trúc của Asterisk là sự kết hộp giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại. công nghệ điện thoại cho VOIP như SIP, H323, IAX, MGCP các công nghệ điện thoại cho hệ thống chuyển mạch mạch TDM như T1, E1, ISDN và các giao tiếp đường truyền thoại Analog. Các ứng dụng thoại như chuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail, chuyển cuộc gọi… Asterisk có một số chức năng chính đóng vai trò quan trọng trong hệ thống chuyển mạch cuộc gọi. Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống. Sách Asterisk – http://my.opera.com/asteriskvn Tác Giả Lê Quốc Toàn 10 Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào kế hoạch quay số (Dialplan) được thực hiện cấu hình trong file extension.conf. Chức năng Application Launchar để rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại… Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao, các chức năng được phát triển bởi cộng đồng phát triển asterisk. Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc được với nhau. Tất cả các cuộc gọi định hướng qua hệ thống Asterisk đều thông qua các giao tiếp như SIP, Zaptel, IAX. Nên hệ thống Asterisk phải đảm trách nhiệm vụ liên kết các giao tiếp khác nhau đó để xử lý cuộc gọi. Hệ thống cũng bao gồm 4 chức năng API chính: Codec translator API: các hàm đảm nhiệm thực thi và giải nén các chuẩn khác nhau như G711, GMS, G729… Asterisk Channel API : Giao tiếp với các kênh liên lạc khác nhau, đây là đầu mối cho việc kết nối các cuộc gọi tương thích với nhiều chuần khác nhau như SIP, IAX, H323. Zaptel… Asterisk file format API : Asterisk tương thích với việc xử lý các loại file có định dạng khác nhau như Mp3, wav, gsm… Asterisk Aplication API : Bao gồm tất cả các ứng dụng được thực thi trong hệ thống Asterisk như voicemail, callerID… . (hiển thị số gọi) 10 1. 3.4 Automated attendant (chức năng IVR) 11 1. 3.5 Time and Date 11 1. 3.6 Call Parking 11 1. 3.7 Remote call pickupe 11 1. 3.8 Privacy Manager 12 1. 3.9 Backlist 12 1. 4 Các ngữ cảnh. Chương 1 TỔNG QUAN VỀ ASTERISK 5 1. 1 GIỚI THIỆU ASTERISK 5 1. 2 KIẾN TRÚC ASTERISK 8 1. 3 MỘT SỐ TÍNH NĂNG CƠ BẢN 10 1. 3 .1 Voicemail (hộp thư thoại) 10 1. 3.2 Call Forwarding(chuyển cuộc gọi) 10 1. 3.3. 28 2 .10 QoS – Quality of Service 28 2 .10 .1 Độ trễ 29 2 .10 .2 Độ trượt(Jitter) 29 Chương 3 CÀI ĐẶT ASTERISK 31 3 .1 Cài đặt Asterisk 31 3 .1. 1 Download và bung nén 31 3 .1. 2 Cài đặt gói Zaptel 32 3 .1. 3