You are on page 1of 79

http://my.opera.com/asteriskvn MỤC LỤC MỤC LỤC CÁC HÌNH……………………………………………………………………….. iii CÁC TỪ VIẾT TẮT…………………………………………………………………………...

iv

CHƯƠNG I: TỔNG QUAN VỀ ASTERISK …………………………………………… 1 1.1 Giới thiệu về mã nguồn mở Asterisk……………………………………………….... 1 1.2 Kiến trúc Asterisk……………………………………………………………………. 4 1.3 Một số tính năng cơ bản……………………………………………………………... 6 1.3.1 Asterisk là một PBX……………………………………………………………. 6 1.3.2 Asterisk là một hệ thống IVR…………………………………………………... 8 1.3.3 Asterisk là một hệ thống Voicemail……………………………………………. 8 1.3.4 Asterisk là một hệ thống VoIP (Voice over IP)………………………………... 9 1.3.5 Asterisk không là một Sip Proxy………………………………………………. 11 CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK ………………….. 12 2.1 Giới thiệu…………………………………………………………………………….. 12 2.2 VoIP-Voice over Internet Protocal…………………………………………………… 12 2.3 Các phương thức báo hiệu giao tiếp TDM…………………………………………… 12 2.3.1 FXO và FXS……………………………………………………………………. 12 2.3.2 Báo hiệu Analog giữa đầu cuối và tổng đài…………………………………….. 13 2.3.3 Báo hiệu giữa các tổng đài……………………………………………………... 14 2.4 Báo hiệu trên mạng VoIP…………………………………………………………….. 14 2.4.1 H.323…………………………………………………………………………… 14 2.4.2 SIP-Session Initiation Protocal…………………………………………………. 14 2.4.3 Proxy Server……………………………………………………………………. 15 2.4.4 RTP và NAT……………………………………………………………………. 15 2.4.5 IAX-Inter Asterisk eXchange…………………………………………………... 16 2.5 Asterisk server………………………………………………………………………... 17 2.6 Thiết bị VoIP…………………………………………………………………………. 17 2.6.1 VoIP phone……………………………………………………………………... 17 2.6.2 Softphone……………………………………………………………………….. 18 2.7 Card giao tiếp với PSTN……………………………………………………………... 19 2.8 ATA………………………………………………………………………………….. 20 2.9 Codecs………………………………………………………………………………... 20 2.10 QoS-Quality of Service……………………………………………………………... 20 2.10.1 Độ trễ………………………………………………………………………….. 21 2.10.2 Độ trượt……………………………………………………………………….. 21 CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ……………………… 23 3.1 Tổng đài VoIP –PBX………………………………………………………………… 23 3.2 Kết nối IP-PBX với PBX…………………………………………………………….. 24
i

http://my.opera.com/asteriskvn

3.3 Kết nối giữa các server Asterisk……………………………………………………... 25 3.4 Các ứng dụng IVR, Voice Mail, Điện thoại hội nghị………………………………... 26 3.5 Chức năng phân phối cuộc gọi tự động……………………………………………… 27 CHƯƠNG IV: CÁC DỊCH VỤ CƠ BẢN CỦA ASTERSIK…………………………… 28 4.1 Conference…………………………………………………………………………… 28 4.2 Voicemail…………………………………………………………………………….. 28 4.3 Call Forwarding……………………………………………………………………… 28 4.4 Call ID……………………………………………………………………………….. 29 4.5 Automated Attendant………………………………………………………………… 29 4.6 Time and Day………………………………………………………………………… 29 4.7 Call Pickup…………………………………………………………………………… 29 4.8 Call Parking………………………………………………………………………….. 29 4.9 Privacy Manager……………………………………………………………………... 30 4.10 Call Detail Records…………………………………………………………………. 30 4.11 Call Recoding………………………………………………………………………. 30 4.12 Blacklist…………………………………………………………………………….. 30 4.13 User permission to/international call……………………………………………….. 30 CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX…………………………………………. 31 5.1 Cài đặt Asterisk………………………………………………………………………. 31 5.1.1 Cài đặt Zaptel…………………………………………………………………... 32 5.1.2 Cài đặt libpri……………………………………………………………………. 33 5.1.3 Cài đặt Asterisk………………………………………………………………… 33 5.1.4 Cài đặt Asterisk-Addons……………………………………………………….. 36 5.2 Cấu hình hệ thống…………………………………………………………………… 38 5.2.1 Cấu hình giao tiếp với PSTN…………………………………………………… 38 5.2.1.a. zaptel.conf………………………………………………………………... 39 5.2.1.b. zapata.conf……………………………………………………………….. 41 5.2.2 Giao diện SIP…………………………………………………………………... 44 5.2.3 Giao tiếp IAX…………………………………………………………………... 47 5.2.4 Hộp thư thoại Voicemail……………………………………………………….. 48 5.2.4.a. Giới thiệu………………………………………………………………… 48 5.2.4.b. Cấu hình chức năng Voicemail………………………………………….. 49 5.2.5 Nhạc chờ (Music On Hold)…………………………………………………….. 50 5.2.5.a. Giới thiệu………………………………………………………………… 50 5.2.5.b. Cấu hình tính năng MOH………………………………………………… 50 5.2.6 Hàng đợi………………………………………………………………………... 51 5.2.6.a. Giới thiệu………………………………………………………………… 51 5.2.6.b. Cấu hình………………………………………………………………….. 51 5.2.7 Xây dựng hệ thống hội thoại…………………………………………………… 52 5.2.7.a. Giới thiệu………………………………………………………………… 52 5.2.7.b. Cấu hình…………………………………………………………………. 53
ii

http://my.opera.com/asteriskvn

5.3 Tạo kế hoạch quay số cho hệ thống………………………………………………….. 55 5.3.1 Giới thiệu………………………………………………………………………. 55 5.3.2 Tạo một ngữ cảnh……………………………………………………………… 55 5.3.3 Tạo một extension……………………………………………………………… 56 5.3.4 Tạo các Extension gọi ra……………………………………………………….. 58 5.3.5 Hệ thống trả lời tương tác thoại (Automated Attendant)………………………. 59 CHƯƠNG VI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN……………………………. 61 6.1 Các thiết bị và phần mềm sử dụng trong mô hình…………………………………… 61 6.2Kế hoạch quay số……………………………………………………………………. 64 6.3 Một số chức năng cơ bản……………………………………………………………. 65 6.4 Cấu hình ……………………………………………………………………………... 65 6.5 Một số kết quả thực hiện…………………………………………………………….. 71 KẾT LUẬN……………………………………………………………………………… 72 PHỤ LỤC………………………………………………………………………………... 74 Thư viện cú pháp lệnh và biến trong asterisk 1.Các lệnh tổng quát……………………………………………………………… 74 2.Cú pháp lệnh tương tác với Database…………………………………………... 74 3.Cú pháp dòng lệnh liên quan đến kênh IAX…………………………………… 75 4.Cú pháp dòng lệnh liên quan đến kênh SIP……………………………………. 75 5.Cú pháp dòng lệnh liên quan đến quản trị hệ thống……………………………. 75 6.Các biến định nghĩa trong Astersik…………………………………………….. 76 TÀI LIỆU THAM KHẢO……………………………………………………………….. 77 MỤC LỤC CÁC HÌNH Hình 1-1: Sơ đồ tổng quát……………………………………………………………….. 3 Hình 1-2: Kiến trúc Asterisk ……………………………………………………………. 4 Hình 1-3: Liên lạc giữa các Extension ………………………………………………….. 7 Hình 1-4: Liên lạc giữa các văn phòng qua Internet ……………………………………. 10 Hình 2-1: FXO và FXS………………………………………………………………….. 13 Hình 2-2: Đăng ký từ Client đến SIP proxy……………………………………………... 15 Hình 2-3: Minh họa hoạt động của NAT………………………………………………… 16 Hình 2-4: Điện thoại VoIP……………………………………………………………….. 18 Hình 2-5: Điện thoại Softphne …………………………………………………………... 19 Hình 2-6: Card TDM22B………………………………………………………………… 19 Hình 2-7: Thiết bị ATA………………………………………………………………….. 20 Hình 2-8: Nguyên nhân xảy ra trượt…………………………………………………….. 22 Hình 3-1: IP-PBX………………………………………………………………………... 23 Hình 3-2: Kết nối IP-PBX với PBX……………………………………………………… 24 Hình 3-3: Kết nối giữa các server Asterisk………………………………………………. 25 Hình 3-4:Triển khai server IVR, VoiceMail, Hội Thoại………………………………… 26 Hình 3-5: Phân phối cuộc gọi với hàng đợi…………………………………………….... 27 Hình 6-1: Mô hình IP-PBX cơ bản……………………………………………………… 61
iii

http://my.opera.com/asteriskvn

CÁC TỪ VIẾT TẮT ACD ADPCM AGI AMP API ATA CDR CGI CODEC CRM FTP FXO FXS HTTP IAX IETF ITU IVR MAN MGCP NAT POTS PRI QoS RADIUS RTP SCCP SER SIP SMTP WAV Automatic Call Distribution Adaptive Differential Pulse code Modulation Asterisk Gateway Interface Asterisk Management Platform Application Programming Interface Analog Terminal Adaptor Call Detail Record Control Gate Interface COder/DECoder Customer Relationship Management File Transfer Protocol Foreign Exchange Office Foreign Exchange Station Hypertext Transfer Protocol Inter Asterisk eXchange Internet Engineering Task Force International Telecommunication Union Interactive Voice Response Metropolitan Area Network Media Gateway Control Protocol Network Address Translator Plain Old Telephone Service Primary Rate ISDN Quality of Service Remote Authentication Dial In User Service Real Time Transport Protocol Cisco® Sking® SIP Express Route Session Initiation Protocol Simple Mail Transfer Protocol Waveform Audio
iv

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

CHƯƠNG I: TỔNG QUAN V Ề ASTERISK
1.1 Giới thiệu về mã nguồn mở Asterisk Asterisk là phần mềm thực hiện chức năng tổng đài điện thoại nội bộ (PBX), cho phép các máy điện thoại nhánh (extension) thực hiện cuộc gọi với nhau và kết nối với các hệ thống điện thoại khác bao gồm cả mạng điện thoại analog thông thường (PSTN) và VoIP. Asterisk có đầy đủ tính năng của tổng đài PBX thương mại: hộp thư thoại, hội đàm, tương tác thoại (menu thoại)…Đặc biệt, Asterisk còn hỗ trợ nhiều giao thức VoIP như SIP và H.323, hoạt động như trạm kết nối giữa các điện thoại IP và mạng PSTN. Tên Asterisk có nguồn gốc từ ký tự * được dùng trong Unix và Linux, thể hiện cho tùy chọn bất kỳ. 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. Cũng như nhiều dự án nguồn mở, Asterisk thoạt đầu được xây dựng nhằm đáp ứng nhu cầu cá nhân .Khi còn là sinh viên khoa kỹ thuật máy tính tại đại học Auburn ở Alabama(Mỹ), Mark Spencer đã thành lập công ty cung cấp dịch vụ hỗ trợ người dùng Linux qua điện thoại .Để tiết kiệm chi phí, thay vì mua tổng đài PBX có sẵn, Mark đã quyết định tự xây dựng phần mềm thực hiện chức năng tổng đài chạy trên PC dùng hệ điều hành Linux và kết quả là Asterisk ra đời . Asterisk là một PBX và hơn thế nữa .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í , 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ẽ .Astreisk 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 hóa 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 . Asterisk là mã nguồn mở, nó thực hiện truyền thông trong phần mềm thay vì phần cứng. Điều này cho phép các tính năng mới được thêm vào một cách nhanh chóng với nỗ lực tối thiểu.Chúng ta có thể thực hiện các thay đổi hay thêm vào của riêng mình một cách dễ dàng.Với sự hỗ trợ bao gồm trong nó được quốc tế hóa, một tập hợp dồi dào các file cấu hình, và mã nguồn mở, mọi khía cạnh của Asterisk có thể được tùy biến để đáp ứng nhu cầu của chúng ta. Phần mềm Asterisk được thiết kế dạng module .Các thành phần chức năng được thiết kế thành từng module riêng biệt và tách rời với phần chuyển mạch lõi .Một trong những “điểm son”của Asterisk là quản lí extension .Từng bước của cuộc gọi được định nghĩa như là một ứn g dụng .Quay số là một ứng dụng, trả lời, phát lại, hộp 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ỳ
-1-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

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 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. 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 công việc 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ư voice 777) 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(Customer Relationship Management) 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 OSX và Microsoft Windows.

-2-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

Hình 1-1: 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à chuyể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. Asterisk cho phép ngay cả công ty hay tổ chức nhỏ cũng có thể thiết lập hệ thống điện thoại đa năng, hỗ trợ đồng thời điện thoại thông thường (analog) và điện thoại IP (VoIP).Theo M.Spencer, Asterisk là giải pháp “viễn thông cho đại chúng “- ngoài chi phí rẻ và d ễ dàng thiết lập, khả năng VoIP của Asterisk cho phép kết nối nhũng vùng xa xôi, những nơi chưa có mạng cáp điện thoại truyền thống .

-3-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

1.2 Kiến trúc Asterisk

Hình 1-2: Kiến trúc Asterisk

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 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 .

-4-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

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 tùy vào kế hoạch quay số (Dialplan) được thực hiện cấu hình trong tập tin cấu hình extensions.conf . Chức năng Application Launcher để 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 . Mọi cuộc gọi được xuất phát hoặc được nhận qua một giao tiếp trên kênh riêng biệt của chính nó .Một kênh có thể được kết nối đến một kênh vật lí -ví dụ như một đường dây POTS, hoặc đến một kênh logic-ví dụ như một kênh IAX hoặc SIP. Phân biệt sự xuất hiện của một cuộc gọi trên một kênh với cái gì sẽ xảy ra với cuộc gọi vào đó, là rất quan trọng .Khi một cuộc gọi đến Asterisk qua một kênh, một kế hoạch đánh số (Dial plan) quyết định cái gì sẽ thực hiện với cuộc gọi . Ví dụ một cuộc gọi có thể đến qua một kênh SIP: cuộc gọi có thể được đến từ một SIP-Telephone hoặc từ một SIP- Softphone hoạt động trên một máy tính. Kế hoạch đánh số quyết định cuộc gọi nên được trả lời, được kết nối với điện thoại khác, được chuyển cuộc gọi hay được định hướng tới Voicemail . Asterisk cung cấp nhiều ứng dụng khác nhau .Các ứng dụng này sẵn sàng cho kế hoạch đánh số khi xử lý cuộc gọi vào.Kế hoạch đánh số và các ứng dụng được lựa chọn để sử dụng trong kế hoạch đánh số quyết định Asterisk thi hành những hành động nào. 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ư G723, GSM, MP3, ADPCM…

-5-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

Asterisk Chanel 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 foramt 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…, đ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… 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, conference, callerID…, 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. 1.3 Một số tính năng cơ bản 1.3.1 Asterisk là một PBX Asterisk là một PBX (Private Branch Exchange).Một PBX có thể được xem như là một tổng đài điện thoại riêng, kết nối một hay nhiều điện thoại nội bộ bên trong, và thường kết nối ra bên ngoài bằng một hay nhiều đường dây điện thoại .Điều này thường có hiệu quả về mặt chi phí hơn so với việc thuê một đường dây điện thoại cho mỗi điện thoại có nhu cầu trong một doanh nghiệp. -Station-To-Station Calls: Thứ nhất, như một PBX, Asterisk cung cấp các cuộc gọi Station-To-Station .Điều này có nghĩa người sử dụng có thể quay số từ điện thoại này đến điện thoại khác .

-6-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

Hình 1-3: Liên lạc giữa các Extension Trong hình vẽ, mỗi extension có thể kết nối đến bất kỳ extension khác bằng cách quay số một cách trực tiếp . Điều này có nghĩa rằng nếu một modem gởi một bản fax đến một máy fax nội bộ, nó thực thi bằng cách tạo một kết nối trực tiếp giữa hai thiết bị xuyên qua PBX. -Line Trunking: Thứ hai, Asterisk cung cấp đường trung kế.Trong hình thức đơn giản nhất, đường trung kế chia sẻ truy cập của nhiều đường dây điện thoại . Các đường dây điện thoại này thường được sử dụng để kết nối đến mạng điện thoại toàn cầu, như PSTN, nhưng cũng có thể là các đường dây riêng đến các hệ thống điện thoại khác . Các kết nối này có thể là một trung kế Analog đơn, nhiều trung kế Analog, hay các kết nối số dung lượng cao cho phép nhiều cuộc gọi đồng thời được mang trên một kết nối đơn. -Telco Features Asterisk hỗ trợ tất cả các tính năng “tiêu chuẩn” mà chúng ta mong đợi từ bất kỳ công ty điện thoại (telco) nào, Asterisk hỗ trợ gởi và nhận Caller ID, và ngay cả cho phép chúng ta định tuyến các cuộc gọi dựa trên cơ sở Caller ID.Sử dụng Caller ID với PSTN chúng ta yêu cầu các kết nối PSTN của chúng ta phải cung cấp tính năng này. Asterisk cũng hỗ trợ các tính năng khác như là: call waiting, call return (*69), distinctive ring, transfering calls, call forwarding … Các tính năng cơ bản này và nhiều hơn nữa được cung cấp bởi Asterisk. -Phân phối cuộc gọi tiên tiến:
-7-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

