• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sach asterisk tieng viet full
 

Sach asterisk tieng viet full

on

  • 5,169 views

 

Statistics

Views

Total Views
5,169
Views on SlideShare
5,157
Embed Views
12

Actions

Likes
5
Downloads
467
Comments
0

1 Embed 12

https://www.facebook.com 12

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Sach asterisk tieng viet full Sach asterisk tieng viet full Document Transcript

    • http://my.opera.com/asteriskvn MỤC LỤCMỤC LỤC CÁC HÌNH……………………………………………………………………….. iiiCÁC TỪ VIẾT TẮT…………………………………………………………………………... ivCHƯƠNG I: TỔNG QUAN VỀ ASTERISK …………………………………………… 11.1 Giới thiệu về mã nguồn mở Asterisk……………………………………………….... 11.2 Kiến trúc Asterisk……………………………………………………………………. 41.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………………………………………………. 11CHƯƠNG II: CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK………………….. 122.1 Giới thiệu…………………………………………………………………………….. 122.2 VoIP-Voice over Internet Protocal…………………………………………………… 122.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……………………………………………………... 142.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…………………………………………………... 162.5 Asterisk server………………………………………………………………………... 172.6 Thiết bị VoIP…………………………………………………………………………. 17 2.6.1 VoIP phone……………………………………………………………………... 17 2.6.2 Softphone……………………………………………………………………….. 182.7 Card giao tiếp với PSTN……………………………………………………………... 192.8 ATA………………………………………………………………………………….. 202.9 Codecs………………………………………………………………………………... 202.10 QoS-Quality of Service……………………………………………………………... 20 2.10.1 Độ trễ………………………………………………………………………….. 21 2.10.2 Độ trượt……………………………………………………………………….. 21CHƯƠNG III: CÁC MÔ HÌNH ỨNG DỤNG MÃ NGUỒN MỞ……………………… 233.1 Tổng đài VoIP –PBX………………………………………………………………… 233.2 Kết nối IP-PBX với PBX…………………………………………………………….. 24 i
    • http://my.opera.com/asteriskvn3.3 Kết nối giữa các server Asterisk……………………………………………………... 253.4 Các ứng dụng IVR, Voice Mail, Điện thoại hội nghị………………………………... 263.5 Chức năng phân phối cuộc gọi tự động……………………………………………… 27CHƯƠNG IV: CÁC DỊCH VỤ CƠ BẢN CỦA ASTERSIK…………………………… 284.1 Conference…………………………………………………………………………… 284.2 Voicemail…………………………………………………………………………….. 284.3 Call Forwarding……………………………………………………………………… 284.4 Call ID……………………………………………………………………………….. 294.5 Automated Attendant………………………………………………………………… 294.6 Time and Day………………………………………………………………………… 294.7 Call Pickup…………………………………………………………………………… 294.8 Call Parking………………………………………………………………………….. 294.9 Privacy Manager……………………………………………………………………... 304.10 Call Detail Records…………………………………………………………………. 304.11 Call Recoding………………………………………………………………………. 304.12 Blacklist…………………………………………………………………………….. 304.13 User permission to/international call……………………………………………….. 30CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX…………………………………………. 315.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……………………………………………………….. 365.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/asteriskvn5.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)………………………. 59CHƯƠNG VI: THI CÔNG HỆ THỐNG IP-PBX CƠ BẢN……………………………. 616.1 Các thiết bị và phần mềm sử dụng trong mô hình…………………………………… 616.2Kế hoạch quay số……………………………………………………………………. 646.3 Một số chức năng cơ bản……………………………………………………………. 656.4 Cấu hình ……………………………………………………………………………... 656.5 Một số kết quả thực hiện…………………………………………………………….. 71KẾT LUẬN……………………………………………………………………………… 72PHỤ 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…………………………………………….. 76TÀI LIỆU THAM KHẢO……………………………………………………………….. 77 MỤC LỤC CÁC HÌNHHình 1-1: Sơ đồ tổng quát……………………………………………………………….. 3Hình 1-2: Kiến trúc Asterisk ……………………………………………………………. 4Hình 1-3: Liên lạc giữa các Extension ………………………………………………….. 7Hình 1-4: Liên lạc giữa các văn phòng qua Internet ……………………………………. 10Hình 2-1: FXO và FXS………………………………………………………………….. 13Hình 2-2: Đăng ký từ Client đến SIP proxy……………………………………………... 15Hình 2-3: Minh họa hoạt động của NAT………………………………………………… 16Hình 2-4: Điện thoại VoIP……………………………………………………………….. 18Hình 2-5: Điện thoại Softphne …………………………………………………………... 19Hình 2-6: Card TDM22B………………………………………………………………… 19Hình 2-7: Thiết bị ATA………………………………………………………………….. 20Hình 2-8: Nguyên nhân xảy ra trượt…………………………………………………….. 22Hình 3-1: IP-PBX………………………………………………………………………... 23Hình 3-2: Kết nối IP-PBX với PBX……………………………………………………… 24Hình 3-3: Kết nối giữa các server Asterisk………………………………………………. 25Hình 3-4:Triển khai server IVR, VoiceMail, Hội Thoại………………………………… 26Hình 3-5: Phân phối cuộc gọi với hàng đợi…………………………………………….... 27Hình 6-1: Mô hình IP-PBX cơ bản……………………………………………………… 61 iii
    • http://my.opera.com/asteriskvn CÁC TỪ VIẾT TẮTACD Automatic Call DistributionADPCM Adaptive Differential Pulse code ModulationAGI Asterisk Gateway InterfaceAMP Asterisk Management PlatformAPI Application Programming InterfaceATA Analog Terminal AdaptorCDR Call Detail RecordCGI Control Gate InterfaceCODEC COder/DECoderCRM Customer Relationship ManagementFTP File Transfer ProtocolFXO Foreign Exchange OfficeFXS Foreign Exchange StationHTTP Hypertext Transfer ProtocolIAX Inter Asterisk eXchangeIETF Internet Engineering Task ForceITU International Telecommunication UnionIVR Interactive Voice ResponseMAN Metropolitan Area NetworkMGCP Media Gateway Control ProtocolNAT Network Address TranslatorPOTS Plain Old Telephone ServicePRI Primary Rate ISDNQoS Quality of ServiceRADIUS Remote Authentication Dial In User ServiceRTP Real Time Transport ProtocolSCCP Cisco® Sking®SER SIP Express RouteSIP Session Initiation ProtocolSMTP Simple Mail Transfer ProtocolWAV Waveform Audio iv
    • http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK CHƯƠNG I: TỔNG QUAN VỀ ASTERISK1.1 Giới thiệu về mã nguồn mở AsteriskAsterisk 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épcá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áchệ 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ứcVoIP 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ạngPSTN. Tên Asterisk có nguồn gốc từ ký tự * được dùng trong Unix và Linux, thể hiệncho 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ônngữ 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ậtmáy tính tại đại học Auburn ở Alabama(Mỹ), Mark Spencer đã thành lập công ty cungcấp dịch vụ hỗ trợ người dùng Linux qua điện thoại .Để tiết kiệm chi phí, thay vì muatổ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ăngtổ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 Linuxthà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ốngAsterisk đã được cài đặt thành công trên khắp thế giới .Công nghệ Asterisk đang phụcvụ 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ầncứ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ớinỗ 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ìnhmộ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ồidà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ùybiế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ếtkế 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 trongnhững “điểm son”của Asterisk là quản lí extension .Từng bước của cuộc gọi được địnhnghĩa như là một ứng 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Ề ASTERISKtrê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 ở 2kênh (có thể nối đến 2 máy điện thoại : 1 analog và 1 digital) trước khi chuyển cuộcgọ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 ứngdụ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áccô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òngban 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ựchiệ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ạngPSTN 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 RelationshipManagement) và hệ thống Outlook làm cho khả năng ứng dụng của Asterisk linh hoạthơ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à MicrosoftWindows. -2-
    • http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK Hình 1-1: Sơ đồ tổng quátAsterisk là hệ thống chuyển mạch tích hợp, vừa là công nghệ truyền thống TDM vừalà 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 .Giaotiế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 racò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ệnthoạ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 chiphí 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ùngxa 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Ề ASTERISK1.2 Kiến trúc Asterisk Hình 1-2: Kiến trúc AsteriskVề 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ácgiao 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ểnmạch cuộc gọi. Khi khởi động hệ thống Asterisk thì chức năng Dynamic ModuleLoader 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Ề ASTERISKSau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sànghoạ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ạchquay 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ướngcuộ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 đượcphá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ếpkhá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ệtcủ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 đườngdâ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ọivà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ộcgọ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ựachọ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 nhaunhư G723, GSM, MP3, ADPCM… -5-
    • http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISKAsterisk Chanel API: Giao tiếp với các kênh liên lạc khác nhau, đây là đầu mối choviệ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ạngkhác nhau như MP3, WAV, GSM…, đem đến sự linh hoạt cho các ứng dụng trên nềnAsterisk 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ốngAsterisk 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ộtsố 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ấtlớn.1.3 Một số tính năng cơ bản1.3.1 Asterisk là một PBXAsterisk 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àythườ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 chomỗ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àycó 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 ExtensionTrong hình vẽ, mỗi extension có thể kết nối đến bất kỳ extension khác bằng cách quaysố 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 đếnmộ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, đườngtrung 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ạinà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ưngcũ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ếtnố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 FeaturesAsterisk 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ôngty điện thoại (telco) nào, Asterisk hỗ trợ gởi và nhận Caller ID, và ngay cả cho phépchú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ớiPSTN 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Ề ASTERISKAsterisk 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 địnhtuyến dựa trên cơ sở đó. Nếu thông tin đầy đủ không được cung cấp bởi nhà cung cấpkế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ệnthoạ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 voicemailbox, hoặc ngay cả một nhóm agent telephone mà có thể chuyển từ điện thoại đến điệnthoại. Chúng 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áchhiệ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ốtnhấ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ầncứng chúng ta sử dụng .1.3.2 Asterisk là một hệ thống IVRIVR (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 takhả 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 chophé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ảntin đã đượ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àikhoả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ườngnghe 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àiphiê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 VoicemailAterisk là một hệ thống Voicemail bao gồm các chức năng đầy đủ.Hệ thống Voicemailcó 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ậycá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ựachọ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èmbản tin audio. -8-
    • http://my.opera.com/asteriskvn - CHƯƠNG I: TỔNG QUAN VỀ ASTERISK1.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ộcgọ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áccô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 VoIPcho 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ấtcả, 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ớnnhất thu được là giảm gánh nặng quản lí cho các nhân viên IT (InformationTechnology) .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úngta, 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ềnquả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ờigian 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 độcquyề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 theochiề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 VoIPchú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ácnhau. 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ệnthoạ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 đượcyê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àythườ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ếtnố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Ề ASTERISKNhư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 tacó 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ĩalà 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ănphòng đến văn phòng thì được gởi (tunnel) qua Internet.Sự tiết kiệm có được bởi tránhcá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 InternetMộ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ántà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íchhợ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ốcgia.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ể địnhtuyế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ănphò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ắcchắ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ủachú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ưamở 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Ề ASTERISK1.3.5 Asterisk không là một SIP ProxyAsterisk 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ếtnố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 ứngtố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ụngcho các sự đăng ký.Một proxy được sử dụng phổ biến là SER (SIP ExpressRouter).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 ASTERISK2.1 Giới thiệuTrong 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ốngAsterisk, 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 ProtocolVoIP 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 đượcquan 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ềnthố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 baogồ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ếucầ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 đúngthứ 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ạiPSTN 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 tintrong 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ăngthông không cố định có nghĩa là có thể thay đổi tốc độ truyền, kỹ thuật chuyển mạchgó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ỗigó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ênthì 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 TDM2.3.1 FXO và FXSFXO (Foreign Exchange Office) là thiết bị nhận tín hiệu từ tổng đài gửi đến như dòngchuô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 ASTERISKFXO 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ếtbị FXS sẽ cung cấp tín hiệu mời quay số (dialtone), dòng chuông, hồi âm chuông (ringtone).Trong đường dây Analog, FXS cung cấp dòng chuông và điện áp cho điện thoạihoạt động. Ví dụ FXS cung cấp điện áp -48V DC đến máy điện thoại Analog trongsuố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ừalà thiết bị FXS (giống bộ ATA), FXO để kết nối với đường dây điện thoại, còn FXSdù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ộcgọi TDM qua hệ thống Astesisk (sẽ được phân tích thêm trong phần cấu hình cho kênhTDM)Với card giao tiếp Digium FXS, một Asterisk server có thể điều khiển các máy điệnthoại Analog nội bộ . FXO và các board mạch giao tiếp T-carrier từ Digium có thể kếtnố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ệnthoạ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ếtnố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ệnthoại vai trò FXO .2.3.2 Báo hiệu Analog giữa đầu cuối và tổng đàiKhi 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 ASTERISKhiệ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ạngthá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ếtnố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ệunhưKoolstart, Loop Start, Ground Start. Một minh họa cho việc sử dụng sai phương thứcbá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ệugá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ựchiện cuộc gọi mới .2.3.3 Báo hiệu giữa các tổng đàiSS7 –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ệusử 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áohiệ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ó haimạ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 VoIP2.4.1 H.323H.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ạnggó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 đàichuyể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(IPTelephony), hay thoại và hình ảnh (Video Telephony), hay thoại và dữ liệu, hay baogồ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 đaphương tiện-đa điểm (Multipoint - Multimedia) . H.323 cung cấp các dịch vụ gia tăngvà 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ịchvụ cung cấp.2.4.2 SIP- Session Initiation ProtocolSIP là giao thức Internet dành cho báo hiệu VoIP được phát triển bởi IETF, cung cấpvà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ănggiố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ứcSIP 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ọilà 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ầnthiết lập mặc định của Astersik (SIP được hỗ trợ trong Asterisk với modulechan_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ínhnă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 ASTERISKCú 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ếptheo 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ầncấu hình Asterisk) .2.4.3 Proxy serverMặ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ưngtrong 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 đăngký đế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à NATCá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à đượcchuyể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ọithô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ạngLAN 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 ASTERISKgặ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 NATTrong giao thức RTP như chúng ta đã biết đó là thoại được chuyển trên hai đườngkhác nhau là đường phát và đường thu, vấn đề NAT nằm ở chổ tín hiệu thoại từ bênngoà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 đàmthoạ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áccuộ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=yestrong cấu hình kênh giao thức SIP.2.4.5 IAX-Inter Asterisk eXchangeIAX 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ạnchế 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 NATmộ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ệcgian 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 ASTERISKIAX 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 (trongAsterisk, IAX được hỗ trợ bởi module chan_iax2.so) .Kể từ khi mã nguồn (sourcecode) đượ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ủaAsterisk .IAX hỗ trợ trung kế cho các cuộc gọi (trunking of call) . Điều này có nghĩa là nhiềucuộ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ủanhiề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 IAXversion1 .2.5 Asterisk serverAsterisk 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.1và đả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ụ DigiumT1, 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 Số lượng các kênh Cấu hình tối thiểuThử nghiệm, học tập 1- 5 400-MHz x86, 256 MB RAMHệ thống cho văn phòng 5-10 1-GHz x86, 512MB RAMhoặc nhà riêngHệ thống cho doanh nghiệp Tới 15 3-GHz x86, 1GB RAMnhỏHệ thống thương mại cỡ Hơn 15 Dual CPUs, hay cũng có thể làvừa và lớn nhiều server trong một cấu trúc phân tán.2.6 Thiết bị VoIP2.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ànthô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ưới100$/một cái . Hình 2-4: Máy điện thoại VoIP2.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àitrê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ốngnhư 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àiphút.Cần lưu ý khi sử dụng Softphone là máy tính phải có card âm thanh, headphonevà 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ặcmộ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áytính. Softphone thì không đắt (thường là free) và các “USB phone” thường có giá thấphơn 50$Sử dụng Softphone với hệ thống Asterisk nên dùng Softphone với công nghệ giao thứcmớ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 Softphone2.7 Card giao tiếp với PSTNMuố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ệncuộ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ânphố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 portFXO. 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 ASTERISK2.8 ATA- Analog Telephone AdaptorsATA 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ếtbị ATA gồm có hai loại port: RJ-11 để kết nối với máy điện thoại Analog thôngthườ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 chomạng VoIP, để tận dụng máy điện thoại Analog nên trang bị thiết bị ATA thay vì phảitrang 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 đượcsử dụng rộng rãi với Asterisk có tên gọi là IAXy . Hình 2-7: Thiết bị ATA2.9 CodecsCodecs đượ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ệuDigital 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ấtvà tiết kiệm băng thông nhấtG729 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 ServiceCá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 ASTERISK2.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ệuthoạ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ớimạng điện thoại truyền thống (mạng PSTN) khoảng từ 50 ms đến 70 ms.Theo khuyếnnghị của ITU-T, để đảm bảo chất lượng thoại cho hệ thống VoIP thì độ trễ từ đầu pháttới đầu thu hoặc ngược lại không được vượt quá 150 ms, khi mà độ trễ vượt quá 400ms đế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ượtNguyê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 đíchsẽ 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ớinhững khoảng trễ khác nhau. Đây là tính không đồng nhất của trễ .Một nguyên nhânkhá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ờigian 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 giankhá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íchthướ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ượngthoạ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Ở ASTERISKAsterisk 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ầuthự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 PBXcho 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 chiphí đá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Ở ASTERISK3.2. Kết nối IP- PBX với PBX Hình 3-2: Kết nối IP- PBX với PBXMộ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ầntrang 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à VoIPkhá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Ở ASTERISK3.3. Kết nối giữa các server Asterisk Hình 3-3: Kết nối giữa các server AsteriskPhươ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ácchi 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 nhausẽ 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Ở ASTERISK3.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ểnkhai 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.Ứngdụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống như chức nănghộ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Ở ASTERISK3.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 đợiACD (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ưngvớ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 Asteriskcung 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ộcgọ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ễnthô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 ASTERISKAsterisk có một số tính năng cơ bản đã được giới thiệu ở chương một. Trong phần nàysẽ 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ăngcủ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ộtnộ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ọichỉ đượ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 thamdự 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ệnthoại được khai báo trong hệ thống Asterisk cho phép khai báo thêm chức năng hộpthư 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 đếnhộ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ácnhậ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áccuộ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 chophé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 ASTERISKMộ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ộcgọ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 địnhtrướ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 đếncó 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 đếnmộ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ặpphòng kỷ thuật …” sau đó tùy vào sự tương tác của thuê bao gọi đến, hệ thốngAstreisk 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 DateVà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ứcnă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ụngmá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épgọ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ànlà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ộcgọi .4.8.Call ParkingBạ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ệpkhá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 ASTERISKthoạ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ạitrung gian) . Đồng nghiệp của bạn sau đó sẽ pickup-nhận, cuộc gọi từ Park place .4.9.Privacy ManagerKhi một người chủ doanh nghiệp triển khai Asterisk cho hệ thống điện thoại của côngty 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ớibạ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 RecordsAsterisk 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 tinnà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ứuhiệ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ốngAsterisk.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 RecordingAsterisk đưa đến cho chúng ta khả năng để ghi âm các cuộc gọi. Tính năng này đượcsử 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ủakhá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.BlacklistBlacklist 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 trongtình trạng hay bị quấy rối điện thoại)4.13.User permission to/international callChú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ínhnă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-PBXTrong 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ểucá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ácgói phần mềm phụ thuộc phải có trong hệ điều hành Linux trước khi cài đặt Asterisklà:- 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.gzTiế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 installSau 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ớiphiê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.orgDownload 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-PBXViệc download nhanh hay chậm tùy vào tốc độ đường truyền internet, sau khidownload 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.gzChú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” đượcbiê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óilibpri, sau cùng là gói asterisk.5.1.1. Cài đặt ZaptelGó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 installCá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ụngphầ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à Asteriskphụ 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 configLệnh này tạo ra một script chèn module Zaptel vào kernel và chạy ztconfig khi bootmáy tính. - 32 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX5.1.2. Cài đặt libpriKế đến chúng ta biên dịch và cài đặt gói libpri được chứa tại thư mục /usr/src/libpri-1.x.x bằng các lệnh sau:#cd /usr/src/libpri-1.x.x#make clean#make#make installQuá 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ắclệ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úngta cũng nên cài đặt nó.5.1.3. Cài đặt AsteriskBâ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 installSau 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ẫubằ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 configLệ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ìnhmẫu ở thư mục /etc/asteriskCá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ị Analoghay 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-PBXagents.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épchú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ôngthay đổ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 thitừ đ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ầuhế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 choAsterisk 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ệuODBC để 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ệuPostgreSQL để 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ộtsố 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 độngcủ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âuvề 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ồnmở 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ạiindications.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ủahệ 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-PBXthanh để 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 tacũ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ácmodem lựa chọn với Astersik. Chú ý rằng không nhiều các modem được hổ trợ bởiAsterisk, 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) chongườ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úcbằ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ìnhhệ 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ậpcá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ềutrong 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-PBXtelecordia-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ạiZapata.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ứngcủa Digium cho phép chúng ta liên lạc với PSTN .5.1.4. Cài đặt Asterisk-addonsTa dùng các lệnh sau để cài đặt Asterisk-Addons:#cd /usr/src/asterisk-addons-1.x.x#./configure#make#make installSau 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 Asteriskvới các tham số mặc định. Có nhiều cách để khởi động Asterisk, nhưng cách đơn giảnnhấ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>exitCấ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ácnhau 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 tincấ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ậptin zaptel.conf được đặt tại thư mục /etc/ .Phần cứng Zaptel đầu tiên được phát triểnbởi Jim Dixon thuộc nhóm điện thoại Zapata( Zapata Telephony Group) để giao tiếpgiữ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-PBXnạp module thì phải biết chắc module đó không ảnh hưởng đến hoạt động củaAsterisk, 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ụcchứ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épchú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 ratì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áctrê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ácvoicemail đều được chứa trong thư mục voicemail/. Một hộp thư thoại được tạo ra ứngvới một máy nội bộ trong tập tin voicemail.conf, sẽ được tạo ra một thư mục contươ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 logkhá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ôngtin 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ếtcuộc gọi cho máy đó.5.2. Cấu hình hệ thốngSau 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ấtphầ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ùngcard zapata TDM04B của Digium. (Thông tin về card, có thể tham khảo tạihttp://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-PBXCấ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/asterisk5.2.1.a. zaptel.confNhư đã biết tập tin zaptel.conf nằm ở thư mục /etc. Chúng ta có thể chỉnh sửa tập tinnà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 tinnà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 startHoặ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 –vvvCó 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 choZaptel 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ậptin zaptel.conf có thể chứa đựng:loadzone = usdefaultzone = usTiế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 choAsterisk 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 tacầ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úngta 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,4loadzone = us - 39 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBXdefaultzone = usVớ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áohiệ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ặccá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áohiệ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 –vvvZT_CHANCONFIG failed on channel 1: invalid argument (22)Did you forget that FXS interfaces are configured with FXO signalling and thatFXO 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úngta 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ồngISDN 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ổngthứ 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 ISDNgắ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ặccó 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 chipsettrên card. Đồng bộ ngoài là khi xung đồng bộ được lấy từ đường dây PRI do đầu xagởi tới .Tham số timing trong định nghĩa span trong tập tin zaptel.conf sẽ quyết địnglự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ạoxung đồ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ôngsố 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.confChú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 tinzapata.confTập tin cấu hình này được đọc bởi Asterisk . Do đó để cập nhật sự thay đổi trong tậptin này, chúng ta dùng lệnh reload ở giao diện console của Asterisk . Zaptel không cầnphả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ảnhnà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ùychọ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âyra 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ụngchọ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 dưới dạng ANI (Automatic NumberIdentification)• 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ímchứ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ĩamứ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 khicuộc gọi hoàn toàn là TDM (Time Division Multiplexing) .Thông thường là không cầnthiế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 quaviệ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ệcquả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ậntrướ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áctrườ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 địnhnghĩ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áotrong 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=25.2.2. Giao diện SIPGiao thức khởi tạo phiên (Session Initiation Protocal-SIP), là một trong các chuẩn giaothứ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ấtnơ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úngta 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 tacó 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 âmthanh 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ấtkỳ. 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ụngtrong 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 đượcnhấ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ếuRTP 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 serverAstersik. Đ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 giaothứ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 chocá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-PBXlập disalow=all để vô hiệu tất cả các codec. Sau đó thêm từng codec bằng cách dùngallow=codec.Ví dụ để chỉ cho phép sử dụng codec g.723 và ulaw, ta dùng : disallow=all allow=g723 allow=ulawChú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 taphả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ácthự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ộtmailbox 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ạng tháiunreachale) đượ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ứngchú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ếtlậ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ủa192.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-PBXSau đâ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ộcgọ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=company1235.2.3. Giao tiếp IAXTấ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ũnggiố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 IAXtrong 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ếtlậ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áccodec 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 20ms 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ếuusername 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ácphươ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ầntext.Sau đây là một ví dụ: Giả sử chúng ta có một user với số extension là 2000 và cáctham số tổng quát trong [general] đã được định nghĩa thì các khai báo trong tập tiniax.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.05.2.4. Hộp thư thoại (Voicemail)5.2.4.a. Giới thiệuAsterisk cung cấp khả năng xây dựng ứng dụng Voicemail, với khả năng này giúp chongườ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ăngcủ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ấtnhiê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 voicemailSau đâ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ủahọ.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ắcuser đư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ệuTí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ố ứngdụng tiêu biểu như trong khi giử máy để gặp người khác, thuê bao có thể nghe âmnhạ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 âmnhạ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 MOHChép toàn bộ tập tin nhạc vào thư mục mặt định /var/lib/asterisk/mohmp3 .Sau đó khaibá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=yesNếu random=no thì tất cả các tập tin âm thanh trong thư mục mohmp3 sẽ thự hiện theothứ 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 khicấ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êntrong 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ậptin â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ệuHà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ịchvụ 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ấungoặc vuông “[]”.Đây cũng là số để các extension khác có thể truy cập vào queuethô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ờ tronghà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_classTiế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úpphá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 agenttrả 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âulệnh: announce= <tên_file> - 51 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBXBâ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ảilàm.Ví dụ nếu thiết lập chức năng ringall cho hàng đợi, ta dùng: strategy = ringallKhi đó,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 tronghà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ôngtrướ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ờigian 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=15Bâ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ếttấ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=0Tiế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ếuchú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=0Cuố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_numberTrong đó, extension_number là các số của agent mà ta đã định nghĩa trong tập tinagents.confVà 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ệuChứ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ọingười cùng gọi đến để đàm thoại gọi là phòng hội thoại . Asterisk cho phép tạo ranhiề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ềnthố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ớiAsterisk là miễn phí . - 52 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX5.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 Chức năng số m Người tham gia hội thoại chỉ nghe, không được nói chuyện . t Người hội thoại chỉ nói không được nghe . i Phát thông báo có người kết nối hay rời khỏi phòng p 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 X 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. d Thêm động vào phòng hội thoại không cần thiết lập số pin D Thêm động vào phòng hội thoại phải cần thiết lập số pin e Chọn phòng hội thoại trống đầu tiên E Chọn phòng hội thoại trống đầu tiên không cần số pin v 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ẽ r đượ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 q phòng hội thoại ) M Cho phép Music On Hold khi phòng chỉ có một cuộc gọi. x Đóng phòng hội thoại khi user chủ trì đã thoát phòng hội thoại. w Đợ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}, b script mặc định là conf-background.agi s Vào menu(user and administrator) khi nhấn phím * A Thiết lập chế độ Admin - 54 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBX Luôn luôn hỏi số Pin ngay cả đã chỉ định trong đối số hàm ứng dụng P meetme()Các biến sử dụng trong hàm ứng dụng MeetMe() Cú pháp Chức năng${MEETME_RECORDINGFILE} Tập tin thu âm cuộc hội thoại(option ‘r’)${MEETME_RECORDINGFORMAT} Định dạng tập tin thu âm (gsm,wav,…)${MEETME_EXIT_CONTEXT} Ngữ cảnh thoát ra từ phòng hội thoại${MEETME_AGI_BACKGRUOND} AGI script${MEETMESECS} Số giây thuê bao trong phòng hội thoại5.3.Tạo kế hoạch quay số(Dialplan) cho hệ thống5.3.1. Giới thiệuKế hoạch quay số là trái tim của hệ thống Asterisk. Kế hoạch quay số cho biết cáccuộc gọi sẽ được xử lý như thế nào qua hệ thống Asterisk . Kế hoạch quay số bao gồmtậ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ảithự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ốngAsterisk 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ómcá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ấtnhiề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ềmdẽ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àmnhữ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ữngcuộ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ácqui 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_contextVí 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 trongtập tin extensions.conf: [mycontext] include =>defaultDòng cú pháp trên cung cấp cho các extension trong ngữ cảnh [mycontext] khả năngtruy 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ấtcả các extension trong [mycontext]đều có thể gởi tới extension trong [conference].5.3.3. Tạo một extensionMộ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ớiextension nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện, extension có thể đơngiả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,actiontrong đó :• exten => : mỗi dòng bắt đầu với lệnh exten => , chúng ta không được thay đổi điềunà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 Giá trị8000 Số cụ thể :80004321/4321 Số extension với callerID_4xxxx Số đại diện tổng quáts 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_(gạch dưới) Bắt đầu một số đại diện tổng quát.(dấu chấm) Số bất kỳ[13-9]bao gồm các số 1,3,4,5,6,7,8,9X Số bất kỳ từ 0-9Z Số bất kỳ từ 1-9N Số bất kỳ từ 2-9 - 56 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBXt 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ọii 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ọifax 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ộtnhã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à ứngdụ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ựchiệ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 ứngdụng tiêu biểu thường hay được dùng gồm :Ứng dụng Chú thíchAnswer() 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.Playback(tên_tập tin) 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 -
    • http://my.opera.com/asteriskvn - CHƯƠNG V: THIẾT KẾ CẤU HÌNH IP-PBXBackground(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ướcGoto(contex,extension,priority) Ứ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ể.Voicemail(extendsion) 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.VoicemailMain() Ứ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 .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 ứngdụng cũng như các tham số kèm theo, dùng lệnh show aplications ở giao tiếp dònglệnh của Asterisk. CLI> show Aplications5.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àomà 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ếtkế 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-PBXnhư 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ốngtruyề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 trungkế 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ầnextensionnum.• 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ặccá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ỏ đisố 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 quay9123456789 thì số được gởi đi sẽ là 123456789. Tương tự, nếu chúng ta muốn bỏ qua2 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 đàiPBX 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 đếncô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ệnphá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ấnphím 1 để gặp phòng kinh doanh …” , sau khi thuê bao nhấn phím 1 sẽ được đưa đếnngữ 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 ôngA, 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ẽ đượcchuyể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ẢN6.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 Số lượng các kênh Cấu hình tối thiểuThử nghiệm, học tập 1- 5 400-MHz x86, 256 MB RAMHệ thống cho văn phòng 5-10 1-GHz x86, 512MB RAMhoặc nhà riêngHệ thống cho doanh nghiệp Tới 15 3-GHz x86, 1GB RAMnhỏHệ thống thương mại cỡ Hơn 15 Dual CPUs, hay cũng có thể làvừa và lớn 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ứcSIP, 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áytí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 AccountSetting, 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ẢNSau khi nhập đầy đủ các thông tin như trên, X-Lite sẽ tiến hành đăng ký với Asteriskserver . 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ường6.2. Kế hoạch quay số Hướng gọi Kế hoạch quay số-cách sử dụng Gọi ra( out-going calls) Bấm số “9” để chiếm trung kế gọi ra Gọi vào ( in-coming calls) Quay số vào trực tiếp Nội bộ(internal) 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ố 90006.3. Một số chức năng cơ bản Stt Chức năng Cách sử dụng 1 Hiển thị số thuê bao chủ gọi 2 Nhấc máy từ xa (Call pickup) 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) 4 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) 5 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# 6 Từ chối nhận cuộc gọi(Do Not - đăng ký : *94# Disturb) - hủy:*95# 7 Quay số tắt(Speed Dial) - nhấn 1 sẽ gọi số 3005 - nhấn 2 sẽ gọi số 30066.4. Cấu hìnhVớ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=usSau 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 restart6.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=16.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=1Chú ý : 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êntrong một context6.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ẢNChú ý đối với tập tin này, để sự thay đổi có ảnh hưởng thì ở giao tiếp dòng lệnhAsterisk, 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.com6.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ẢNexten => *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ờiexten => 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ẢNexten => 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ôngmá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ạngPSTN.-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ủydị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ấcmáy đàm thoại, nếu thuê bao 3005 không muốn dùng điện thoại 3005 để tiếp tục đàmthoại mà muốn dùng điện thoại 3004, thì thuê bao 3005 nhấn # và tiếp theo là 700, gácmá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ê bao3006(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à chokết quả tốt. - 70 -
    • http://my.opera.com/asteriskvn - KẾT LUẬN KẾT LUẬNTruyề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 PBXchuyể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ắtnguồ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ểnmạ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 đơngiả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ộthệ 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ốngvà 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ácnhư IVR với chức năng Text To Speech , lấy dữ liệu động từ database và phát thànhlời nói (ứng 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ớicác hệ thống quản lí khách hàng CRM (Customer Relationship Management) với cácchứ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 (Contactcenter),… - 72 -
    • http://my.opera.com/asteriskvn PHỤ LỤC PHỤ LỤCThư viện cú pháp lệnh và biến trong Asterisk1. Các lệnh tổng quát: Stt Cú pháp Tác dụng 1 add extension Thêm một extension vào ngữ cảnh 2 debug channel Mở Debug cho channel 3 help Hiển thị danh sách các dòng lệnh 4 no debug channel Tắt debug cho một channel 5 pri debug span Bật chế độ debug cho một span(đối với kết nối E1) 6 pri no debug span Tắt chế độ debug cho một span(đối với kết nối E1) 7 show agents Hiển thị trạng thái các agent 8 show applications Hiển thị các ứng dụng đang đăng ký 9 show channel Hiển thị các thông tin về một kênh cụ thể 10 show channels Hiển thị thông tin về các kênh 11 show codecs Hiển thị các codec được hổ trợ 12 show conferences Hiển thị trạng thái các phòng hội thoại 13 show dialplan Hiển thị thông tin Dialplan 14 show manager Hiển thị các cú pháp lệnh về quản lí command 15 show manager connect Hiển thị các user quản lí đang đăng ký 16 show parkedcalls Hiển thị danh sách các parked call 17 show queues Hiển thị thông tin các hàng đợi 18 show voicemail users Danh sách các hộp thư thoại được tạo 19 show voicemail zones Danh sách các định dạng bản tin zone 20 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 Cú pháp Tác dụng 1 database del Xóa một giá trị/khóa trong database 2 database deltree Xóa các giá trị/cây khóa trong database 3 database get Lấy dữ liệu từ database 4 database put Lưu dữ liệu vào database 5 database show Hiển thị nội dung database - 74 -
    • http://my.opera.com/asteriskvn PHỤ LỤC3. Cú pháp dòng lệnh liên quan đến kênh IAX Stt Cú pháp Tác dụng 1 iax2 debug Debug kênh iax 2 iax2 no debug Tắt debug kênh iax 3 iax2 show cache Hiển thị các thông tin cache của kênh iax 4 iax2 show channel Hiển thị thông tin các kênh iax 5 iax2 show peers Hiển thị trạng thái các kết nối iax 6 iax2 show registry Hiển thị tình trạng đăng ký của các kết nối 7 iax2 show users Hiển thị danh sách các user iax đã được tạo 8 iax set jitter Thiết lập bộ đệm cho iax4. Cú pháp lệnh liên quan đến kênh SIP: Stt Cú pháp Tác dụng 1 sip debug Bật debug kênh sip 2 sip no debug Tắt debug kênh sip 3 sip reload Tải lại các thông tin cấu hình sip 4 sip show channels Hiển thị danh sách các kênh sip 5 sip show peers Hiển thị danh sách các tài khoản sip đã được tạo 6 sip show registry Hiển thị trạng thái đăng ký của các tài khoản sip 7 sip show users Hiển thị danh sách tất các tài khoản sip đã được tạo5.Cú pháp lệnh liên quan đến quản trị hệ thống: Stt Cú pháp Tác dụng 1 restart gracefully 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ý) 2 restart now Khởi động hệ thống ngay lập tức 3 restart when convenient Khởi động lại hệ thống khi thuận tiện (khi ít người gọi) 4 reload Tải lại asterisk 5 stop gracefully Tắt Asterisk một cách cẩn trọng 6 stop now Tắt Asterisk ngay lập tức 7 stop when convenient Tắt asterisk khi thuận tiện 8 extensions reload Tải lại các thông tin cấu hình extension 9 show modules Hiển thị các modules đã được cấu hình 10 show uptime Hiển thị thời gian uptime của hệ thống 11 show version Hiển thị phiên bản các phần mềm hệ thống - 75 -
    • http://my.opera.com/asteriskvn PHỤ LỤC6.Các biến định nghĩa trong Asterisk: Stt Biến Chú thích 1 ${ACCOUNTCODE} Mã tài khoản 2 ${CALLERID} Caller ID 3 ${CALLERIDNAME} Chỉ tên của phần caller ID 4 ${CALLERIDNUM} Chỉ số của phần Caller ID 5 ${CHANNEL} Tên của kênh hiện tại 6 ${CONTEX} Ngữ cảnh hiện tại 7 ${DATETIME} Ngày giờ hiện tại theo định dạng:YYYY-MM-DD- HH:MM:SS 8 ${DNID} Nhận dạng số đã quay 9 ${ENUM} Chứa kết quả của ứng dụng EnumLookup 10 ${EXTEN} Extension hiện tại 11 ${ENV(VAR)} Biến môi trường dạng (VAR) 12 ${HANGUPCAUSE} Nguyên nhân hangup cuộc gọi 13 ${INVALID_EXTEN} Extension được gọi không phù hợp 14 ${LANGUAGE} Ngôn ngữ hiện tại 15 ${LEN(VAR)} Chiều dài của chuỗi 16 ${MEETMESECS} Thời gian(giây) của một user ở trong phòng hội thoại 17 ${PRIORITY} Thứ tự ưu tiên 18 ${TIMESTAMP} Ngày giờ hiện tại,Định dạng:YYYYMMDD- HHMMSS 19 ${TXTCIDNAME} Chứa kết quả của ứng dụng TXTCIDName 20 ${UNIQUEID} Khóa nhận dạng cuộc gọi hiện tại 21 ${SIPUSERAGENT} 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 VanMeggelen, 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/asteriskvnhttp://my.opera.com/asteriskvn - 77 -