Asterisk có thể nhận một cuộc thoại, xem xét đặc tính của cuộc gọi, và thực hiện định tuyến dựa trên cơ sở đó. Nếu thông tin đầy đủ không được cung cấp bởi nhà cung cấp kết nối PSTN, thì chúng ta yêu cầu người gọi đưa vào thông tin bằng cách dùng điện thoại ấn phím ở chế độ tone. Mỗi khi chúng ta thực thi một quyết định cách để định tuyến cuộc gọi, chúng ta có thể gửi nó đến một extension đơn, một nhóm extension, một recording, một voicemail box, hoặc ngay cả một nhóm agent telephone mà có thể chuyển từ điện thoại đến điện thoại. Chún g ta có thể sử dụng các hàng đợi cuộc gọi để phục vụ khách hàng một cách hiệu quả hơn nữa . Sự linh hoạt này đưa đến cho chúng ta khả năng từ chỉ có một hệ thống điện thoại để tạo ra một giải pháp mạnh mẽ cho các doanh nghiệp để tiết kiệm chi phí điện thoại . Phân phối cuộc gọi tiên tiến trao quyền cho chúng ta phục vụ khách hàng theo cách tốt nhất có thể. Một nhân tố làm nên sự khác biệt chính giữa Asterisk và các hệ thống PBX khác đó là Asterisk không yêu cầu mua bản quyền cho bất cứ tính năng gì . Ví dụ sự giới hạn có bao nhiêu cuộc gọi trong hàng đợi cuộc gọi (call queue) được quyết định chỉ bởi phần cứng chúng ta sử dụng . 1.3.2 Asterisk là một hệ thống IVR IVR (Interactive Voice Response) là tính năng đáp ứng thoại tương tác. Khả năng và sự linh hoạt của một hệ thống điện thoại dựa vào chương trình đưa đến cho chúng ta khả năng để đáp ứng khách hàng theo các cách đầy ý nghĩa . Chúng ta có thể dù ng Asterisk để cung cấp dịch vụ trong suốt 24 giờ. Asterisk cho phép chúng ta phát lại các file, đọc văn bản, và ngay cả truy lục thông tin từ cơ sở dữ liệu. Đây là kỹ thuật mà chúng ta tiếp cận trong việc trả tiền cước điện thoại qua hệ thống ngân hàng . Khi chúng ta gọi đến ngân hàng, chúng ta sẽ nghe một số loại bản tin đã được thu và đưa ra lệnh, thường là sử dụng điện thoại ấn phím ở chế độ tone.Ví dụ chúng ta có thể nghe một lời chào và bản tin trạng thái, chúng ta gõ vào số tài khoản và thông tin cá nhân hoặc giấy ủy quyền đã chứng thực. Chúng ta cũng thường nghe thông tin riêng, thông tin riêng này được truy lục từ cơ sở dữ liệu ,như là một vài phiên giao dịch mới nhất hoặc số dư tài khoản .Các hệ thống với tính năng như vậy được thực thi bằng cách sử dụng Astrisk. 1.3.3 Asterisk là một hệ thống Voicemail Aterisk là một hệ thống Voicemail bao gồm các chức năng đầy đủ.Hệ thống Voicemail có sức mạnh đầy kinh ngạc .Nó hỗ trợ nhiều ngữ cảnh Voicemail để nhiều tổ chức có thể được truy cập vào từ cùng server .Nó hỗ trợ các vùng thời gian khác nhau vì vậy các user có thể kiểm tra khi điện thoại của họ có cuộc gọi vào. Nó cung cấp sự lựa chọn để thông báo nhận các bản tin mới qua mail: thực tế chúng ta có thể đính kèm bản tin audio.

-8-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

1.3.4 Asterisk là một hệ thống VoIP (Voice over IP) Asterisk đưa đến cho chúng ta khả năng sử dụng IP (Internet Protocal) cho các cu ộc gọi điện thoại, đặc biệt các cuộc gọi đường dài dùng IP thì chi phí th ấp hơn so với các công nghệ điện thoại truyền thống . Sự chọn lựa để sử dụng Asterisk không có nghĩa là chúng ta ch ỉ có thể sử dụng VoIP cho các cuộc gọi .Trong thực tế nhiều thiết lập cho Asterisk không phải sử dụng hết tất cả, nhưng với mỗi thiết lập hệ thống có khả năng thêm vào VoIP một cách dễ dàng và bất cứ lúc nào mà không cần chi phí cộng thêm. Hầu hết các công ty có hai mạng: một cho điện thoại và một cho máy tính .Vấn đề gì sẽ xảy ra nếu chúng ta hợp nhất hai mạng này?Tiết kiệm được những gì? Tiết kiệm lớn nhất thu được là giảm gánh nặng quản lí cho các nhân viên IT (Information Technology) .Bây giờ chúng ta có một vài chuyên gia về máy tính và mạng, và từ khi điện thoại sẽ hoạt động ở trong tầm điều khiển của máy tính và qua mạng IP của chúng ta, kiến thức nền tảng tương tự sẽ cho phép các nhân viên của chúng ta được quyền quản lí hệ thống điện thoại. Chúng ta cũng sẽ thu được lợi ích từ việc mua thiết bị được giảm xuống trong thời gian dài. Thiết bị máy tính ngày càng rẽ hơn trong khi các hệ thống điện thoại độc quyền dường như giữ nguyên giá cả.Vì vậy chúng ta có lẽ mong đợi giá của Switch, Router và các thiết bị mạng dữ liệu khác tiếp tục giảm giá. Hầu hết các hệ thống điện thoại hiện tại, các đường dây điện thoại kéo xa tối đa theo chiều dài cáp được cho phép bởi nhà sản xuất hệ thống điện thoại. Khi dùng VoIP chúng ta có thể có nhiều user sử dụng cùng dịch vụ của Asterisk từ nhiều vị trí khác nhau. Chúng ta có thể có các user ở tại văn phòng dùng điện thoại PSTN hoặc điện thoại IP, chúng ta có thể có các user VoIP ở xa, ngay cả khi chúng ta có toàn bộ hệ thống Asterisk được vận hành và hoạt động hoàn toàn tách biệt nhưng với định tuyến được tích hợp . Một phương pháp để giảm bớt tổng phí là giảm số lượng không gian văn phòng được yêu cầu .Nhiều doanh nghiệp sử dụng liên lạc từ xa cho mục đích này .Điều này thường tạo ra một vấn đề: chúng ta dùng số nào để liên lạc một người đi lại ở xa. Tưởng tượng rằng người lao động liên lạc từ xa có thể đơn giản chỉ sử dụng cùng máy điện thoại khi ở nhà cũng như khi ở văn phòng hoặc ngay cả khi dùng mobile của họ. VoIP cho phép chúng ta có một sự mở rộng đến bất cứ nơi đâu khi chúng ta có một kết nối Internet nhanh hợp lý .Điều này có nghĩa người làm việc có thể có một điện thoại ở nhà nếu họ có một kết nối băng rộng .Vì vậy, họ sẽ truy nhập đến tất cả các dịch vụ được cung cấp ở văn phòng làm việc , ví dụ như voicemail, gọi đường dài và quay số đến người khác. Chúng ta chuyển các người làm việc vào trong PBX từ nhà của họ, chúng ta có thể làm điều tương tự đối với các văn phòng ở xa .Bằng cách này, người làm việc ở nhiều vị trí có thể có các tính năng phù hợp, đươc truy cập cùng phương pháp một cách chính xác, giúp đỡ giảm bớt gánh nặng huấn luyện người lao động .
-9-

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

Nhưng điều này không phải là tất cả mà VoIP có thể đem đến cho chúng ta.Chúng ta có thể sử dụng một Asterisk server ở mỗi văn phòng và nối kết lại .Điều này có nghĩa là mỗi văn phòng có thể có các đường dây nội hạt của chính họ, nhưng liên lạc văn phòng đến văn phòng thì được gởi (tunnel) qua Internet.Sự tiết kiệm có được bởi tránh các cuộc gọi đường dài có thể đáng kể.

Hình 1-4: Liên lạc giữa các văn phòng qua Internet

Một khi chúng ta có các Office được nối kết theo phương pháp như thế, chúng ta có thể quản lí các cuộc gọi không cần đường nối, bất kể nhân viên ở Office nào. .Ví dụ, nếu một khách hàng gọi đến Office A yêu cầu về tài khoản của họ và phòng thanh toán tài khoản thì ở Office B, chúng ta chuyển cuộc gọi một cách dễ dàng đến người thích hợp ở văn phòng khác. Chúng ta không phải quan tâm văn phòng khác thì ở đâu .Chỉ cần họ có một kết nối Internet tin cậy, ngay cả khi họ không phải ở trong cùng quốc gia. Tiện lợi khác khi kết nối các hệ thống điện thoại với nhau là chúng ta có thể định tuyến các cuộc gọi d ựa trên cơ sở thời gian .Tưởng tượng rằng chúng ta có hai văn phòng, mỗi văn phòng ở trong mỗi vùng thời gian khác nhau .Mỗi văn phòng chắc chắn sẽ mở cửa hoạt động ở những thời điểm khác nhau .Để quản lý khách hàng của chúng ta một cách hiệu quả, chúng ta có thể chuyển các cuộc gọi từ văn phòng chưa mở cửa sang văn phòng đã mở .Hơn nữa ,vì chúng ta đang dùng kết nối Internet để liên kết các văn phòng , nên không có phí tổn cộng thêm khi thực hiện. Bằng cách liên kết các văn phòng của chúng ta lại với nhau sử dụng VoIP, chúng ta có thể gia tăng dịch vụ cho khách hàng trong khi vẫn giảm được chi phí .
- 10 -

http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK

1.3.5 Asterisk không là một SIP Proxy Asterisk hỗ trợ SIP (Session Initiation Protocal) đối với VoIP .Các cuộc gọi có thể được thực hiện và được nhận với SIP sử dụng Asterisk. Trong SIP, các thiết bị đăng kí với một SIP server. Server này cho phép các thiết bị xác định vị trí với nhau để thiết lập liên lạc.Khi một số lượng lớn của các thiết bị SIP được sử dụng ,một SIP Proxy thì thường được tận dụng để quản lí sự đăng ký và kết nối theo cách có hiệu quả . Tuy nhiên, Asterisk không thể hoạt động như một SIP Proxy .Các thiết bị SIP có thể đăng ký với Asterisk nhưng khi số thiết bị SIP gia tăng, Asterisk không thể đáp ứng tốt. Vì vậy, nếu chúng ta dự định dùng khoảng trên 100 thiết bị SIP, Asterisk có lẽ không thích hợp. Trong khi Asterisk không là một SIP proxy, Asterisk có thể được cấu hình để sử dụng cho các sự đăng ký.Một proxy được sử dụng phổ biến là SER (SIP Express Router).SER là một SIP proxy nguồn mở , nó giúp Asterisk đáp ứng nhu cầu cho sự thiết lập rất lớn.

- 11 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK
2.1 Giới thiệu Trong chương này sẽ giải thích rõ các khái niệm cơ bản liên quan đến hệ thống Asterisk, cung cấp những kiến thức nền tảng, những khái niệm cần thiết để thiết kế triển khai xây dựng hệ thống điện thoại với Asterisk . 2.2 VoIP –Voice Over Internet Protocol VoIP là một công nghệ cho phép truyền thoại sử dụng giao thức mạng IP, trên cơ sở hạ tầng của mạng Internet .VoIP là một trong những công nghệ viễn thông đang được quan tâm nhất hiện nay không chỉ đối với nh à khai thác, các nhà sản xuất mà còn c ả với người sử dụng dịch vụ . VoIP có thể vừa thực hiện mọi loại cuộc gọi như trên mạng điện thoại kênh truyền thống (PSTN) đồng thời truyền dữ liệu trên cơ sở mạng truyền dữ liệu .Do các ưu điểm về giá thành dịch vụ và sự tích hợp nhiều loại hình dịch vụ nên VoIP hiện nay được triển khai một cách rộng rãi. Dịch vụ điện thoại VoIP là dịch vụ ứng dụng giao thức IP, nguyên tắc của VoIP bao gồm việc số hóa tín hiệu tiếng nói, thực hiện việc nén tín hiệu số, chia nhỏ các gói nếu cần và truyền gói tin này qua mạng, tới nơi nhận các gói tin này được ráp lại theo đúng thứ tự của bản tin, giải mã tín hiệu tương tự phục hồi lại tiếng nói ban đầu . Các cuộc gọi trong VoIP dựa trên cơ sở sử dụng kết hợp cả chuyển mạch kênh và chuyển mạch gói.Trong mỗi loại chuyển mạch đều có ưu và nhược điểm riêng của nó. Trong kỹ thuật chuyển mạch kênh dành riêng cho một kênh truyền giữa hai thiết bị đầu cuối thông qua các node chuyển mạch trung gian .Trong chuyển mạch kênh tốc độ truyền dẫn luôn luôn cố định (nghĩa là băng thông không đổi), với mạng điện thoại PSTN tốc độ này là 64 kbps, truyền dẫn trong chuyển mạch kênh có độ trễ nhỏ . Trong chuyển mạch gói các bản tin được chia thành các gói nhỏ gọi là các packet, nguyên tắc hoạt động của nó là sử dụng hệ thống lưu trữ và chuyển tiếp các gói tin trong node mạng .Đối với chuyển mạch gói không tồn tại khái niệm kênh riêng, băng thông không cố định có nghĩa là có thể thay đổi tốc độ truyền, kỹ thuật chuyển mạch gói phải chịu độ trễ lớn vì trong chuyển mạch gói không qui định thời gian cho mỗi gói dữ liệu tới đích, mỗi gói có thể đi bằng nhiều con đường khác nhau để tới đích, chuyển mạch gói thích hợp cho việc truyền dữ liệu vì trong mạng truyền dữ liệu không đòi hỏi về thời gian thực như thoại, để sử dụng ưu điểm của mỗi loại chuyển mạch trên thì trong VoIP kết hợp sử dụng cả hai loại chuyển mạch kênh và chuyển mạch gói . 2.3 Các phương thức báo hiệu giao tiếp TDM 2.3.1 FXO và FXS FXO (Foreign Exchange Office) là thiết bị nhận tín hiệu từ tổng đài gửi đến như dòng chuông ,tín hiệu nhấc gác máy, tín hiệu mời quay số, gửi và nhận tín hiệu thoại …,

- 12 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

FXO giống như máy Fax hay modem dial- up 56 k , dùng để kết nối với đường dây điện thoại . FXS(Foreign Exchange Station) là thiết bị tại nơi cung cấp đường dây điện thoại ,thiết bị FXS sẽ cung cấp tín hiệu mời quay số (dialtone), dòng chuông, hồi âm chuông (ring tone).Trong đường dây Analog, FXS cung cấp dòng chuông và điện áp cho điện thoại hoạt động. Ví dụ FXS cung cấp điện áp -48V DC đến máy điện thoại Analog trong suốt thời gian đàm thoại và cung cấp 90V DC (20Hz) để phát điện áp rung chuông .Thiết bị FXS phát còn thiết bị FXO nhận. Card TDM sử dụng trong hệ thống Asterisk thường tích hợp vừa là thiết bị FXO, vừa là thiết bị FXS (giống bộ ATA), FXO để kết nối với đường dây điện thoại, còn FXS dùng để kết nối với máy điện thoại Analog thông thường dùng để chuyển mạch cuộc gọi TDM qua hệ thống Astesisk (sẽ được phân tích thêm trong phần cấu hình cho kênh TDM) Với card giao tiếp Digium FXS, một Asterisk server có thể điều khiển các máy điện thoại Analog nội bộ . FXO và các board mạch giao tiếp T-carrier từ Digium có thể kết nối một Asterisk server đến mạng PSTN . Tóm lại cần nắm: FXS được kết nối với FXO giống với đường dây điện thoại nối với máy điện thoại FXS cung cấp nguồn cho điện thoại FXO (điện thoại Analog)

Hình 2-1: a) Máy điện thoại vai trò FXO kết nối với FXS (PSTN), hình b) PBX kết nối với FXO và FXS, hình c) ATA đóng vai trò như FXS để kết nối với các máy điện thoại vai trò FXO . 2.3.2 Báo hiệu Analog giữa đầu cuối và tổng đài Khi chúng ta nhấc máy điện thoại để gọi thì nghe tín hiệu mời quay số, đầu bên kia bị bận thì chúng ta nghe tín hiệu bận (busy tone), các loại tín hiệu như vậy gọi là các tín

- 13 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

hiệu báo hiệu analog .Các tín hiệu như : mời quay số, tín hiệu bận, rung chuông, trạng thái nhấc gác máy là các tín hiệu được trao đổi giữa thiết bị FXO và FXS. Có nhiều phương thức báo hiệu khác nhau ứng với từng nơi sử dụng, vì thế tại nơi kết nối với đường dây điện thoại cần xem xét họ đang sử dụng phương thức báo hiệu gì, từ đó chúng ta khai thác loại tín hiệu báo hiệu cho thích hợp, các phương thức báo hiệu như Koolstart, Loop Start, Ground Start. Một minh họa cho việc sử dụng sai phương thức báo hiệu là khi chúng ta khai báo phương thức báo hiệu giữa hệ thống Asterisk và đường dây điện thoại khác nhau thì dẫn đến Asterisk sẽ không nhận biết được tín hiệu gác máy, điều này sẽ làm cho Asterisk không bao giờ giải tỏa được cuộc gọi để thực hiện cuộc gọi mới . 2.3.3 Báo hiệu giữa các tổng đài SS7 –hệ thống báo hiệu số 7 được phát triển bởi AT&T và ITU là hệ thống báo hiệu sử dụng cho các cuộc gọi giữa các tổng đài trong mạng PSTN .Trong hệ thống báo hiệu số 7 tín hiệu chuyển tải trên đường trung kế kết nối giữa hai tổng đài gồm có hai mạch riêng, một cho thoại và một cho báo hiệu, như vậy thoại và báo hiệu có thể chuyển trên hai kênh vật lý khác nhau. 2.4 Báo hiệu trên mạng điện thoại VoIP 2.4.1 H.323 H.323 là công nghệ nền tảng trong truyền dẫn âm thanh thời gian thực, hình ảnh và trao đổi dữ liệu trên mạng cơ sở-mạng gói .Trong đó, chỉ ra các bộ phận, giao th ức và các thủ tục để cung cấp các dịch vụ giao tiếp đa phương tiện trên mạng cơ sở-mạng gói. Mạng cơ sở-mạng gói bao gồm các mạng IP (như mạng Internet) , các tổng đài chuyển mạch gói (IPX-Internet Packet Exchange), các mạng LAN, các mạng MAN và các mạng WAN. H.323 có thể được ứng dụng một cách đa dạng - chỉ gồm thoại(IP Telephony), hay thoại và hình ảnh (Video Telephony), hay thoại và d ữ liệu, hay bao gồm cả thoại, dữ liệu và hình ảnh. H.323 cũng có thể ứng dụng trong truyền thông đa phương tiện-đa điểm (Multipoint - Multimedia) . H.323 cung cấp các dịch vụ gia tăng và do đó có thể ứng dụng trong các vùng có sự biến động lớn về kích cỡ mạng và dịch vụ cung cấp. 2.4.2 SIP- Session Initiation Protocol SIP là giao thức Internet dành cho báo hiệu VoIP được phát triển bởi IETF, cung cấp vài chức năng giống hệ thống báo hiệu số 7 nhưng dựa trên nền IP.Một chức năng giống báo hiệu số 7 đó là báo hiệu và thoại chuyển tải trên hai kênh riêng .Giao thức SIP thực hiện chức năng thiết lập và báo hiệu cuộc gọi, khi nói đến báo hiệu cuộc gọi là chỉ định các tín hiệu báo hiệu như: tín hiệu mời quay số, tín hiệu bận … SIP là phần thiết lập mặc định của Astersik (SIP được hỗ trợ trong Asterisk với module chan_sip.so) . Hầu hết thiết bị VoIP mới đều có hỗ trợ giao thức SIP.Nó có một số ưu điểm, như: code thì nhỏ hơn. Lý do là SIP chỉ hỗ trợ các tính năng rất cơ bản. Các tính năng tiên tiến được hổ trợ qua các chuẩn Internet riêng biệt .

- 14 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

Cú pháp điều khiển SIP giống như SMTP, HTTP, FTP và các giao thức IETF khác .SIP là một tiêu chuẩn nổi bật trong VoIP vì nó đơn giản so với giao thức khác ví dụ như H.323 . Chúng ta cấu hình giao thức SIP bằng cách soạn thảo trong tập tin /etc/asterisk/sip.conf. Tập tin này có một số thiết lập trong một session [general], tiếp theo là các định nghĩa của chúng ta cho người sử dụng (sẽ phân tích kỹ hơn trong phần cấu hình Asterisk) . 2.4.3 Proxy server Mặc dù hai thiết bị SIP có thể liên lạc trực tiếp với nhau để khởi tạo cuộc gọi nhưng trong giao thức SIP còn có chức năng Proxy để linh hoạt hơn trong thiếp lập cuộc gọi .Proxy Server sẽ làm nhiệm vụ ghi nhận tất cả các số điện thoại được phía clien đăng ký đến qua bản tin “ Registration”.Khi một client khác thực hiện cuộc gọi thì thực sự Client đó không biết số điện thoại cần gọi đang ở đâu nên thông qua Proxy server để tìm kiếm thiết lập cuộc gọi.

Hình 2-2: Đăng ký từ Client đến SIP proxy, với giao thức SIP đường báo hiệu và thoại riêng . 2.4.4 RTP và NAT Các cuộc gọi trên Internet với giao thức SIP được chia thành các gói thoại và được chuyển qua giao thức RTP (Real Time Transport Protocol).RTP là giao thức không chỉ thực hiện chuyển các gói thoại qua Internet mà còn có cả Video nữa .Một cuộc gọi thông thường có hai hướng thông tin là nhận và phát, RTP làm việc chuyển các gói dữ liệu thoại cũng trên hai hướng . RTP cố gắng đảm bảo dữ liệu sẽ được truyền và nhận trong một chu kỳ thời gian ngắn. Rõ ràng độ trễ trong liên lạc thoại có thể là một vấn đề. Vì vậy RTP ngăn ngừa độ trễ này ở mức tối đa có thể . NAT (Network Address Translator) là một trở ngại lớn trong giao thức RTP .Mạng sử dụng NAT là một mạng chia sẻ nhiều địa chỉ IP nội bộ với một địa chỉ IP công cộng để kết nối với thế giới bên ngoài .NAT dùng để chia sẻ nhiều máy tính trong mạng LAN nội bộ sử dụng được Internet, nhưng cũng chính vì th ế mà các máy tính nội bộ
- 15 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

gặp khó khăn trong việc thực hiện cuộc gọi VoIP qua Inetrnet.Đó chính là vấn đề trở ngại khi truyền thoại qua giao thức RTP.

Hình 2-3: Minh họa hoạt động của NAT Trong giao thức RTP như chúng ta đã biết đó là thoại được chuyển trên hai đường khác nhau là đường phát và đường thu, vấn đề NAT nằm ở chổ tín hiệu thoại từ bên ngoài vào bên trong qua giao th ức RTP không thực hiện được còn chiều ngược lại thì thực hiện tốt. Hay nói cách khác vấn đề NAT làm cho các cuộc gọi từ Inetrnet đàm thoại vào các máy nội bộ qua NAT thì không nghe được, còn trong trường hợp các cuộc gọi từ các máy nội bộ ra các máy Inetrnet thì nghe tốt . Vấn đề NAT trên được giải quyết trong Asterisk bằng việc khai báo thông số nat=yes trong cấu hình kênh giao thức SIP. 2.4.5 IAX-Inter Asterisk eXchange IAX là một giao thức được tạo bởi các tác giả của phần mềm Asterisk . Bởi vì sự hạn chế của SIP và H.323.Họ chọn để tạo ra một chuẩn mới cho phép Asterisk server làm được rất nhiều thứ mà không thể làm được với các chuẩn khác . IAX xuyên qua NAT một cách dễ dàng . Hầu hết các tường lửa (firewall) và các Gateway Internet tại nhà đều sử dụng NAT, cũng như các nhà cung cấp dịch vụ . SIP và H.323 phải làm việc gian khổ để phát triển các chuẩn cho phép chúng đi qua các dạng khác nhau của NAT. Trong khi đó, IAX có thể làm việc qua hầu hết các thiết bị NAT để ra ngoài .

- 16 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

IAX có khả năng cấu hình hơn là các giao thức khác khi giao tiếp với Asterisk (trong Asterisk, IAX được hỗ trợ bởi module chan_iax2.so) .Kể từ khi mã nguồn (source code) được biết đến, chúng ta có thể sữa nó nếu muốn, và sau đó đệ trình những thay đổi này để được đánh giá với mục đích là bao gồm trong các version tương lai của Asterisk . IAX hỗ trợ trung kế cho các cuộc gọi (trunking of call) . Điều này có nghĩa là nhiều cuộc gọi có thể được kết hợp trong một luồng đơn .Thông qua khả năng của trung kế, một số lượng băng thông đáng kể có thể được tiết kiệm bởi không có các overhead của nhiều luồng . IAX kết nối giữa các server hỗ trợ chức năng “ switch command ”, để các cuộc gọi được định tuyến một cách hiệu quả giữa các Asterisk server. Hiện đã có hai phiên bản của IAX là IAX version 1 (IAX) và IAX version 2 (IAX2) . IAX2 ra đời được kỳ vọng sẽ là một sự thay đổi hoàn hảo cho nguyên bản IAX version1 . 2.5 Asterisk server Asterisk server là một PC chạy hệ điều hành Linux, yêu cầu cấu hình như ở bảng 2.1 và đảm bảo chắc chắn có đủ khe cắm mở rộng để gắn các board liên lạc .Ví dụ Digium T1, adaptor FXO hoặc FXS . Bảng 2.1: Yêu cầu của cấu hình máy Asterisk server Mục đích Thử nghiệm, học tập Hệ thống cho văn phòng hoặc nhà riêng Hệ thống cho doanh nghiệp nhỏ Hệ thống thương mại cỡ vừa và lớn Số lượng các kênh 1- 5 5-10 Tới 15 Hơn 15 Cấu hình tối thiểu 400-MHz x86, 256 MB RAM 1-GHz x86, 512MB RAM 3-GHz x86, 1GB RAM Dual CPUs, hay cũng có thể là nhiều server trong một cấu trúc phân tán.

2.6 Thiết bị VoIP 2.6.1 VoIP phone Đây là thiết bị phần cứng kết nối với mạng VoIP giống như máy điện thoại để bàn thông thường nhưng dành cho VoIP, cần phải thực hiện cấu hình trước khi sử dụng . Lưu ý một số tính năng khi thực hiện mua thiết bị điện thoại VoIP: +Low bandwidth: hỗ trợ Code nào, G729 là tốt nhất hiện nay . +Web Interface: phải có giao tiếp thiết lập cấu hình thân thiện dễ sử dụng .
- 17 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

+Audio Interface: có speaker phone hay không . Giá thành của điện thoại VoIP đắt hơn điện thoại thông thường, giá khoảng trên dưới 100$/một cái .

Hình 2-4: Máy điện thoại VoIP 2.6.2 Softphone Điện thoại dễ nhất để thiết lập với Asterisk là Softphone.Là một phần mềm được cài trên máy tính, mô phỏng một điện thoại trên PC, thực hiện tất cả các chức năng giống như thiết bị điện thoại VoIP.Softphone dễ thiết lập và có thể được cấu hình khoảng vài phút.Cần lưu ý khi sử dụng Softphone là máy tính phải có card âm thanh, headphone và firewall không bị khóa . Softphone dùng card âm thanh của máy tính để truyền và nhận tín hiệu audio, hoặc một chọn lựa là “USB phone”, giống như thiết bị thoại gắn vào cổng USB của máy tính. Softphone thì không đắt (thường là free) và các “USB phone” thường có giá thấp hơn 50$ Sử dụng Softphone với hệ thống Asterisk nên dùng Softphone với công nghệ giao thức mới dành cho Asterisk đó là IAX .

- 18 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

Hình 2-5: Điện thoại Softphone 2.7 Card giao tiếp với PSTN Muốn cho phép các máy điện thoại nội bộ trong hệ thống Asterisk kết nối và thực hiện cuộc gọi với mạng PSTN chúng ta cần phải có thiết bị phần cứng tương thích.Thiết bị phần cứng sử dụng cho hệ thống Asterisk do chính tác giả lập công ty Digium phân phối, đây cũng chính là ý tưởng lớn trong việc phân phối phần mềm Asterisk là hệ thống nguồn mở sử dụng miễn phí. Thiết bị phần cứng thường ký hiệu bắt đầu bằng cụm từ TDMxyB trong đó x là số lượng port FXS, y là số lượng port FXO, B:Bundle(sản phẩm đã được dựng sẵn), giá trị tối đa của x và y là 4 ,ví dụ card TDM22B có nghĩa là có 2 port FXS và 2 port FXO.

Hình 2-6 Card TDM22B gồm 4 port: 2 FXS và 2 FXO

- 19 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

2.8 ATA- Analog Telephone Adaptors ATA là thiết bị kết nối với điện thoại analog thông thường đến mạng VoIP, một thiết bị ATA gồm có hai loại port: RJ-11 để kết nối với máy điện thoại Analog thông thường, còn RJ-45 để kết nối với mạng VoIP. ATA th ực sự là thiết bị FXS chuyển đổi tín hiệu Analog sang tín hiệu số sử dụng cho mạng VoIP, để tận dụng máy điện thoại Analog nên trang bị thiết bị ATA thay vì phải trang bị điện thoại VoIP. Thiết bị ATA sử dụng với giao thức IAX được Digium phân phối là thiết bị ATA được sử dụng rộng rãi với Asterisk có tên gọi là IAXy .

Hình 2-7: Thiết bị ATA 2.9 Codecs Codecs được hiểu một cách tổng quát là các mô hình toán học được sử dụng để mã hóa (và nén ) tín hiệu thoại dạng Analog sang tín hiệu Digital và ngược lại . Có nhiều thuật toán codec để thực hiện chuyển đổi tín hiệu Analog sang tín hiệu Digital dạng nhị phân (0,1) như G711, GSM, G729…. Ứng với mỗi thuật toán có những ưu điểm riêng, đặc biệt là việc tối ưu sử dụng băng thông trên đường truyền. Mục tiêu cuối cùng là các thuật toán đưa ra phải đảm bảo chất lượng cuộc gọi tốt nhất và tiết kiệm băng thông nhất G729 là codec tốt nhất hiện nay trong hệ thống VoIP.Với hệ thống Asterisk để sử dụng thuật toán này cần phải mua bản quyền sử dụng vì đây là codec không miễn phí sử dụng . 2.10 QoS-Quality of Service Các yếu tố ảnh hưởng đến chất lượng dịch vụ-QoS:

- 20 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

2.10.1 Độ trễ Thoại là dịch vụ mang tính thời gian thực rất cao vì thế trễ là yếu tố ảnh hưởng rất lớn đến chất lượng dịch vụ .Trễ được định nghĩa là khoảng thời gian tính từ lúc tín hiệu thoại đi từ người nói tới người nghe .Trễ là yếu tố không thể tránh khỏi, độ trễ đối với mạng điện thoại truyền thống (mạng PSTN) khoảng từ 50 ms đến 70 ms.Theo khuyến nghị của ITU-T, để đảm bảo chất lượng thoại cho hệ thống VoIP thì độ trễ từ đầu phát tới đầu thu hoặc ngược lại không được vượt quá 150 ms, khi mà độ trễ vượt quá 400 ms đến 500 ms thì không thể chấp nhận được . Các nguyên nhân gây ra trễ bao gồm: trễ trên mạng lưới, trễ trên bộ mã hóa giải mã, trễ trong quá trình đóng gói, trễ bộ đệm, trễ xử lý tiếng nói … 2.10.2 Độ trượt Nguyên nhân gây ra trượt là gói tín hiệu thoại trong quá trình truyền từ nguồn đến đích sẽ gặp phải những điều kiện khác nhau trên mạng lưới do đó thường đến đích với những khoảng trễ khác nhau. Đây là tính không đồng nhất của trễ .Một nguyên nhân khác của trượt đối với ứng dụng PC to PC là do việc sử dụng hệ điều hành phi thời gian thực, các gói tin thoại phải đợi hệ điều hành xử lý trong nh ững khoảng thời gian khác nhau khi mà hệ điều hành phải xử lý đối với các ứng dụng khác nhau .

- 21 -

http://my.opera.com/asteriskvn - CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

Hình 2-8: Nguyên nhân xảy ra trượt Để loại bỏ tính không đồng nhất của trễ, người ta thiết kế các bộ đệm trễ (Jitter Buffer) tại nơi đến của các gói tin, các gói tin đến với các khoảng cách khác nhau về thời gian được lưu tại bộ đệm rồi ra khỏi bộ đệm với khoảng trễ như nhau . Khi bộ đệm có kích thước càng lớn thì khả năng loại bỏ tính không đồng nhất càng lớn, tuy nhiên việc sử dụng bộ đệm sẽ gây ra hiện tượng trễ trong ứng dụng thoại, do đó cần có bài toán cân đối giữa độ trễ và độ trượt . Ngoài hai nguyên nhân trên còn có một số nguyên nhân nữa ảnh hưởng đến chất lượng thoại như độ mất gói, giới hạn băng thông, tiếng vọng .

- 22 -

http://my.opera.com/asteriskvn CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ ASTERISK

CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ ASTERISK
Asterisk thực hiện rất nhiều ngữ cảnh ứng dụng khác nhau tùy vào nhu cầu sử dụng, dưới đây là những ngữ cảnh ứng dụng thường được sử dụng trong thực tế triển khai hệ thống Asterisk. 3.1. Tổng đài VoIP PBX

Hình 3-1: IP- PBX

Đây là hệ thống chuyển mạch VoIP được xây dựng phục vụ các công ty có nhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai .Thay vì lắp đặt một hệ thống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống IP-PBX, điều này sẽ làm giảm chi phí đáng kể. Hệ thống có thể liên lạc với mạng PSTN qua giao tiếp TDM .

- 23 -

http://my.opera.com/asteriskvn CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ ASTERISK

3.2. Kết nối IP- PBX với PBX

Hình 3-2: Kết nối IP- PBX với PBX

Một ngữ cảnh đặt ra ở đây là hiện tại Công ty đã trang bị hệ thống PBX, bây giờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phí thấp nhất, giải pháp để thực hiện đó là trang bị hệ thống Asterisk và kết nối với hệ thống PBX đang tồn tại qua luồng E1.Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VoIP khác, công ty có thể thực hiện kết nối với nhà cung cấp dịch vụ VoIP.

- 24 -

http://my.opera.com/asteriskvn CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ ASTERISK

3.3. Kết nối giữa các server Asterisk

Hình 3-3: Kết nối giữa các server Asterisk

Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rải rác ở các vị trí địa lí khác nhau, nhằm giảm chi phí đường dài .Ví dụ công ty Mẹ có trụ sở đặt tại Mỹ và các chi nhánh đặt tại Việt Nam với các địa điểm Thành phố Hồ Chí Minh và Hà Nội.Thông qua mạng WAN của Công ty các cuộc gọi nội bộ giữa các vị trí khác nhau sẽ làm giảm chi phí đáng kể .

- 25 -

http://my.opera.com/asteriskvn CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ ASTERISK

3.4. Các ứng dụng IVR, VoiceMail, Điện thoại hội nghị

Hình 3-4: Triển khai server IVR, VoiceMail, Hội Thoại

Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBX để triển khai các ứng dụng như tương tác thoại IVR .Một ví dụ cho ứng dụng tương tác thoại đó là cho biết kết quả sổ sổ hay kiểm tra cước cuộc gọi giống dịch vụ 19001260.Ứng dụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống như chức năng hộp thư thoại của Viễn thông thành phố triển khai .Còn chức năng điện thoại hội nghị thiết lập cho nhiều máy điện thoại cùng nói chuyện với nhau .

- 26 -

http://my.opera.com/asteriskvn CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ ASTERISK

3.5. Chức năng phân phối cuộc gọi tự động

Hình 3-5: Phân phối cuộc gọi với hàng đợi ACD (Automatic Call Distribution): phân phối cuộc gọi tự động . Đây là chức năng ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hồi từ phía khách hàng. Công ty có khả năng tiếp nhận cùng một lúc 10 cuộc gọi như thế cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào ? Bình thường thì sẽ nghe tín hiệu bận nhưng với chức năng phân phối cuộc gọi sẽ đưa thuê bao đó vào hàng đợi để chờ trả lời, trong khi chờ trả lời cuộc gọi, thuê bao có thể nghe những bài hát hay do Asterisk cung cấp, trong lúc này nếu một trong mười số điện thoại trở về trạng thái rỗi thì cuộc gọi đang chờ sẽ được trả lời, giống như chức năng của dịch vụ 1080 hay 116 của Viễn thông thành phố .

- 27 -

http://my.opera.com/asteriskvn - CHƯƠNG IV: CÁC DỊCH VỤ CƠ BẢN CỦA ASTERISK

CHƯƠNG IV: CÁC DỊCH VỤ CƠ BẢN CỦA ASTERISK
Asterisk có một số tính năng cơ bản đã được giới thiệu ở chương một. Trong phần này sẽ giới thiệu một số tính năng với các ứng dụng cụ thể để hiểu rõ hơn về các tính năng của hệ thống Asterisk . 4.1. Conference call (Đàm thoại nhiều người) Nếu chúng ta cần gọi điện tới nhiều người nhưng chỉ để thông báo cho họ cùng một nội dung .Thật là mất thời gian và bất tiện khi phải lần lượt bấm số của từng người để gọi.Chức năng Conference call, sẽ giúp chúng ta giải quyết điều này . Các cuộc đàm thoại nhiều người được thiết lập cho phép người nhận cuộc gọi tham gia đàm thoại xuyên suốt cuộc gọi đó hoặc có thể được thiết lập để người nhận cuộc gọi chỉ được phép nghe mà không được nói . Chúng ta có thể cho phép người gọi, gọi tới những người khác và thêm họ vào tham dự cuộc đàm thoại . 4.2. Voicemail (hộp thư thoại) Đây là tính năng cho phép hệ thống nhận các thông điệp tin nhắn thoại, mỗi máy điện thoại được khai báo trong hệ thống Asterisk cho phép khai báo thêm chức năng hộp thư thoại. Mỗi khi số điện thoại bận thì hệ thống Astreisk định hướng trực tiếp các cuộc gọi đến hộp thư thoại tương ứng đã khai báo trước. Voicemail cung cấp cho người sử dụng nhiều tính năng lựa chọn như: password xác nhận khi truy cập vào hộp thư thoại, gửi mail báo khi có thông điệp mới. - Voicemail transfer: Tính năng cho phép bạn chuyển cuộc gọi vào hộp thư thoại khi bạn không rảnh để nghe. -Voicemail dial: Nếu bạn không muốn điện thoại của người nhận đổ chuông (tránh làm phiền không cần thiết), bạn có thể nói trực tiếp vào Voicemail của người nhận .Người nhận sau đó sẽ nghe lại thông tin của bạn từ Voicemail . 4.3. Call Forwarding (chuyển cuộc gọi) Khi không có ở nhà, hoặc đi công tác mà người sử dụng không muốn bỏ lỡ tất cả các cuộc gọi đến thì hãy nghĩ ngay đến tính năng chuyển cuộc gọi . Đây là tính năng thường được sử dụng trong hệ thống Asterisk .Chức năng này cho phép chuyển một cuộc gọi đến một hay nhiều số máy điện thoại được định trước .
- 28 -

http://my.opera.com/asteriskvn - CHƯƠNG IV: CÁC DỊCH VỤ CƠ BẢN CỦA ASTERISK

Một số trường hợp cần chuyển cuộc gọi như: chuyển cuộc gọi khi bận, chuyển cuộc gọi khi không trả lời, chuyển cuộc gọi tức thời, chuyển cuộc gọi với thời gian định trước . 4.4. Caller ID (hiển thị số chủ gọi) Chức năng này rất hữu dụng khi một ai đó gọi đến và ta muốn biết chính xác là gọi từ đâu và trong một số trường hợp biết chắc họ là ai . Ngoài ra Caller ID còn là chức năng cho phép chúng ta xác nhận số thuê bao gọi đến có nghĩa là dựa vào caller ID chúng ta có tiếp nhận hay không tiếp nhận cuộc gọi từ phía hệ thống Asterisk.Ngăn một số cuộc gọi ngoài ý muốn . 4.5. Automated Attendant (tương tác thoại) Chức năng tương tác thoại có rất nhiều ứng dụng trong thực tế, khi gọi điện thoại đến một cơ quan hay xí nghiệp, thuê bao thường nghe thông điệp như “Xin chào mừng bạn đã gọi đến công ty chúng tôi, hãy nhấn phím 1 để gặp phòng kinh doanh, phím 2 gặp phòng kỷ thuật …” sau đó tùy vào sự tương tác của thuê bao gọi đến, hệ thống Astreisk sẽ định hướng cuộc gọi theo mong muốn. Khi muốn xem điểm thi, muốn biết tiền cước điện thoại của thuê bao, muốn biết tỉ giá đô la hiện nay như thế nào, hay kết quả sổ số … tất cả những mong muốn trên đều có thể thực hiện qua chức năng tương tác thoại. 4.6.Time and Date Vào từng thời gian cụ thể cuộc gọi sẽ định hướng đến một số điện thoại hay một chức năng cụ thể khác. Ví dụ trong công ty giám đốc muốn chỉ cho phép nhân viên sử dụng máy điện thoại trong giờ hành chính, còn ngoài giờ thì sẽ hạn chế hay không cho phép gọi ra bên ngoài . 4.7.Call pickup Đây là tính năng cho phép chúng ta từ máy điện thoại này có thể nhận cuộc gọi từ máy điện thoại khác đang rung chuông . Bạn nghe máy điện thoại của người khác trong phòng đang đổ chuông.Người đó không có mặt trong phòng để nhận cuộc gọi .Và bạn cũng không muốn rời khỏi b àn làm việc của mình để trả lời cuộc gọi.Bạn hãy dùng điện thoại của bạn để trả lời cuộc gọi . 4.8.Call Parking Bạn đang trả lời một cuộc gọi .Bạn muốn chuyển cuộc gọi này sang một đồng nghiệp khác, nhưng người này chỉ có thể nhận điện thoại sau khoảng 1 phút nữa (vì người này đang nói chuyện điện thoại, hoặc vừa bước ra ngoài … ) Và bạn không muốn cầm điện
- 29 -

http://my.opera.com/asteriskvn - CHƯƠNG IV: CÁC DỊCH VỤ CƠ BẢN CỦA ASTERISK

thoại nữa . Bạn sẽ park-chuyển, cuộc gọi này vào một Park place (một số điện thoại trung gian) . Đồng nghiệp của bạn sau đó sẽ pickup-nh ận, cuộc gọi từ Park place . 4.9.Privacy Manager Khi một người chủ doanh nghiệp triển khai Asterisk cho hệ thống điện thoại của công ty mình nhưng lại không muốn nhân viên trong công ty gọi đi ra ngoài trò chuy ện với bạn bè, khi đó Asterisk cung cấp một tính năng tiện dụng là ch ỉ cho phép số điện thoại được lập trình, được phép gọi đến những số máy cố định nào đó thôi, còn những số không có trong danh sách định sẵn sẽ không thực hiện cuộc gọi được. 4.10.Call Detail Records 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 năng còn lại, chúng ta có thể tham khảo ở website www.asterisk.org.

- 30 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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)

- 31 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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.

- 32 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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/libpri1.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). adtranvofr.conf: tập tin này chứa cấu hình cho việc sử dụng Voice over Frame Relay.

- 33 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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 hệ thống điện thoại như: nhịp chuông và các tone, cho phép chúng ta cung cấp âm
- 34 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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.

- 35 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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 đặt và đượ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ỳ bằng cách không khai báo sử dụng trong tập tin modules.conf. Lưu ý khi không cho
- 36 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

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 đặt trong thư mục được trích ra khi bung gói asterisk-sounds.

- 37 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

/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ó cấu trúc qui định vào thư mục outgoing/. Thư mục tmp/ sử dụng để lưu trữ những thông tin tạm, để luôn đảm bảo không xảy ra tình trạng đọc và viết tập tin cùng một lúc, khi yêu cầu xử lý tập tin chúng ta thao tác trên thư mục tmp/ trước khi lưu vào tập tin đích . Tất cả lời nhắc thoại từ phía người sử dụng và các lời nhắc thoại sử dụng cho thao tác voicemail đều được chứa trong thư mục voicemail/. Một hộp thư thoại được tạo ra ứng với một máy nội bộ trong tập tin voicemail.conf, sẽ được tạo ra một thư mục con tương ứng cho máy nội bộ đó tại thư mục voicemail/. /var/run/ Thư mục /var/run/ chứa thông tin process ID (pid) cho tất cả các tiến trình đang hoạt động trong hệ thống, bao gồm cả Asterisk . Lưu ý là ứng với mỗi hệ điều hành thư mục var/run/ có thể khác. /var/log/asterisk/ Thư mục /var/log/asterisk/ là nơi Asterisk chứa tất cả các tập tin nhật ký hay còn gọi là tập tin log. Chúng ta có thể tùy biến các loại thông tin được lưu trong các tập tin log khác nhau qua tập tin cấu hình logger.conf đặt tại thư mục /etc/astersik /var/log/asterisk/cdr-csv: Thư mục /var/log/asterisk/cdr-csv được sử dụng để lưu chi tiết cuộc gọi CDR , thông tin mặc định về chi tiết thông tin cuộc gọi được lưu trữ trong tập tin Master.csv, nhưng thường thì ứng với mỗi mã accountcode sẽ tạo một thư mục riêng để lưu chi tiết cuộc gọi cho máy đó. 5.2. Cấu hình hệ thống Sau khi hoàn tất phần cài đặt Asterisk, một bước quan trọng tiếp theo là cấu hình hệ thống, có thể nói đây là bước quan trọng nhất của việc triển khai hệ thống đến với từng ứng dụng cụ thể. 5.2.1. Cấu hình giao tiếp với PSTN Để kết nối với mạng PSTN chúng ta cần phải có một card TDM với cổng FXO và một đường dây điện thoại hoặc có thể là một tổng đài nội bộ PBX .Có nhiều nhà sản xuất phần cứng khác nhau, nhưng trong phạm vi luận văn sẽ trình bày cấu hình mẫu dùng card zapata TDM04B của Digium. (Thông tin về card, có thể tham khảo tại http://www.digium.com ). Trước khi lắp đặt card TDM04B hãy tắt nguồn máy tính và kiểm tra khe cắm PCI có tương thích để gắn vào hay không, chủ yếu là kiểm tra sự tương thích về mặt vật lý . Sau khi hoàn tất hãy bật máy tính trở lại và chuẩn bị cấu hình cho card hoạt động .

- 38 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

Cấu hình cho card hoạt động thông qua hai tập tin cấu hình đó là tập tin zaptel.conf ở thư mục /etc và tập tin zapata.conf ở thư mục /etc/asterisk 5.2.1.a. zaptel.conf Như đã biết tập tin zaptel.conf nằm ở thư mục /etc. Chúng ta có thể chỉnh sửa tập tin này bằng bất cứ công cụ chỉnh sửa text nào ưu thích. Khi thay đổi nội dung của tập tin này, chúng ta phải buộc các driver Zaptel đọc tập tin cấu hình để phát hiện sự thay đổi. Nếu hệ thống của chúng ta được cấu hình để bắt đầu phần cứng Zaptel khi boot máy, chúng ta có thể thực hiện điều này bằng lệnh sau : $/etc/init.d/zaptel stop $/etc/init.d/zaptel start Hoặc nếu chúng ta không bắt đầu các giao tiếp Zaptel khi boot máy, chúng ta có thể thực thi các sự thay đổi bằng cách chạy lệnh sau: #ztcfg Để xem các thông tin xuất ra trong quá trình reload kênh Zap, ta thêm các tham số “v” vào câu lệnh trên: #ztcfg –vvv Có hai tùy chọn tổng quát được thiết lập trong tập tin này . Đầu tiên đó là loadzone, sẽ định nghĩa độ ưu tiên riêng biệt cho chuẩn của một quốc gia nào đó , như cường độ của chuông nên có là bao nhiêu .Cũng vậy tham số thứ hai defaultzone sẽ báo cho Zaptel biết vùng nào được dùng mặc định, nếu như không được chỉ định cụ thể. Giá trị cho mổi tùy chọn này gồm hai chữ viết tắt của quốc gia đó .Ví dụ đối với Hoa kỳ, tập tin zaptel.conf có thể chứa đựng: loadzone = us defaultzone = us Tiếp theo chúng ta cần mô tả loại kết nối mà chúng ta dùng .Đường dây có thể có nhiều dạng khác nhau, loại kết nối chúng ta sử dụng phụ thuộc vào loại dịch vụ nào được cung cấp bởi công ty điện thoại.Thông thường có hai sự lựa chọn thông dụng cho Asterisk là Primary Rate ISDN (PRI) và Plain Old Telephone System (POST), thường được gọi là đường dây Analog. Đối với đường dây Analog thông thường (POST), trong tập tin zaptel.conf, chúng ta cần chỉ ra loại báo hiệu nào chúng ta sẽ sử dụng .Như đã trình bày ở phần trước, chúng ta cần thiết bị FXO để kết nối đến PSTN . Ở đây chúng ta định nghĩa loại báo hiệu mà Asterisk sử dụng chứ không phải là dạng thiết bị đang dùng. Đối với mỗi kênh Zap, cụ thể cho card TDM04B, ta phải định nghĩa: fxsks =1,2,3,4 loadzone = us
- 39 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

defaultzone = us Với khai báo fxsks=1,2,3,4 ta đã định nghĩa ba tham số . Đầu tiên xác định loại báo hiệu, nếu thiết bị chúng ta dùng là giao tiếp FXO thì báo hiệu sử dụng sẽ là FXS và ngược lại.Thứ hai chúng ta định nghĩa giao thức .Điều này phụ thuộc vào đường dây điện thoại mà chúng ta dùng.Thông thường chúng ta có thể sử dụng Koolstart(ks),hoặc các tùy chọn khác là: Loopstart(ls) và Groundstart(gs).Cuối cùng chúng ta chỉ ra số kênh là 4, nằm trên kênh từ 1 đến 4 của card giao tiếp. Nếu chúng ta cấu hình loại báo hiệu không phù hợp, khi reload Zaptel bằng lệnh ztcfg –vvv, ta sẽ thấy bản tin lỗi như sau: #ztcfg –vvv ZT_CHANCONFIG failed on channel 1: invalid argument (22) Did you forget that FXS interfaces are configured with FXO signalling and that FXO interfaces use FXS signalling? Nếu chúng ta dùng đường dây số ISDN (PRI) hoặc T1, thì tập tin cấu hình của chúng ta sẽ có một vài khác biệt so với đường dây Analog .Chúng ta định nghĩa mỗi luồng ISDN hay T1 như là một span .Đối với mỗi span này ,chúng ta cần chỉ ra các thông số chi tiết như sau : • Span number: đây là số thứ tự ấn định cho mỗi luồng .Nếu luồng kết nối vào cổng thứ nhất trên card, ta định nghĩa là span 1, cổng số 2 là span 2,… • Timing: mỗi luồng cần có một nguồn đồng bộ ở 1 trong 2 đầu cuối. Một luồng ISDN gắn vào card giao tiếp của Asterisk có thể đồng bộ dựa vào xung đồng hồ cục bộ hoặc có thể dựa vào xung đầu ra phía telco hoặc nơi mà PBX kết nối tới .Đồng bộ cục bộ (Internal timing) là khi xung đồng bộ được lấy ngay trên card, dựa vào xung chipset trên card. Đồng bộ ngoài là khi xung đồng bộ được lấy từ đường dây PRI do đầu xa gởi tới .Tham số timing trong định nghĩa span trong tập tin zaptel.conf sẽ quyết địng lựa chọn là primary, secondary hay trên một nguồn xung đồng bộ khác : 0: nghĩa là internal clocking, sử dụng tín hiệu xung của chipset trên card để khởi tạo xung đồng bộ. 1: xung đồng bộ là primary source, tức zaptel đồng bộ xung dựa vào tín hiệu nhận được từ đường dây cho port (span) này.Đây được gọi là external clocling. 2: xung đồng bộ là secondary clock source, nghĩa là sẽ khôi phục xung cho span này từ xung của card nếu span với clock =1 bị lỗi. • Line Build Out (LBO):số nguyên này mô tả chiều dài của cable. • Framing: thông tin này mô tả các thông số framing cho đường truyền của chúng ta. Những thông số này cần mô tả chính xác với khai báo của nhà cung cấp . Nếu là luồng T1: có các tham số: d4 (còn gọi là supperframe hay sf) và esf Nếu là luồng E1: có các tham số: cas, ccs. • Coding: tham số này chỉ ra mã đường truyền của chúng ta .Cũng như framing, thông số này phải mô tả chính xác với nhà cung cấp nối kết: Đối với T1: ami hoặc b8zs
- 40 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

Đối với E1: ami, hdb3 và thêm vào tham số crc4 để kích hoạt việc kiểm tra CRC-4 cho đường truyền. 5.2.1.b. zapata.conf Chúng ta đã cấu hình xong tập tin zaptel.conf đề hệ thống Linux có thể nhận dạng được driver của card cũng như hiểu được các thông số liên quan đến đường truyền. Tuy nhiên để Asterisk có thể bắt tay được với driver này , ta phải cấu hình trong tập tin zapata.conf Tập tin cấu hình này được đọc bởi Asterisk . Do đó để cập nhật sự thay đổi trong tập tin này, chúng ta dùng lệnh reload ở giao diện console của Asterisk . Zaptel không cần phải restart trong trường hợp này. Sau đây là rất nhiều tham số phải được thiết lập trong tập tin này: • language: đây là ngôn ngữ mặc định để sử dụng .Mặc định là “en” (tiếng Anh) • conext: đây là nơi chúng ta nói cho Asterisk các cuộc gọi mới sẽ đặt vào ngữ cảnh nào để xử lý .Giá trị mặc định là “default” • switchtype: chỉ dùng khi đường truyền là PrimaryRate ISDN hoặc T1, gồm các tùy chọn: - 4ess: giao thức 4ESS của AT&T - 5ess: giao thức 5ESS của Lucent - dms100: Nortel DMS100 - euroisdn-EuroISDN - national: National ISDN2(default) - ni1: Old National ISDN 1 • pridialplan:thiết lập này cũng chỉ dành cho các kết nối PRI.Gồm các tùy chọn : -unknow -private -local -national -international • overlapdial:thiết lập này quyết định gởi các số overlapping trong quá trình quay số hay không .Các giá trị tùy chọn là: “yes” và “no”. • signalling: thiết lập này chọn phương pháp báo hiệu .Gồm các giá trị: - em: báo hiệu E&M - em_w: E&M Wink - fxY-zz: với Y có thể là o hoặc s ( điều này sẽ tương tự như trong tập tin zaptel.conf) và zz có thể là ks (Koolstart), gs (Groundstart), hoặc ls (Loopstart). - pri_cpe: báo hiệu PRI, phía CPE(Customer Premises Equipment). - pri_net: báo hiệu PRI, phía mạng.
- 41 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

-

sf: báo hiệu SF sf_w: SF Wink

• prewink :chu kỳ prewink (chu kỳ chớp nháy), mặc định là 50ms. • preflash: một chu kỳ flash, mặc định là 50 ms. • start: thời gian bắt đầu, mặc định là 1500 ms. • usecallerid: chọn yes nếu chúng ta muốn sử dụng caller ID.Chú ý điều này có thể gây ra thời gian trễ từ khi Asterisk bắt đầu nhận cuộc gọi cho đến khi đổ chuông vì Asterisk sẽ phải đợi để nhận được thông tin về caller ID.Nếu không muốn sử dụng chọn “no”. • hidecallerid: chọn yes nếu chúng ta muốn ẩn caller ID cho các cuộc gọi ra ngoài . • callwating: chọn “yes”để kích hoạt chức năng chờ cuộc gọi trên thiết bị FXO. • restrictcid:chọn “yes” để gởi callerid Identification) dưới dạng ANI (Automatic Number

• callwaitingcallerid : chọn “yes” nếu muốn hỗ trợ caller ID cho cuộc gọi chờ . • threewaycalling: chọn “yes” nếu muốn hổ trợ cuộc gọi 3 bên. • transfer: thiết lập chức năng này là “yes” n ếu muốn hỗ trợ flash-hook transfer. Sử dụng chức năng này đòi hỏi phải chọn three-way calling . • cancallforward: chọn “yes” nếu muốn hỗ trợ chức năng call forward. • callreturn: quyết định có kích hoạt chức năng call return (gọi lại ) thông qua phím chức năng : *69 • mailbox: thiết lập voicemail number của mailbox. • echocancel: tham số này có thể chọn là “yes”,”no” hoặc một số cụ thể định nghĩa mức độ triệt tiếng vọng. • echocancelwhenbridget: thiết lập điều này thành “yes” nếu muốn triệt tiếng vọng khi cuộc gọi ho àn toàn là TDM (Time Division Multiplexing) .Thông thường là không cần thiết , nhưng trong cấu hình mẫu được thiết lập là ‘yes”. • relaxdtmf: thiết lập này giúp Asterisk nhận ra được các tín hiệu phím dạng DTMF được nhập vào trong quá trình đàm thoại . • thiết lập độ lợi (Gian setting): -txgain: đơn vị dB, thiết lập TX gain, mặc định là 0.0 -rxgain: đơn vị dB, thiết lập RX gain, mặc định là 0.0
- 42 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

• group: định nghĩa một nhóm cho các kênh Zap. Điều này dùng cho các cuộc gọi ra . • pickupgroup: đây là một nhóm nhấc máy (pickup group).Nếu một điện thoại nào đó trong cùng nhóm pickup với bạn rung chuông, bạn có thể nhấc máy từ xa thông qua việc quay *8# • callerid: thiết lập số caller ID thành “asreceived” hoặc với một số cụ thể. • accountcode: chúng ta có thể ấn định các kênh đến từng mã tài khoản đối với việc quản lí cước. • adsi:chọn “yes” nếu chúng ta có dùng các điện thoại tương thích ADSI. • busydetect: thiết lập thành “yes” để cố gắng nhận dạng xem đường dây hiện là “hung up” hay “busy”. • busycount : tham số này định nghĩa bao nhiêu tín hiệu bận (busy tone) được nhận trước khi “hang up” một kênh. Mặc định là 4, tăng giá trị này lên có thể tránh các trường hợp bị rớt cuộc gọi một cách ngẫu nhiên . • musiconhold: định ghĩa class music sử dụng cho nhạc chờ. • channel: đây có thể là một kênh hay là một nhóm kênh .Các kênh này phải được định nghĩa trước đó trong /etc/zaptel.conf. Sau đây là ví dụ minh họa : -Giả sử chúng ta có một thiết bị FXO trên kênh 1, cuộc gọi ở nhóm 1, thì khai báo trong tập tin zapata.conf như sau: [trunkgroups] ;định nghĩa các nhóm trung kế tại đây.Mặc định có thể bỏ qua [channels] ;các giá trị mặc định usecallerid=yes hidecallerid=no callwaiting=no threewaycalling=yes transfer=yes echocancel=yes ;định nghĩa cho cổng FXO signalling=fxs_ks context=default group=1 channel=1
- 43 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

-Đối với thiết bị FXS trên kênh 2 thì khai báo như sau: [trunkgroups] ;định nghĩa các nhóm trung kế tại đây.Mặc định có thể bỏ qua [channels] ;các giá trị mặc định usecallerid=yes hidecallerid=no callwaiting=no threewaycalling=yes transfer=yes echocancel=yes ;khai báo cổng FXS signalling=fxo_ks context=longdistance adsi=no callgroup=1 pickupgroup=1 channel=2 5.2.2. Giao diện SIP Giao thức khởi tạo phiên (Session Initiation Protocal-SIP), là một trong các chuẩn giao thức truyền thoại trên nền IP . Giao thức này chủ yếu dựa vào giao th ức thời gian thực (Real-time Transport Protocal), sử dụng cổng UDP trong bộ TCP/IP để truyền thoại . Nó cũng địng nghĩa các địa chỉ có định dạng giống như một email, vídụ user@domain . Chúng ta sẽ cấu hình giao thức này bằng cách chỉnh sửa tập tin /etc/asterisk/sip.conf. Tập tin này gồm một số thiết lập trong phần tổng quát [general], và tiếp theo là các định nghĩa của chúng ta cho các user. Các tùy chọn trong phần [general] bao gồm: • context: thiết lập ngữ cảnh mặc định cho các cuộc gọi vào. Các cuộc gọi này có thể từ các user của chúng ta, hoặc nếu chúng ta kết nối đến Internet thì nó có thể đến từ bất nơi nào . Mặc định là “default”. • port: thiết lập cổng UDP để lắng nghe đối với các kết nối. Mặc định là 5060 và chúng ta không nên thay đổi, trừ khi chúng ta có một lý do thực sự tốt. • bindport: xác định địa chỉ IP mà chúng ta muốn SIP phục vụ đến . • srvlookup:quyết định có kích hoạt chức năng DNS SRV lookup hay không . • pedantic: nếu chúng ta có sử dụng pingtel, nên thiết lập tham số này là “yes”.

- 44 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

• tos: đây là thông số thiết lập chất lượng dịch vụ (Quality of Service- QoS). Chúng ta có thể chỉ ra một giá trị số cụ thể nào đó hoặc có thể dùng từ khóa “lowdelay”, ”throughput”,”reliability”,”mincost” hoặc “none”. Chúng ta nên thiết lập giá trị này là “lowdelay” nếu khi đàm thoại nghe những tạp âm như tiếng lộp bộp, sôi hoặc các âm thanh không phù hợp khác. • maxexpiry: thiết lập thời lượng tối đa tính bằng giây, cho phép một phiên đăng ký có giá trị . Mặc định là 3600, nghĩa là một phiên đăng ký tối đa sẽ phải time out sau 1 giờ • defaultexpiry : đây là thời lượng mặc định tính bằng giây cho một phiên đăng ký bất kỳ. Mặc định là 120. • notifymimetype: chúng ta có thể ghi đè dạng MINE lên các bản tin SIP NOTIFY. Chúng ta không nên sửa tham số này, nếu như không phải vì một lý do đặc biệt nào đó • videosupport: chúng ta có thể thiết lập tham số này thành “yes” để cho phép hổ trợ hình ảnh trong SIP.Asterisk hiện tại hỗ trợ các codec hình ảnh như H.263 và H.263+ • musicclass: là nơi thiết lập các bản nhạc chờ mặc định cho tất cả các cuộc gọi SIP. Mặc định là “default”. • accountcode: thiết lập các mã tài khoản cho các SIP user. Tính năng này ứng dụng trong việc tính cước . • language: thiết lập ngôn ngữ mặc định cho các SIP user.Mặc định là “en”. • relaxdtmf: giúp cho Asterisk nhận được các xung dạng DTMF của các phím được nhấn trong quá trình đàm thoại. • rtptimeout: nơi đây chúng ta có thể cấu hình chu kì im lặng tối đa cho 1cuộc gọi .Nếu RTP stream không hoạt động trong một khoảng thời gian được thiết lập .Cuộc gọi sẽ được kết thúc .Mặc định là 60 • externip: nơi đây chúng ta có thể thiết lập các địa chỉ IP bên ngoài của server Astersik. Điều này rất hữu ích cho các trường hợp liên quan đến NAT và tường lửa . • localnet: nơi đây chúng ta sẽ định nghĩa các địa chỉ IP bên trong cho Asterisk servser. Điều này sẽ chỉ cho Astersik biết các bản tin SIP nào dùng cho địa chỉ IP ngoài và những cái nào cần cho địa chỉ IP bên trong . • register: tham số này dùng đăng ký với một nhà cung cấp hoặc dịch vụ bằng giao thức SIP nào đó . Ví dụ : abc@def@sipprovider.com. ,trong đó adb là username, def là password và sipprovider.com là SIP của nhà cung cấp dịch vụ đó . • codes: chúng ta phải định nghĩa loại codec(encoder/decoder) nào được sử dụng cho các cuộc gọi SIP mà chúng ta cho phép thông qua Astersik. Đầu tiên chúng ta nên thiết
- 45 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

lập disalow=all để vô hiệu tất cả các codec. Sau đó thêm từng codec bằng cách dùng allow=codec. Ví dụ để chỉ cho phép sử dụng codec g.723 và ulaw, ta dùng : disallow=all allow=g723 allow=ulaw Chúng ta đã cấu hình các tùy chọn tổng quát trong phần [general], tiếp theo chúng ta phải định nghĩa cho các user .Sau đây là cấu hình cụ thể cho một user: • type: gồm các gia trị : user: kết nối này được phép gởi các cuộc gọi đến chúng ta. peer: chúng ta được phép gởi các cuộc gọi đến kết nối này. friend: kết nối này là user lẫn peer. • username: thiết lập usename dùng cho việc xác thực. • secret: thiết lập password dùng cho việc xác thực. • md5secret:mã hóa dạng MD5 hash của chuỗi<user>:asterisk:<secret> cho việc xác thực thêm bảo mật. • callerid: thiết lập caller ID . Ví dụ callerid=Myname<1234> . • host: thiết lập địa chỉ host cho user .Địa chỉ này có thể là một địa chỉ tĩnh hoặc một từ khóa “dynamic”. • nat: thiết lập cho dù thiết bị SIP ở phía sau NAT firewal hay không. • mailbox: thiết lập mailbox để kiểm tra tin nhắn cho user.Điều này có thể chỉ là một mailbox ID, hoặc có thể là mailbox ID và theo sau là @tên ngữ cảnh. • qualify: thiết lập bao nhiêu milisecond thiết bị có thể mất kết nối(trạn g thái unreachale) được xem như là down. • dtmfmode: thiết lập chế dộ DTMF .Sự lựa chọn giá trị nào phụ thuộc vào phần cứng chúng ta đang sử dụng .Các giá trị tùy chọn là: “rfc2833”, “info”, “inband” . • security: chúng ta có thể dùng từ khóa “permit” hoặc “deny” để thiết lập các mức độ bảo mật. - deny: thiết lập danh sách các địa chỉ IP không cho phép đăng ký, nếu chúng ta thiết lập deny=0.0.0/0.0.0.0 thì tất cả các đăng ký sẽ bị từ chối. Nếu cấu hình deny= 192.168.1.0/255.255.255.0 thì tất cảc đăng ký xuất phát từ địa chỉ lớp C của 192.168.1.0 sẽ bị từ chối. - permit: danh sách các địa chỉ IP cho phép đăng ký đến .Mặc định là tất cả các địa chỉ đều được phép.

- 46 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

Sau đây là 1 cấu hình mẫu trong tập tin sip.conf . Giả sử các tùy chọn tổng quát đã được thiết lập .Chúng ta có 3 user: một cho tất cả các cuộc gọi vào, một cho các cuộc gọi ra đến dịch vụ Free World Dial(FWD) và một cho một điện thoại SIP [sip_incoming] type=user [FWD-out] type=peer secret=mypassword username=myusername password=mypassword host=host.provider.com [1000] ; đây là extension của điện thoại SIP type=friend contex=longdistance username=1000 callerid=Myname<1000> host=dynamic defaultip=192.168.1.100 secret=2manysecrets nat=no canreinvite=yes dtmfmode=info mailbox=1000 disallow=all allow=ulaw accountcode=company123 5.2.3. Giao tiếp IAX Tất cả cấu hình cho một kết nối IAX nằm trong tập tin /etc/asterisk/iax.conf. Cũng giống như cấu hình SIP, cần phải thiết lập một số tùy chọn tổng quát cho kết nối IAX trong phần [general], bao gồm các tùy chọn : • port: thiết lập cổng để lắng nghe cho các cuộc gọi IAX. Mặc định là 5036 • bindaddr: thiết lập địa chỉ IP để kết nối tới .Mặc định là 0.0.0.0 nghĩa là tất cả các IP đều có giá trị. • accountcode: cũng như đối với SIP , chúng ta cũng có thể thiết lập một mã tài khoản để dùng cho mục đích tính cước. • language: chúng ta có thể xác định ngôn ngữ, nếu không Asterisk sẽ mặc định là English.

- 47 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

• bandwidth: chúng ta có thể chỉ ra một mức băng thông nào đó .Điều này sẽ tự thiết lập tự động các codec nào có thể và không thể sử dụng. Các giá trị gồm “low”, ”medium”, và “high”. • codec selecton: cũng như trong sip.conf .Chúng ta có thể không cho phép tất cả các codec bằng disallow=all và sau đó chỉ cho phép một số codec cụ thể nào đó,ví dụ: allow=ulaw. Nếu chúng ta dùng allow=all thì tương tự như dùng bandwidth=high. • trunkfreg:chúng ta có thể thiết lập số mili giây giữa các bản tin trung kế. Mặc định 20 ms là khá tốt cho hầu hết các thiết lập . • register: như trong sip.conf, chúng ta có thể đăng ký đến một server từ xa.Giả sử nếu username là “abc”, mật khẩu là “pw” và chúng ta muốn đăng ký với “providerhost.com” thì câu lệnh đăng ký sẽ là: register=> abc:pw@providerhost.com • tos: thiết lập các bít TOS, các giá trị tùy chọn là “lowdelay”, “throughput”, “reliability”, “mincost” và “none”.Thông thường “lowdelay” được tin tưởng nhất. Sau khi định nghĩa xong các tùy chọn tổng quát, chúng ta cần định nghĩa các tham số cụ thể cho từng user . Mọi tham số tùy chọn chi tiết cho một user IAX thì tương tự như user trong cấu hình SIP .Một sự khác biệt giữa SIP và IAX là giao thức IAX hỗ trợ các phương pháp xác thực dạng mã hóa khóa RSA chung/riêng, cùng với MD5 và thuần text. Sau đây là một ví dụ: Giả sử chúng ta có một user với số extension là 2000 và các tham số tổng quát trong [general] đã được định nghĩa thì các khai báo trong tập tin iax.conf là: [2000] type=friend secret=123456 host=dynamic defaultip=192.168.1.200 callerid=name<2000> context=longdistance deny=0.0.0.0/0.0.0.0 permit=192.168.1.1/255.255.255.0 5.2.4. Hộp thư thoại (Voicemail) 5.2.4.a. Giới thiệu Asterisk cung cấp khả năng xây dựng ứng dụng Voicemail, với khả năng này giúp cho người sử dụng điện thoại không bỏ lỡ bất kỳ cuộc gọi điện thoại nào. Một số tính năng của hệ thống voicemail:

- 48 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

• Khi user không trả lời, user không được kết nối mạng hay user đang bận, hệ thống đều có thông điệp riêng để thông báo tình trạng của thuê bao được gọi và phát thông điệp mời để lại tin nhắn . • Mỗi hộp thư đều được quản lí bằng password và thư mục riêng • Khi thông điệp được nhận, hệ thống VoiceMail có thể gởi qua mail để thông báo, tất nhiên có kèm theo file thông điệp. • Có thể kiểm tra VoiceMail trực tiếp trên máy điện thoại. • Những thông điệp lời chào trong hệ thống ho àn toàn có thể thay đổi phù hợp với ngữ cảnh sử dụng, không nhất thiết phải sử dụng thông điệp mặc định . 5.2.4.b. Cấu hình chức năng voicemail Sau đây là các bước xây dựng hệ thống Voicemail -Tạo hộp thư có tên là [hopthu] trong tập tin voicemail.conf : [hopthu] 3003=>1234,hai,lxhai06@yahoo.com -Trong tập tin sip.conf khai báo như sau: [3003] type=friend username=3003 secret=121212 host=dynamic context=testhopmail mailbox=3003@hopthu -Trong tập tin extensions.conf khai báo như sau: [testhopmail] exten => 3003,1,Dial(SIP|3003,45) exten => 3003,2,VoiceMail(u3003@hopthu) ; nếu không trả lời thì chuyển đến hộp thư thoại exten =>3003,102,VoiceMail(b3003@hopthu) ; ứng dụng Dial() gởi cuộc gọi đến priority n+1 nếu đường dây bận. Kiểm tra Voicemail: Ứng dụng VoicemailMain() quản lí các user của PBX để truy cập vào voicemail của họ. Ví dụ:
- 49 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

exten => 500,1,VoiceMailMan() Extension 500 đưa đến hệ thống voicemail.Trong trường hợp này, hệ thống sẽ nhắc user đưa vào số của mailbox và password, nếu giá trị đưa vào hợp lệ, user sẽ nghe được nội dung của mailbox đó . 5.2.5. Nhạc chờ (Music On Hold) 5.2.5.a. Giới thiệu Tính năng MOH của Asterisk với nhiều ứng dụng thực tế rất thiết thực, một số ứng dụng tiêu biểu như trong khi giử máy để gặp người khác, thuê bao có thể nghe âm nhạc giải trí để quên đi thời gian chờ đợi, khi chờ trả lời cuộc gọi thuê bao sẽ nghe âm nhạc thay vì hồi âm chuông, hoặc phát ra một thông điệp thông báo cho một tác vụ nào đó. 5.2.5.b. Cấu hình tính năng MOH Chép toàn bộ tập tin nhạc vào thư mục mặt định /var/lib/asterisk/mohmp3 .Sau đó khai báo trong tập tin cấu hình /etc/asterisk/musiconhold.conf với nội dung : [default] mode=files directory=/var/lib/asterisk/mohmp3 random=yes Nếu random=no thì tất cả các tập tin âm thanh trong thư mục mohmp3 sẽ thự hiện theo thứ tự. Nếu random=yes sẽ thực hiện một tập tin âm thanh ngẫu nhiên trong thư mục . Sau khi cấu hình xong chúng ta có thể test bằng cách cấu hình kế hoạch quay số trong tập tin /etc/asterisk/extensions.conf như sau : ;các dòng này phải được đặt cùng ngữ cảnh với các thuê bao exten => 9000,1,Answer() exten => 9000,n,SetMusicOnHold(default) exten => 9000,n,WaitMusicOnHold(15) exten => 9000,n,Hangup()

Khi thuê bao quay số 9000 hệ thống sẽ trả lời sau đó phát ra một bài nhạc ngẫu nhiên trong thư mục default, trong vòng 15s sau đó gác máy Chúng ta có thể tạo ra một lớp thư mục khác với lớp default sau đó chép tất cả các tập tin âm nhạc vào thư mục này và đồng thời khai báo trong tập tin cấu hình /etc/asterisk/musiconhold.conf thì chúng ta có thể sử dụng chức năng MOH. Sau đây là quá trình thực hiện :
- 50 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

-Tạo thư mục mới #mkdir /var/lib/asterisk/mohmp3/newclass -Khai báo tập tin cấu hình /etc/astersik/musiconhold.conf [newclass] mode=files directory=/var/lib/asterisk/mohmp3/newclass random=yes Đoạn kế hoạch quay số trong tập tin extensions.conf như sau: exten=> 9000,1,Answer() exten=> 9000,n,SetMusicOnHold(newclass) exten=> 9000,n,WaitMusicOnHold(15) exten=> 9000,n,Hangup() 5.2.6. Hàng đợi (Queue) 5.2.6.a. Giới thiệu Hàng đợi tạo ra một chỗ logic để xếp các caller vào cho đến khi chúng ta sẵn sàng trả lời cuộc gọi.Hàng đợi là một cung cụ rất mềm dẻo và mạnh mẽ cho các hệ thống dịch vụ khách hàng. 5.2.6.b. Cấu hình: Tất cả các cấu hình liên quan đến hàng đợi, nằm trong tập tin /etc/astersik/queues.conf. Để định nghĩa một hàng đợi, chúng ta bắt đầu bằng tên hàng đợi, được đặt trong dấu ngoặc vuông “[]”.Đây cũng là số để các extension khác có thể truy cập vào queue thông qua số này.Do đó tốt nhất nên đặt tên hàng đợi dưới dạng số .Ví dụ: [1000]. Sau đó chúng ta phải thiết lập các tham số cho hàng đợi.Đầu tiên là nhạc chờ trong hàng đợi, chúng ta sẽ chỉ ra class chứa những tập tin âm thanh đã upload lên hệ thống (như mô tả trong phần Music On Hold): music = music_class Tiếp theo chúng ta định nghĩa một thông báo, nếu như chúng ta muốn.Điều này giúp phát một tập tin âm thanh thông báo đến các điện thoại viên (agent) khi anh ta (cô ta ) trả lời cuộc gọi đến từ hàng đợi. Chức năng này sẽ hữu ích nếu chúng ta có các agent trả lời nhiều hàng đợi, nó sẽ giúp thông báo cho agent biết cuộc gọi này đi từ hàng đợi nào tới . Nếu muốn dùng, phải chắc chắn rằng chúng ta có tập tin âm thanh: /var/lib/asterisk/sounds/<ten_file>.<extension>.Thiết lập chức năng này bằng câu lệnh: announce= <tên_file>
- 51 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

Bây giờ chúng ta cần cấu hình qui luật đổ chuông cho các agent trong hàng đợi . Chúng ta nên quyết định điều này d ựa vào đặc thù của công việc mà hàng đợi đó phải làm.Ví dụ nếu thiết lập chức năng ringall cho hàng đợi, ta dùng: strategy = ringall Khi đó,nếu một cuộc gọi được vào hàng đợi, tất cả các điện thoại của các agent trong hàng đợi mà đang rỗi đều đổ chuông và sẵn sàng nhận cuộc gọi . Tiếp theo chúng ta thiết lập timeout. Đây là thời lượng mà mỗi cuộc gọi sẽ đổ chông trước khi hàng đợi xem xét cuộc gọi không được trả lời .Chúng ta nên thiết lập thời gian này đủ lớn để các agent đủ thời gian nhấc máy và trả lời điện thoại .Giá trị thường dùng là 15ms : timeout=15 Bây giờ chúng ta thiết lập thời gian đợi trước khi bắt đầu thử lại sau khi đổ chuông hết tất cả các extension trong hàng đợi mà không được trả lời .Giá trị thường dùng là 0 retry=0 Tiếp theo chúng ta thiết lập giới hạn bao nhiêu cuộc gọi được xếp vào hàng đợi.Nếu chúng ta muốn cho phép mọi cuộc gọi đều vào hàng đợi, thì thiết lập giá trị 0: maxlen=0 Cuối cùng, chúng ta định nghĩa các thành viên trong hàng đợi.Đơn giản chúng ta chỉ cần thêm các dòng lệnh theo định dạng như sau: member => agent/extension_number member => agent/extension_number Trong đó, extension_number là các số của agent mà ta đã định nghĩa trong tập tin agents.conf Và cứ như thế ta tiếp tục địng nghĩa các hàng đợi khác với các tham số phù hợp để đáp ứng nhu cầu đề ra . Số lượng hàng đợi chúng ta định nghĩa có thể là không giới hạn, chỉ phụ thộc vào nguồn tài nguyên của server . 5.2.7. Xây dựng hệ thống hội thoại (conference rooms) 5.2.7.a. Giới thiệu Chức năng hội thọai cho phép nhiều người có thể cùng nhau trao đổi, nơi mà mọi người cùng gọi đến để đàm thoại gọi là phòng hội thoại . Asterisk cho phép tạo ra nhiều phòng hội thoại tùy vào nhu cầu sử dụng . Trong hệ thống điện thoại truyền thống PSTN để có thể sử dụng được tính năng này chúng ta phải trả tiền, còn đối với Asterisk là miễn phí .
- 52 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

5.2.7.b. Cấu hình Để cấu hình thực hiện một phòng hội thoại chúng ta lần lượt cấu hình như sau : • Tạo ra phòng hội thoại “room” trong tập tin cấu hình meetme.conf . Khi chúng ta mở tập tin này, chúng ta có thể thấy như sau ; ; configuration file for MeetMe simple conference rooms ; [room] ; ; Usage is conf => confno[,pin] ; conf => 1234 ; conf => 2345,9938 • Khai báo phòng hội thoại “room” trong kế hoạch quay số để cho mọi người có thể gọi đến. Tạo phòng hội thoại “room” Để tạo phòng hội thoại “room” chúng ta khai báo trong tập tin meetme.conf theo cú pháp sau : conf => conference_number[,pin][,adminpin] trong đó : conf=> là từ khóa để tạo phòng hội thoại. conference_number: con số đặt tên cho phòng hội thoại, thuê bao gọi con số này để được vào phòng hội thoại pin: mật khẩu nhận dạng đăng nhập, thuê bao muốn vào phòng hội thoại phải nhập đúng mật khẩu này. adminpin: mật khẩu quản trị phòng hội thoại , khi thuê bao nhập đúng mật khẩu này thì có thể quản trị được hệ thống phòng hội thoại như khóa phòng chẳng hạn.

Ví dụ: • khai báo phòng hội thoại trong tập tin meetme.conf : [rooms] ;hội thoại của phòng kinh doanh conf => 2000,123456 ;hội thoại của phòng kỷ thuật có adminpin là 1111 conf = >2001,2222,1111 • thực hiện kế hoạch quay số cho phòng hội thoại:
- 53 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

Để tiếp nhận các cuộc gọi hội thoại chúng ta dùng hàm ứng dụng MeetMe() trong kế hoạch quay số Cú pháp : MeetMe([confno][,[option][,pin]]) trong đó: • confno: con số của phòng hội thoại, nếu thông số này không khai báo thì khi đăng nhập hệ thống sẽ yêu cầu nhập vào. • pin: số mật khẩu đăng nhập . • options: là thông số lựa chọn không có hoặc có nhiều thông số kết hợp với nhau để xác định một số chức năng hoạt động của phòng hội thoại, các chức năng có thể liệt kê ra như sau:

Tham số m t i p X d D e E v r

Chức năng Người tham gia hội thoại chỉ nghe, không được nói chuyện . Người hội thoại chỉ nói không được nghe . Phát thông báo có người kết nối hay rời khỏi phòng User có thể rời khỏi phòng hội thoại bằng cách nhấn phím # User có thể thoát khỏi phòng h ội thoại bằng cách nhập vào extension hợp lệ, (thiết lập qua biến ${MEETME_EXIT_CONTEXT}), nếu biến này không được thiết lập thì sử dụng extension trong ngữ cảnh hiện tại. Thêm động vào phòng hội thoại không cần thiết lập số pin Thêm động vào phòng hội thoại phải cần thiết lập số pin Chọn phòng hội thoại trống đầu tiên Chọn phòng hội thoại trống đầu tiên không cần số pin Hội thoại với chế độ Video Nếu chức năng này được chọn thì cuộc đàm thoại trong phòng hội thoại sẽ được thu âm với định dạng tập tin ${MEETME_RECORDINGFORMAT} và lưu vào vị trí ${MEETME_RECORDINGFILE} Thiết lập mode yên lặng (Không phát âm khi có thuê bao vào/rời khỏi phòng hội thoại ) Cho phép Music On Hold khi phòng chỉ có một cuộc gọi. Đóng phòng hội thoại khi user chủ trì đã thoát phòng hội thoại. Đợi cho đến khi user chủ trì đến phòng hội thoại . Chạy AGI script để thiết lập biến ${MEETME_AGI_BACKGROUND}, script mặc định là conf-background.agi Vào menu(user and administrator) khi nhấn phím * Thiết lập chế độ Admin
- 54 -

q M x w b s A

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

P

Luôn luôn hỏi số Pin ngay cả đã chỉ định trong đối số hàm ứng dụng meetme()

Các biến sử dụng trong hàm ứng dụng MeetMe() Cú pháp ${MEETME_RECORDINGFILE} ${MEETME_RECORDINGFORMAT} ${MEETME_EXIT_CONTEXT} ${MEETME_AGI_BACKGRUOND} ${MEETMESECS} Chức năng Tập tin thu âm cuộc hội thoại(option ‘r’) Định dạng tập tin thu âm (gsm,wav,…) Ngữ cảnh thoát ra từ phòng hội thoại AGI script Số giây thuê bao trong phòng hội thoại

5.3.Tạo kế hoạch quay số(Dialplan) cho hệ thống 5.3.1. Giới thiệu Kế hoạch quay số là trái tim của hệ thống Asterisk. Kế hoạch quay số cho biết các cuộc gọi sẽ được xử lý như thế nào qua hệ thống Asterisk . Kế hoạch quay số bao gồm tập hợp các dòng lệnh hay các ứng dụng theo một trình tự nào đó mà hệ thống phải thực hiện để đáp ứ ng nhu cầu chuyển mạch cuộc gọi. Để cấu hình thành công hệ thống Asterisk thì điều kiện tiên quyết là phải hiểu rõ kế hoạch quay số . Hệ thống chúng ta hoạt động có ổn định và phong phú về chức năng hay không phụ thuộc rất nhiều vào việc chúng ta thiết kế một kế hoạch quay số như thế nào. 5.3.2. Tạo một ng ữ cảnh (context) Đầu tiên ngữ cảnh là gì ? Định nghĩa một cách đơn giản, một ngữ cảnh là một nhóm các extension. Mỗi extension phải tồn tại trong một ngữ cảnh và mỗi extension thường đi qua nhiều ngữ cảnh khác nhau . Trong tập tin extensions.conf, một ngữ cảnh được định nghĩa bởi dấu ngoặc vuông “[]”, có dạng : [mycontext] … Một ngữ cảnh bao gồm một nhóm vô hạn các extensions, trong thực tế chúng ta cần rất nhiều các ngữ cảnh để tạo ra nhiều kế hoạch quay số cũng như những chức năng mềm dẽo, phong phú cho hệ thống .Ví dụ trong một công ty, không phải tất cả các nhân viên đều có khả năng gọi điện thoại theo nhu cầu của họ. Một nhân viên còn quá mới, làm những công việc không quá quan trọng có lẽ không cần thiết phải cho phép gọi những cuộc gọi quốc tế . Cũng vậy một giám đốc cũng không muốn bị quấy rầy liên tục vì những thắc mắc từ khách hàng bình thường …, Chúng ta có thể thiết lập toàn bộ các qui luật hoạt động cho các extension bằng cách nhóm chúng vào những context riêng để xử lý. Chúng ta có thể gọi một ngữ cảnh khác từ ngữ cảnh hiện tại bằng cách dùng cú pháp:
- 55 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

include =>other_context Ví dụ chúng ta có một ngữ cảnh tên là [mycontext].Nếu chúng ta muốn [mycontext] bao gồm cả ngữ cảnh [default] đã tồn tại từ trước, chúng ta thêm các dòng sau trong tập tin extensions.conf: [mycontext] include =>default Dòng cú pháp trên cung cấp cho các extension trong ngữ cảnh [mycontext] khả năng truy nhập tới tất cả các extension trong ngữ cảnh [default].Điều này cũng có nghĩa là nếu ngữ cảnh [default] có bao gồm một số ngữ cảnh khác nhau như [conference] thì tất cả các extension trong [mycontext]đều có thể gởi tới extension trong [conference]. 5.3.3. Tạo một extension Một estension là một nhóm các lệnh báo cho Asterisk thực thi một số công việc .Kế hoạch quay số là một tập gồm nhiều extension, khi một cuộc gọi tương ứng với extension nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện, extension có thể đơn giản với một đích danh cụ thể như 1234 hay là một chuỗi số mẫu như sau: _9xxx . Một extension hoàn chỉnh trong tập tin extensions.conf có định dạng như sau : exten => extensionnum,priority,action trong đó : • exten => : mỗi dòng bắt đầu với lệnh exten => , chúng ta không được thay đổi điều này • extensionnum: là tên, số ,hoặc là một số đại diện tổng quát của extension . Một extensionnum có nhiều dạng như sau: Định dạng 8000 4321/4321 _4xxxx s Giá trị Số cụ thể :8000 Số extension với callerID Số đại diện tổng quát Extension khởi tạo. Nếu không có số extension nào khác được đưa vào, thì đây là extension để thực thi Bắt đầu một số đại diện tổng quát Số bất kỳ 1,3,4,5,6,7,8,9 Số bất kỳ từ 0-9 Số bất kỳ từ 1-9 Số bất kỳ từ 2-9
- 56 -

_(gạch dưới) .(dấu chấm) [13-9]bao gồm các số X Z N

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

t

i

fax

Extension timeout .Nếu một user được đòi hỏi nhập một phím hoặc làm một tác vụ nào đó nhưng không kịp, extension này sẽ được gọi Extension không có giá trị. Nếu một user chọn sai các tùy chọn cho phép, extension này sẽ được gọi Các cuộc gọi fax . Nếu Asterisk nhận thấy tín hiệu fax, cuộc gọi sẽ được định tuyến đến extension này.

• priority : là thứ tự thực hiện các ứng dụng trong kế hoạch quay số, Astersik sẽ bắt đầu ở priority 1, kế tiếp là ứng dụng tại priority 2 được thực hiện . Một vài lệnh có thể buộc Asterisk nhảy đến priority n +1 . Kể từ version 1.2 của Astersik, thay vì gán một con số cụ thể cho thứ tự thực hiện như trên, ta có thể gán thư tự “n” cho mọi dòng “exten=>” , điều này sẽ nói với Astersik là ứng dụng với thứ tự tiếp theo sẽ thực hiện. Ví dụ: exten => 123,1,Answer() exten => 123,n, do something exten => 123,n, do something else exten => 123,n, do one last thing exten => 123,n,Hangup() Version 1.2 cũng cho phép chúng ta gán các nhãn dạng text vào priority .Để gán một nhãn dạng text vào một priority, đơn giản chỉ là thêm nhãn vào bên trong dấu ngoặc “()” sau priority như sau : exten => 123,n(label),do something • action : đây là nơi chúng ta báo cho Astersik biết chúng ta muốn làm gì ,tức là ứng dụng nào sẽ được thực hiện mỗi khi extesion nào đó được gọi, các ứng dụng như thực hiện quay số, trả lời cuộc gọi hay đơn giản là nhấc máy hay gác máy … Một vài ứng dụng tiêu biểu thường hay được dùng gồm : Ứng dụng Answer() Chú thích Trả lời cuộc gọi này .Rất nhiều ứng dụng đòi hỏi rằng cuộc gọi phải được trả lời trước khi chúng có thể thực thi các tác vụ khác. Dùng để phát một file âm thanh dạng .wav hoặc .gsm. Cuộc gọi phải được trả lời trước khi thực thi tác vụ này.
- 57 -

Playback(tên_tập tin)

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

Background(tên_tập tin)

Giống như ứng dụng Playback, tuy nhiên nó được dùng để chờ một phím nhập vào từ user, không bắt buộc phải nghe hết file âm thanh rồi mới chuyển tới extension khác .Ứng dụng n ày đòi hỏi cuộc gọi phải trả lời trước Ứng dụng này giúp chúng ta gởi một cuột gọi đến một context, extension và priority được chỉ định cụ thể. Chức năng này dùng để chuyển cuộc gọi hiện tại vào hộp thư thoại. Ứng dụng này cho phép user lắng nghe các tin nhắn thoại, cũng như ghi âm các lời chào, tên và thiết lập các tùy chọn cấu hình khác .

Goto(contex,extension,priority)

Voicemail(extendsion)

VoicemailMain()

Dial(technology/id,options,timeout) Đây là nơi chúng ta báo cho Asterisk biết để rung chuông một điện thoại khi nó được quay số. Các tùy chọn bao gồm: t : cho phép user bị gọi chuyển cuộc gọi bằng cách nhấn phím # . T : cho phép user gọi chuyển cuộc gọi bằng cách nhấn phím # . r : rung chuông m: cung cấp nhạc chờ H : cho phép gác máy bằng cách nhấn phím *

Ngoài ra còn rất nhiều ứng dụng linh hoạt khác . Để biết thêm thông tin về các ứng dụng cũng như các tham số kèm theo, dùng lệnh show aplications ở giao tiếp dòng lệnh của Asterisk. CLI> show Aplications 5.3.4. Tạo các Extension gọi ra (outgoing) Với kế hoạch quay số, chúng ta không chỉ quan tâm đến việc xử lý các cuộc gọi vào mà tất nhiên còn cần phải tạo các extension để gọi ra . Các extension gọi ra hoạt động như thế nào phụ thuộc vào kế hoạch mà chúng ta thiết kế trước đó .Nó phụ thuộc vào việc bạn muốn định tuyến các cuộc gọi cho từng user

- 58 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

như thế nào .Cần tạo các kế hoạch mềm dẻo nhưng phải thật gần gũi với các hệ thống truyền thống để người dùng không phải lạ lẫm khi tiếp xúc. Hầu hết các hệ thống thường đòi hỏi user phải nhấn một phím nào đó để chiếm trung kế gọi ra trước khi có thể quay số ra ngoài .Để làm điều này, ta dùng cú pháp như sau (giả sử là phím 9): [outgoing] exten => _9.,1,Dial(Zap/g1/${EXTEN:1}) trong đó: • extensionnum :chúng ta đang dùng một số tổng quát (pattern) để đại diện cho phần extensionnum. • g1 :là nhóm các kênh Zap của giao diện Zaptel.Chúng ta nhóm các đường dây (hoặc các kênh )lại với nhau để các cuộc gọi có thể tự động nhận thấy đường dây (hay kênh) nào rỗi và thực hiện cuộc gọi trên đó. • ${EXTEN:1}: là biến lưu số mà chúng ta đã quay trừ đi số đầu tiên. Asterisk sẽ bỏ đi số lượng số bằng với số mà chúng ta đã chỉ ra sau dấu hai chấm“:”, nếu chúng ta quay 9123456789 thì số được gởi đi sẽ là 123456789. Tương tự, nếu chúng ta muốn bỏ qua 2 số đầu, ta dùng ${EXTEN:2} 5.3.5. Hệ thống trả lời tương tác thoại (Automated Attendant) Ứng dụng tương tác thoại là ứng dụng thường gặp đối với bất cứ hệ thống tổng đài PBX nào.Cho phép các thuê bao tương tác với hệ thống qua các thông điệp thoại . Ví dụ khi thuê bao gọi đến PBX, sẽ có thông điệp phát ra “Hân hạnh chào bạn đã gọi đến công ty ABC của chúng tôi , mời nhấn phím 1 để gặp phòng kinh doanh, nhấn phím 2 để gặp phòng hỗ trợ khách hàng… Trong phần này sẽ trình bày từng bước xây dựng hệ thống tương tác thoại một cách dễ hiểu nhất, khai báo trong tập tin extensions.conf như sau : extensions.conf [default] exten => 100,1,Dial(SIP/100) exten => 200,1,Dial(SIP/200) [mainmenu] exten => s,1,Answer() exten => s,n,Background(thanks); phát thông điệp cảm ơn khi gọi đến công ty exten => s,n,WaitExten() exten => 1,1,Goto(submenu,s,1) exten => 2,1,Hangup() [submenu] exten => s,1,Ringing ; rung chông trong vòng 2 giây exten => s,n,Wait(2) exten => s,n,Background(submenuopts) ; Cản ơn đã gọi đến phòng
- 59 -

http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX

kinh doanh exten => s,n,WaitExten() exten => 1,1,Goto(default,A,1) exten => 2,1,Goto(default,B,2)

Đoạn trên có thể giải thích như sau: tất cả các cuộc gọi đến đều được chuyển đến ngữ cảnh [mainmenu], trong ngữ cảnh này hàm ứng dụng Background(thanks) sẽ thực hiện phát ra thông điệp “ Cám ơn quí khách đã gọi điện đến công ty chúng tôi, mời nhấn phím 1 để gặp phòng kinh doanh …” , sau khi thuê bao nhấn phím 1 sẽ được đưa đến ngữ cảnh [submenu] ứng với ngữ cảnh của phòng kinh doanh. Tại ngữ cảnh của phòng kinh doanh hàm ứng dụng Background(submenuopts) sẽ phát thông điệp “ cám ơn đã gọi đến ph òng kinh doanh , mời nhấn phím 1 để gặp ông A, phím 2 để gặp ông B” , Tại đây tùy vào thuê bao nhấn phím 1 hoặc 2 sẽ được chuyển đến người cần gặp tương ứng.

- 60 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

CHƯƠNG VI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN 6.1. Các thiết bị và phần mềm sử dụng - Yêu cầu cấu hình tối thiểu của Asterisk server: Mục đích Thử nghiệm, học tập Hệ thống cho văn phòng hoặc nhà riêng Hệ thống cho doanh nghiệp nhỏ Hệ thống thương mại cỡ vừa và lớn Số lượng các kênh 1- 5 5-10 Tới 15 Hơn 15 Cấu hình tối thiểu 400-MHz x86, 256 MB RAM 1-GHz x86, 512MB RAM 3-GHz x86, 1GB RAM Dual CPUs, hay cũng có thể là nhiều server trong một cấu trúc phân tán. (nguồn : bảng 2.1 [2]) - Asterisk server trong mô hình cơ bản ở trên có: + Cấu hình: • CPU: Pentium IV 2.2 GHz • RAM: 512MB • HDD: 10GB + Hệ điều hành Linux: Fedora core 6.0 + Phần mềm mã nguồn mở Asterisk: • asterisk: version 1.4.21.2 • asterisk-addons: version 1.4.7 • zaptel: version 1.4.12.1 • libpri: version 1.4.7 - Card giao tiếp với PSTN: TDM01B (0 FXS, 1 FXO) của Digium, hỗ trợ giao thức SIP, IAX, H.323 . - ATA linksysPAP2: sử dụng giao thức SIP, có hai cổng FXS và một cổng Ethernet:

- 61 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

- SoftPhone: Phần mềm X-Lite version 3.0 (download từ www.xten.com), cài trên máy tính, hỗ trợ giao thức SIP: Để cấu hình tài khoản SIP cho X-Lite (máy 3006), vào Show Menu - SIP Account Setting , ta nhập các thông số như hình sau đây:

- 62 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

Sau khi nhập đầy đủ các thông tin như trên, X-Lite sẽ tiến hành đăng ký với Asterisk server . Nếu đăng ký thành công, ta có màn hình hiển thị của X-Lite như sau:

- Điện thoại IP: IP Phone AT-530, hai cổng RJ45, hỗ trợ giao thức SIP :

- Điện thoại Analog thông thường 6.2. Kế hoạch quay số Hướng gọi Gọi ra( out-going calls) Gọi vào ( in-coming calls) Nội bộ(internal) Kế hoạch quay số-cách sử dụng Bấm số “9” để chiếm trung kế gọi ra Quay số vào trực tiếp Quay số Bấm trực tiếp số Voicemail -để lại tin nhắn:nếu sau 10 hồi chuông không có người nhấc máy, có thể để lại tin nhắn sau tiếng “bip”(để kết thúc tin nhắn ,bấm
- 63 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

“#”) -truy xuất vào voice mail : quay số 9000 6.3. Một số chức năng cơ bản Stt 1 2 Chức năng Hiển thị số thuê bao chủ gọi Nhấc máy từ xa (Call pickup) Cách sử dụng

Từ máy điện thoại bất kỳ trong cùng nhóm, quay *8 để nhận cuộc gọi đang rung chuông.

3

Người gọi hay người bị gọi Quay # 700, gác máy và đến một máy điện dùng máy điện thoại khác để thoại khác quay 701, và tiếp tục cuộc đàm tiếp tục cuộc đàm thoại ( Call thoại. parking) Chuyển cuộc gọi trong khi đàm Nhấn # và số điện thoại cần chuyển. thoại (Call Transfer) Chuyển cuộc gọi( Call Forward) chuyển cuộc gọi tức thời: đăng ký : *30 số điện thoại # hủy:*31# chuyển cuộc gọi khi bận : đăng ký : *32 số điện thoại # hủy:*33# chuyển cuộc gọi khi không trả lời: đăng ký : *34 số điện thoại # hủy:*35# đăng ký : *94# hủy:*95# nhấn 1 sẽ gọi số 3005 nhấn 2 sẽ gọi số 3006

4

5

-

-

6

Từ chối nhận cuộc gọi(Do Not Disturb) Quay số tắt(Speed Dial)

-

7

6.4. Cấu hình Với mô hình, cùng với kế hoạch quay số và các chức năng cơ bản đã trình bày ở trên, chúng ta sẽ có nội dung các tập tin cấu hình như sau : 6.4.1.Cấu hình cổng FXO (card TDM01B) 6.4.1.a. Tập tin zaptel.conf fxsks=1
- 64 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

loadzone=us defaultzone=us Sau khi thiết lập cấu hình zaptel, nạp lại module cho thiết bị bằng lệnh sau : # /etc/init.d/zaptel restart 6.4.1.b. Tập tin zapata.conf [trunkgroups] ;định nghĩa các nhóm trung kế tại đây, mặc định có thể bỏ qua [channels] usecallerid=yes hidecallerid=no callwayting=no transfer=yes echocancel=yes echotraining=yes ; FXO interface context=incoming sinallinging=fxs_ks channel=1 6.4.2. Tập tin sip.conf [general] contex = default bindport=5060 bindaddr=0.0.0.0 disallow=all allow=ulaw srvlookup = yes ;khai báo các user [3003] type=friend secret=pasword_03 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3003 callgroup=1 pickupgroup=1

- 65 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

[3004] type=friend secret=pasword_04 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3004 callgroup=1 pickupgroup=1 [3005] type=friend secret=pasword_05 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3005 callgroup=1 pickupgroup=1 [3006] type=friend secret=pasword_06 qualify=yes nat=no host=dynamic canreinvite=no context=internal mailbox=3006 callgroup=1 pickupgroup=1 Chú ý : trường context=internal phải đúng với một context được định nghĩa [internal] trong tập tin extensions.conf , như thế thì các SIP Entry đó mới hoạt động được bên trong một context 6.4.3.Tập tin features.conf ( chức năng call parking) [general] parkext => 700 parkpos => 701-720 context => parkedcalls parkingtime => 25

- 66 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

Chú ý đối với tập tin này, để sự thay đổi có ảnh hưởng thì ở giao tiếp dòng lệnh Asterisk, ta dùng lệnh restart hoặc reload res_feature.so.Nếu dùng lệnh reload thì sự thay đổi trong tập tin sẽ không ảnh hưởng. 6.4.4.Tập tin voicemail.conf [general] format=wav49|gsm|wav servicemail=asterisk [default] 3003 => 1234,hai,lxhai@yahoo.com 3004 => 2134,hai,lxhai@yahoo.com 3003 => 3214,hai,lxhai@yahoo.com 3003 => 4231,hai,lxhai@yahoo.com 3003 => 1324,hai,lxhai@yahoo.com 6.4.5. Tập tin extensions.conf Đây là tập tin cấu hình quan trọng nhất, các máy điện thoại trong mô hình có thực hiện được các cuộc gọi nội bộ, gọi ra, từ mạng PSTN gọi vào và các dịch vụ có triển khai được hay không, tất cả phụ thuộc vào tập tin này. [general] static=yes writeprotect=no [incoming] exten => s,1,Dial(SIP/3003) [internal] include => parkedcalls include => tinhnang include => out-going exten => _3XXX,1,Macro(dial-voicemail,SIP/${EXTEN},20,${EXTEN}) exten => 9000,1,VoiceMailMain(${CALLERID(num)}) [out-going] exten => _9NXXXXXX,1,Dial(Zap/g1/${EXTEN:1}) exten => _9NXXXXXX,2,Congestion() exten => _9NXXXXXX,102,Congestion() [tinhnang] exten => _*30.,1,Set(FORWARD=${EXTEN:3}) exten => _*30.,2,Macro(CFIM-ON)
- 67 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

exten => *31,1,Macro(CFIM-OFF) exten => _*32.,1,Set(FORWARD=${EXTEN:3}) exten => _*32.,2,Macro(CFBS-ON) exten => *33,1,Macro(CFBS-OFF) exten => _*34.,1,Set(FORWARD=${EXTEN:3}) exten => _*34.,2,Macro(CFUN-ON) exten => *35,1,Macro(CFUN-OFF) exten => *94,1,Macro(DND-ON) exten => *95,1,Macro(DND-OFF) ;khai báo các Macro [macro-dial-voicemail] ;Voicemail khi bận và không trả lời exten => s,1,Set(DESTINATION=${ARG1}) exten => s,n,Set(temp=${DB(DND/${MACRO_EXTEN})}) exten => s,n,GotoIf($[${temp} = 1]?DND_ON:DND_OFF) exten => s,n(DND_ON),NoOp(DND -ON) exten => s,n,Busy() exten => s,n(DND_OFF),NoOp(DND -OFF) exten => s,n,Set(temp=${DB(CIFM/${MACRO_EXTEN})}) exten => s,n,GotoIf(${temp} ?CFIM_ON:CFIM_OFF) exten => s,n(CFIM_ON),NoOp(CFIM -ON) exten => s,n,Goto(CF,1) exten => s,n(CFIM_OFF),NoOp(CFIM -OFF) exten => s,n,Dial(${ARG1},25,Tt) exten => CF,1,Dial(local/${temp}${EXTEN}) exten => CF,1,Dial(SIP/${temp},25,r) exten => CF,n,Dial(iax2/${temp},20,r) exten => CF,n,Dial(zap/g0/${temp},20,r) exten => s-NOANSWER,1,Set(temp=${DB(CFUN/${MACRO_EXTEN})}) exten => s-NOANSWER,n,GotoIf(${temp} ?CFUN_ON:CFUN_OFF) exten => s-NOANSWER,n(CFUN_ON),NoOp(CFUN- ON) exten => s-NOANSWER,n,Goto(CF,1) exten => s-NOANSWER,n(CFUN_OFF),NoOp(CFUN- OFF) exten => s-NOANSWER,n,Voicemail(u${ARG2}@default) exten => s-NOANSWER,n,Hangup() exten => s-CHANUNAVAIL,1,Voicemail(u${ARG2}@default) exten => s-CHANUNAVAIL,2,Hangup()

- 68 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

exten => s-BUSY,1,Set(temp=${DB(CFBS/${MACRO_EXTEN})}) exten => s-BUSY,n,GotoIf(${temp} ?CFBS_ON:CFBS_OFF) exten => s-BUSY,n(CFBS_ON),NoOp(CFBS- ON) exten => s-BUSY,n,Goto(CF,1) exten => s-BUSY,n(CFBS_OFF),NoOp(CFBS- OFF) exten => s-BUSY,n,Voicemail(b${ARG2}@default) exten => s-BUSY,n,Hangup() exten => _s-.,1,NoOp(STATUS = ${DIALSTATUS} – Hanging up) exten =>_s-.,n,Hangup()

[macro-CFIM-ON] exten => s,1,NoOp() exten => s,n,Set(DB(CFIM/${CALLERID(num)})=${FORWARD}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() [macro-CFIM-OFF] exten => s,1,NoOp() exten => s,n,Dbdel(CFIM/${CALLERID(num)}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() [macro-CFBS-ON] exten => s,1,NoOp() exten => s,2,Set(DB(CFBS/${CALLERID(num)})=${FORWARD}) exten => s,3,Playback(beep) exten => s,4,Wait(1) exten => s,5,Hangup() [macro-CFBS-OFF] exten => s,1,NoOp() exten => s,n,Dbdel(CFBS/${CALLERID(num)}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() [macro-CFUN-ON] exten => s,1,NoOp() exten => s,n,Set(DB(CFUN/${CALLERID(num)})=${FORWARD}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup()

- 69 -

http://my.opera.com/asteriskvn- CHƯƠNGVI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN

[macro-CFUN-OFF] exten => s,1,NoOp() exten => s,2,Dbdel(CFUN/${CALLERID(num)}) exten => s,3,Playback(beep) exten => s,4,Wait(1) exten => s,5,Hangup() [macro-DND-ON] exten => s,1,NoOp() exten => s,2,Set(DB(DND/${CALLERID(num)})=1}) exten => s,3,Playback(beep) exten => s,4,Wait(1) exten => s,5,Hangup() [macro-DND-OFF] exten => s,1,NoOp() exten => s,n,Dbdel(DND/${CALLERID(num)}) exten => s,n,Playback(beep) exten => s,n,Wait(1) exten => s,n,Hangup() 6.5.Một số kết quả thực hiện -Bên ngoài gọi vào PBX (quay số của đường dây kết nối cổng FXO) sẽ đổ chuông máy 3003 . -Bên trong thuê bao bấm số 9 sẽ chiếm trung kế gọi ra, rồi tiếp tục quay số của mạng PSTN. -Các thuê bao nội bộ quay số trực tiếp để liên lạc với nhau -Các dịch vụ: +DND (từ chối nhận cuộc gọi): ví dụ khi thuê bao 3004 quay *94# để đăng ký dịch vụ DND, thì tất cả các thuê bao khác khi gọi số 3004 đều nghe tone bận. Để hủy dịch vụ này, thuê bao 3004 quay *95# +Call parking: ví dụ thuê bao 3005 gọi thuê bao 3006 và thuê bao 3006 nhấc máy đàm thoại, nếu thuê bao 3005 không muốn dùng điện thoại 3005 để tiếp tục đàm thoại mà muốn dùng điện thoại 3004, thì thuê bao 3005 nhấn # và tiếp theo là 700, gác máy rồi đi đến điện thoại 3004 quay số 701, thì sẽ tiếp tục đàm thoại với thuê bao 3006(trong thời gian thuê bao 3005 di chuyển đến điện thoại 3004 thì thuê bao 3006 sẽ nghe được nhạc chờ). … Tất cả kịch bản cuộc gọi trong phần 6.3 và các dịch vụ trong phần 6.4 đã test và cho kết quả tốt.

- 70 -

http://my.opera.com/asteriskvn - KẾT LUẬN

KẾT LUẬN Truyền thoại qua IP (VoIP) là công nghệ đã và đang phát triển mạnh mẽ . Cùng với sự phát triển của hạ tầng chuyển mạch gói, IP-PBX sẽ dần dần thay thế cho các PBX chuyển mạch kênh truyền thống .Yếu tố cơ bản nhất tạo ra sự thay đổi này chính là bắt nguồn từ bản chất mềm dẻo và hiệu suất của chuyển mạch gói nói chung và chuyển mạch IP nói riêng . Công nghệ 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 dây tương tự (Analog) hay số (Digital) .Chỉ với một số thiết bị phần cứng đơn giản, kết hợp với phần mềm mã nguồn mở Asterisk, chúng ta có thể xây dựng nên một hệ thống IP-BPX hoàn chỉnh với đầy đủ các tính năng. Ngoài các dịch vụ truyền thống và các dịch vụ tiên tiến cho IP-PBX, Asterisk có thể mở rộng thêm các chức năng khác như IVR với chức năng Text To Speech , lấy dữ liệu động từ database và phát thành lời nói (ứn g dụng trong ngân hàng, đặt chổ trong hàng không, tra điểm thi …),Voicemail, ghi âm cuộc gọi, định tuyến cuộc gọi theo phí thấp nhất bầng cách đăng ký với các SIP Provider như : Vietvoice,OCI, …để tạo các cuộc gọi quốc tế giá rẻ, do được phát triển bằng phần mềm nên IP-PBX Asterisk dễ dàng tích hợp được với các hệ thống quản lí khách hàng CRM (Customer Relationship Management) với các chức năng Click to talk, lưu giữ thông tin khách hàng gọi vào, là môi trường cơ sở để xây dựng nên các trung tâm cuộc gọi (Call Center) hay các trung tâm liên lạc (Contact center),…

- 72 -

http://my.opera.com/asteriskvn PHỤ LỤC

PHỤ LỤC Thư viện cú pháp lệnh và biến trong Asterisk 1. Các lệnh tổng quát: Stt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Cú pháp add extension debug channel help no debug channel pri debug span Tác dụng Thêm một extension vào ngữ cảnh Mở Debug cho channel Hiển thị danh sách các dòng lệnh Tắt debug cho một channel Bật chế độ debug cho một span(đối với kết nối E1) pri no debug span Tắt chế độ debug cho một span(đối với kết nối E1) show agents Hiển thị trạng thái các agent show applications Hiển thị các ứng dụng đang đăng ký show channel Hiển thị các thông tin về một kênh cụ thể show channels Hiển thị thông tin về các kênh show codecs Hiển thị các codec được hổ trợ show conferences Hiển thị trạng thái các phòng hội thoại show dialplan Hiển thị thông tin Dialplan show manager Hiển thị các cú pháp lệnh về quản lí command show manager connect Hiển thị các user quản lí đang đăng ký show parkedcalls Hiển thị danh sách các parked call show queues Hiển thị thông tin các hàng đợi show voicemail users Danh sách các hộp thư thoại được tạo show voicemail zones Danh sách các định dạng bản tin zone shoft hangup Yêu cầu hangup 1 kênh thoại cụ thể nào đó

2.Cú pháp lệnh tương tác với Database stt 1 2 3 4 5 Cú pháp database del database deltree database get database put database show Tác dụng Xóa một giá trị/khóa trong database Xóa các giá trị/cây khóa trong database Lấy dữ liệu từ database Lưu dữ liệu vào database Hiển thị nội dung database

- 74 -

http://my.opera.com/asteriskvn PHỤ LỤC

3. Cú pháp dòng lệnh liên quan đến kênh IAX Stt 1 2 3 4 5 6 7 8 Cú pháp iax2 debug iax2 no debug iax2 show cache iax2 show channel iax2 show peers iax2 show registry iax2 show users iax set jitter Tác dụng Debug kênh iax Tắt debug kênh iax Hiển thị các thông tin cache của kênh iax Hiển thị thông tin các kênh iax Hiển thị trạng thái các kết nối iax Hiển thị tình trạng đăng ký của các kết nối Hiển thị danh sách các user iax đã được tạo Thiết lập bộ đệm cho iax

4. Cú pháp lệnh liên quan đến kênh SIP: Stt 1 2 3 4 5 6 7 Cú pháp sip debug sip no debug sip reload sip show channels sip show peers sip show registry sip show users Tác dụng Bật debug kênh sip Tắt debug kênh sip Tải lại các thông tin cấu hình sip Hiển thị danh sách các kênh sip Hiển thị danh sách các tài khoản sip đã được tạo Hiển thị trạng thái đăng ký của các tài khoản sip Hiển thị danh sách tất các tài khoản sip đã được tạo

5.Cú pháp lệnh liên quan đến quản trị hệ thống: Stt 1 2 3 4 5 6 7 8 9 10 11 Cú pháp restart gracefully restart now restart when convenient reload stop gracefully stop now stop when convenient extensions reload show modules show uptime show version Tác dụng Khới động lại hệ thống ở chế độ cẩn thận (khi không còn cuộc gọi nào đang xử lý) Khởi động hệ thống ngay lập tức Khởi động lại hệ thống khi thuận tiện (khi ít người gọi) Tải lại asterisk Tắt Asterisk một cách cẩn trọng Tắt Asterisk ngay lập tức Tắt asterisk khi thuận tiện Tải lại các thông tin cấu hình extension Hiển thị các modules đã được cấu hình Hiển thị thời gian uptime của hệ thống Hiển thị phiên bản các phần mềm hệ thống
- 75 -

http://my.opera.com/asteriskvn PHỤ LỤC

6.Các biến định nghĩa trong Asterisk: Stt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Biến ${ACCOUNTCODE} ${CALLERID} ${CALLERIDNAME} ${CALLERIDNUM} ${CHANNEL} ${CONTEX} ${DATETIME} ${DNID} ${ENUM} ${EXTEN} ${ENV(VAR)} ${HANGUPCAUSE} ${INVALID_EXTEN} ${LANGUAGE} ${LEN(VAR)} ${MEETMESECS} ${PRIORITY} ${TIMESTAMP} ${TXTCIDNAME} ${UNIQUEID} ${SIPUSERAGENT} Chú thích Mã tài khoản Caller ID Chỉ tên của phần caller ID Chỉ số của phần Caller ID Tên của kênh hiện tại Ngữ cảnh hiện tại Ngày giờ hiện tại theo định dạng:YYYY-MM-DDHH:MM:SS Nhận dạng số đã quay Chứa kết quả của ứng dụng EnumLookup Extension hiện tại Biến môi trường dạng (VAR) Nguyên nhân hangup cuộc gọi Extension được gọi không phù hợp Ngôn ngữ hiện tại Chiều dài của chuỗi Thời gian(giây) của một user ở trong phòng hội thoại Thứ tự ưu tiên Ngày giờ hiện tại,Định dạng:YYYYMMDDHHMMSS Chứa kết quả của ứng dụng TXTCIDName Khóa nhận dạng cuộc gọi hiện tại Các agent SIP

- 76 -

http://my.opera.com/asteriskvn - TÀI LIỆU THAM KHẢO

TÀI LIỆU THAM KHẢO [1] Building Telephony Systems with Asterisk, David Gomillion & Barrie Dempster, 2006, PACKT. [2] Asterisk : The Future of Telephony , Leif Madsen, Jared Smith & Jim Van Meggelen, 2005,O’Reilly. [3] Asterisk Hacking, Benjamin Jackson & Champ Clark III,2007,Syngress. [4] http://www.asterisk.org [5] http://www.digium.com [6] http://www.voip-info/wiki-asterisk [7] http://www.asteriskguru.com [8] http://www.vfonex.com [9] http://my.opera.com/asteriskvn

http://my.opera.com/asteriskvn

- 77 -