January 5, 2017 | Author: Siêu Nhân Sói | Category: N/A
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang i
MỤC LỤC Trang Trang bìa lót ................................................................................................................ Nhiệm vụ đồ án tốt nghiệp .......................................................................................... Lịch trình thực hiện đồ án tốt nghiệp .......................................................................... Lời cảm ơn .................................................................................................................i Mục lục .................................................................................................................... ii Liệt kê bảng ............................................................................................................ vii Liệt kê hình ........................................................................................................... viii Liệt kê từ viết tắt .................................................................................................... xii Tóm tắt ...................................................................................................................xiv Abstract ................................................................................................................... xv Chương 1 GIỚI THIỆU ............................................... Error! Bookmark not defined. 1.1 Mở đầu ............................................................... Error! Bookmark not defined. 1.2 Lý do thực hiện đề tài ........................................ Error! Bookmark not defined. 1.3 Mục tiêu của đề tài ............................................ Error! Bookmark not defined. 1.3.1 Xây dựng hệ thống IP PBX ....................... Error! Bookmark not defined. 1.3.1.1 Yêu cầu ................................................... Error! Bookmark not defined. 1.3.1.2 Các bước thực hiện ................................. Error! Bookmark not defined. 1.3.2 Giải pháp tính cước cuộc gọi .................... Error! Bookmark not defined. 1.3.2.1 Yêu cầu ................................................... Error! Bookmark not defined. 1.3.2.2 Các bước thực hiện ................................. Error! Bookmark not defined. 1.4 Đối tượng cần tìm hiểu ...................................... Error! Bookmark not defined. 1.5 Giới hạn của đề tài ............................................. Error! Bookmark not defined. 1.6 Bố cục của đồ án................................................ Error! Bookmark not defined. Chương 2 TỔNG QUAN VỀ VOIP .......................................................................... 9 2.1 Mạng điện thoại chuyển mạch công cộng ........................................................ 9 2.1.1 PSTN lúc ban đầu ....................................................................................... 9 2.1.2 Những kiến thức cơ bản về PSTN ............................................................ 11 2.1.2.1 Tín hiệu tương tự và tín hiệu số ............................................................. 11 2.1.2.2 Điều chế xung mã PCM ......................................................................... 11 2.1.2.3 Local loop và Trunk ............................................................................... 11 2.1.2.4 Truyền tín hiệu trong PSTN ................................................................... 12 2.1.2.5 Những dịch vụ và ứng dụng của PSTN ................................................. 13 2.1.3 Những hạn chế của PSTN ......................................................................... 13 2.2 Voice over Internet Protocol (VoIP) ................................................................. 14 2.2.1 Chuyển mạch gói ...................................................................................... 14 2.2.2 CODEC – Mã hóa và giải mã ................................................................... 15 2.2.3 Các giao thức điều khiển ........................................................................... 16 2.2.4 Những ưu điểm của VoIP ......................................................................... 19 2.2.5 Những hạn chế của VoIP .......................................................................... 20 2.2.6 Một số dịch vụ của VoIP........................................................................... 20 2.2.6.1 Dịch vụ điện thoại qua Internet .............................................................. 20 2.2.6.2 Thoại thông minh ................................................................................... 20 2.2.6.3 Dịch vụ tính cước cho cuộc gọi ............................................................. 20
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang ii
2.2.6.4 Dịch vụ Callback Web ........................................................................... 20 2.2.6.5 Dịch vụ fax qua IP ................................................................................. 20 2.2.6.6 Dịch vụ Call Center ................................................................................ 21 2.3 Kết luận ............................................................................................................. 21 Chương 3 GIAO THỨC KHỞI TẠO PHIÊN SIP ................................................ 22 3.1 Giới thiệu giao thức SIP .................................................................................... 22 3.2 Các thành phần của SIP ..................................................................................... 23 3.2.1 User Agent ................................................................................................ 23 3.2.1.1 User Agent Client ................................................................................... 23 3.2.1.2 User Agent Server .................................................................................. 23 3.2.2 Các loại Server trong mạng SIP ................................................................ 23 3.2.2.1 Proxy Server ........................................................................................... 23 3.2.2.2 Redirect Server ....................................................................................... 24 3.2.2.3 Registrar Server ...................................................................................... 24 3.2.3 Back to Back User Agent (B2BUA) ......................................................... 25 3.2.4 Các cơ chế hoạt động của SIP ................................................................... 26 3.2.4.1 Mô hình Peer to Peer .............................................................................. 26 3.2.4.2 Mô hình thông qua proxy server ............................................................ 27 3.2.4.3 Cuộc gọi SIP thông qua mô hình Redirect Server ................................. 28 3.3 SIP và H.323 ...................................................................................................... 31 3.3.1 Mức độ phức tạp ....................................................................................... 31 3.3.2 Khả năng mở rộng ..................................................................................... 31 3.4 SIP và IAX ........................................................................................................ 32 3.5 Kết luận ............................................................................................................. 33 Chương 4 GIỚI THIỆU VÀ CÀI ĐẶT ASTERISK ............................................. 34 4.1 Tổng đài IP PBX ............................................................................................... 34 4.1.1 Khái quát về tổng đài IP PBX ................................................................... 34 4.1.2 Các ưu điểm so với tổng đài PBX truyền thống ....................................... 34 4.1.3 So sánh giữa IP PBX và PBX truyền thống .............................................. 34 4.1.4 Khả năng áp dụng trong các doanh nghiệp vừa và nhỏ ............................ 35 4.2 Tìm hiểu về Asterisk ......................................................................................... 35 4.2.2 Kiến trúc cơ bản của Asterisk ................................................................... 38 4.2.3 Hệ thống cũng bao gồm 4 chức năng API chính ...................................... 39 4.2.4 Các mô hình ứng dụng triển khai .............................................................. 39 4.2.4.1 Tổng đài VoIP IP PBX ........................................................................... 39 4.2.4.1 Kết nối IP PBX với PBX........................................................................ 40 4.2.4.2 Kết nối giữa các server Asterisk ............................................................ 41 4.2.4.3 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị .......................... 42 4.2.4.4 Chức năng phân phối cuộc gọi tự động ACD ........................................ 43 4.2.5 Sự ra đời của giao thức IAX – Inter Asterisk Exchange........................... 43 4.3 Cài đặt và cấu hình Asterisk .............................................................................. 44 4.3.1 Yêu cầu về cấu hình phần cứng ................................................................ 44 4.3.2 Kết nối Internet ......................................................................................... 44 4.3.3 Cài đặt hệ điều hành Linux ....................................................................... 44 4.3.3.1 Thiết lập địa chỉ IP ................................................................................. 44 4.3.3.2 Update hệ điều hành Linux .................................................................... 45
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang iii
4.3.3.3 Download và cài đặt các gói phụ hỗ trợ cài đặt Linux ........................... 45 4.3.3.4 Cài đặt Apache 2 .................................................................................... 45 4.3.3.5 Cài đặt PHP5 .......................................................................................... 45 4.3.3.6 Cài đặt MySQL ...................................................................................... 46 4.3.4 PUTTY ...................................................................................................... 46 4.3.5 WinSCP ..................................................................................................... 48 4.4 Cài đặt Asterisk ................................................................................................. 49 4.4.1 Download các gói cài đặt của Asterisk ..................................................... 49 4.4.2 Giải nén và cài đặt các gói của hệ thống Asterisk .................................... 50 4.4.2.1 Cài đặt gói DAHDI ................................................................................ 50 4.4.2.2 Cài đặt gói Lipri ..................................................................................... 50 4.4.2.3 Cài đặt gói Asterisk ................................................................................ 51 4.4.2.4 Cài đặt gói Asterisk-addons ................................................................... 51 4.4.2.5 Cài đặt gói Extra Sound ......................................................................... 51 4.5 Kết luận ............................................................................................................. 51 Chương 5 GIỚI THIỆU VÀ CÀI ĐẶT FREEPBX .............................................. 52 5.1 Giới thiệu FreePBX ........................................................................................... 52 5.2 Cài đặt chương trình FreePBX .......................................................................... 52 5.3 Cấu hình Card X100P giao tiếp với PSTN ........................................................ 56 5.3.1 Giới thiệu Card X100P .............................................................................. 56 5.3.2 Khái niệm FXO và FXS ............................................................................ 57 5.3.3 Cấu hình Card X100P giao tiếp với PSTN ............................................... 58 5.4 Kết luận ............................................................................................................. 61 Chương 6 GIỚI THIỆU VÀ CÀI ĐẶT A2BILLING ........................................... 63 6.1 Giới thiệu A2Billing .......................................................................................... 63 6.2 Tìm hiểu về AGI (Asterisk Gateway Interface) ................................................ 64 6.2.1 Cấu trúc cơ bản AGI ................................................................................. 64 6.2.2 Phân loại AGI ............................................................................................ 65 6.2.3 Một số hàm cơ bản của AGI ..................................................................... 66 6.3 Cấu trúc và nguyên tắc hoạt động của A2Billing .............................................. 71 6.4 Cài đặt A2Billing ............................................................................................... 73 6.5 Một số khái niệm trong A2Billing .................................................................... 79 6.6 Kết luận ............................................................................................................. 81 Chương 7 XÂY DỰNG HỆ THỐNG PBX ASTERISK VÀ GIẢI PHÁP TÍNH CƯỚC A2BILLING ................................................................................................... 82 7.1 Mô hình hệ thống thực tế................................................................................... 82 7.2 Các thiết bị phần cứng và phần mềm sử dụng................................................... 83 7.2.1 Phần cứng .................................................................................................. 83 7.2.2 Phần mềm .................................................................................................. 83 7.3 Một số chức năng của hệ thống IP PBX ........................................................... 83 7.3.1 Add Extension (Tạo tài khoản thuê bao) .................................................. 83 7.3.2 Call Waiting (Cuộc gọi chờ) ..................................................................... 89 7.3.3 Music On Hold (Nhạc chờ khi giữ máy) .................................................. 89 7.3.4 Blacklist (Danh sách loại trừ) ................................................................... 93 7.3.5 Ring Groups (Đổ chuông chóm) ............................................................... 94 7.3.6 Queues (Hàng đợi) .................................................................................... 96
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang iv
7.3.7 Do Not Disturb (Từ chối nhận cuộc gọi) .................................................. 97 7.3.8 Conference (Xây dựng hệ thống hội thoại) ............................................... 97 7.3.9 Follow Me (Chuyển cuộc gọi khi bận) ..................................................... 99 7.3.10 Callback (Tự động gọi lại) ......................................................................101 7.3.11 Voicemail (Hộp thư thoại) ......................................................................103 7.3.12 Call Forward (Chuyển hướng gọi) .......................................................... 104 7.3.13 Call Pickup (Nhận cuộc gọi từ xa trong cùng một nhóm) ...................... 105 7.3.14 IVR (Ứng dụng tương tác thoại) ............................................................. 106 7.3.15 Time Conditions (Xác lập thời gian biểu)...............................................109 7.3.16 Day/Night Mode Control (Chuyển đổi chế độ ngày đêm) ...................... 112 7.3.17 Speed Dial (Quay số nhanh) ...................................................................114 7.3.18 System Recordings (Hệ thống ghi âm) ................................................... 115 7.3.18.2 Ghi âm trực tiếp ..................................................................................116 7.3.18.3 Tải lên các bản ghi âm có sẵn ............................................................ 117 7.3.19 Calls Recordings (Ghi âm cuộc gọi) ....................................................... 118 7.3.19.1 Đăng nhập tài khoản Voicemail ......................................................... 118 7.3.19.2 Ghi âm tất cả cuộc gọi ........................................................................120 7.3.19.3 Ghi âm cuộc gọi khi có yêu cầu ......................................................... 120 7.3.20 Call Parking and Transfer (Chuyển cuộc gọi) ........................................121 7.3.20.1 Chuyển cuộc gọi có quản lý ............................................................... 122 7.3.20.2 Chuyển cuộc gọi không có quản lý .................................................... 123 7.3.20.3 Duy trì cuộc gọi ..................................................................................123 7.3.21 Remote Extension (Extension đăng nhập từ xa) .....................................123 7.3.21.1 NAT port (Forwarding Port) .............................................................. 123 7.3.21.2 Giới thiệu về No-IP ............................................................................124 7.3.21.3 Cấu hình Remote Extension ............................................................... 126 7.3.22 Thiết lập Trunk cho các cuộc gọi trong FreePBX ..................................129 7.3.22.1 Trunks .................................................................................................129 7.3.22.1.2 Tạo ZAP Trunk ............................................................................130 7.3.22.1.3 Tạo SIP Trunk ..............................................................................131 7.3.23 Outbound Routes (Định tuyến cuộc gọi ra) ............................................132 7.3.24 Một số kết quả thực hiện .........................................................................133 7.4 Một số chức năng của A2Billing .....................................................................137 7.4.1 Providers and trunks ................................................................................137 7.4.1.1 Providers ............................................................................................... 137 7.4.1.2 Trunks ...................................................................................................138 7.4.2 Rate Cards ............................................................................................... 140 7.4.3 Rates ........................................................................................................142 7.4.4 Call plan ..................................................................................................147 7.4.5 Customers ................................................................................................ 148 7.4.6 Kết hợp FreePBX và A2Billing .............................................................. 151 7.4.7 Một số kết quả thực hiện với A2Billing..................................................153 7.4.8 Một số chức năng khác của A2Billing .................................................... 156 7.4.8.1 Call Report ........................................................................................... 156 7.4.8.2 Tự động cập nhật Card Number cho các Extension ............................. 157 7.4.8.3 Package offer ( Gói khuyến mãi hỗ trợ dịch vụ) ..................................159
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang v
7.4.9 Giao diện web người dùng A2Billing ..................................................... 160 7.4.9.1 Giới thiệu .............................................................................................. 160 7.4.9.2 Một số chức năng sử dụng trên giao diện người dùng ......................... 162 7.4.9.2.1 Call history (Lịch sử các cuộc gọi) ................................................162 7.4.9.2.2 Speed dial (Quay số nhanh) ........................................................... 162 7.4.9.2.3 Ratecard ......................................................................................... 163 7.4.9.2.4 Simulator (Mô phỏng cuộc gọi) ..................................................... 163 7.5 Kết luận ...........................................................................................................163 Chương 8 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..........................................165 8.1 Kết luận ...........................................................................................................165 8.2 Hướng phát triển .............................................................................................. 165 Tài liệu tham khảo ....................................................................................................168
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang vi
LIỆT KÊ BẢNG Trang Bảng 2.1 So sánh các chuẩn CODEC ....................................................................... 16 Bảng 3.1 Các loại Frame trong giao thức IAX ......................................................... 32 Bảng 4.1 So sánh giữa PBX truyền thống và IP-PBX .............................................. 35 Bảng 4.2 Yêu cầu về phần cứng đối với tổng đài Asterisk ...................................... 44 Bảng 6.1 Các hàm cơ bản của AGI .......................................................................... 71
Giới thiệu
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
LIỆT KÊ TỪ VIẾT TẮT AAA ACD ACK ADSL AGI API ATA B2BUA BRI CDR CGI CLASS CLI CODEC CRM Cseq DAHDI DHCP DID DISA DNID DNS DSL DUC DTMF FXO FXS GPL GSM GUI HTTP IAX ISDN ISP IVR LAN LCD LCR MF MOH MP3 NAT
Giới thiệu
Authentication – Authorization - Accounting Automatic Call Distribution Acknowledgement Asymmetric Digital Subcriber Line Asterisk Gateway Interface Application Program Interface Analog Telephone Adapter Back to Back User Agent Basic Rate Interface Call Detail Record Common Gateway Interface Custom Local Area Signaling Service Command Line Interface Compression/Decompression Algorithm Customer Relationship Management Command Sequence Digium Asterisk Hardware Device Interface Dynamic Host Configuration Protocol Direct Inward Dialing Direct Inward System Access Dial Number Identifier Domain Name System Digital Subcriber Line Dynamic Update Client Dual Tone Multi-Frequency Foreign Exchange Office Foreign Exchange Station General Public License Global System For Mobile Communications Graphical User Interface Hyper Text Transport Protocol Inter Asterisk Exchange Integrated Services Digital Network Internet Service Provider Interactive Voice Response Local Area Network Least Cost Dialing Least Cost Routing Multi-Frequency Music On Hold MPEG-1 Audio Layer 3 Network Address Translation
Trang vii
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing NGN OSS PBX PC PCM PIN PRI PSTN RCTP RPM RTP SDP SER SIP SS7 TCP UA UAC UAS UDP URI URL URL VoIP VSP WAN WAV
Giới thiệu
Next Generation Networks Operations Support System Private Branch Exchange Personal Computer Pulse Code Modulation Personal Identification Number Primary Rate Interface Public Switch Telephone Network RTP Control Protocol Red Hat Package Manager Real Time Protocol Session Description Protocol SIP Express Router Session Initial Protocol Signaling System 7 Transmission Control Protocol User Agents User Agent Client User Agent Server User Datagram Protocol Universal Resource Identifier Universal Resource Location Uniform Resource Locator Voice Over Internet Protocol VoIP Service Provider Wide Area Network Waveform audio format
Trang viii
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Chương 1
Trang 9
TỔNG QUAN VỀ VOIP
1.1 Mạng điện thoại chuyển mạch công cộng Mạng điện thoại chuyển mạch công cộng, hay còn gọi là PSTN (Public Switch Telephone Network), là mô hình mạng điện thoại truyền thống được sử dụng rộng rãi hiện nay. Trong phần này, chúng ta sẽ tìm hiểu một cách sơ lược về những vấn đề cơ bản của PSTN. 1.1.1 PSTN lúc ban đầu Ban đầu, việc truyền giọng nói được thực hiện bằng một mạch gọi là ringdown, trong đó không sử dụng các số điện thoại để gọi như bây giờ mà dùng dây nối trực tiếp giữa hai thiết bị. Thiết kế đơn giản này dần dần được cải tiến, từ việc chỉ có một người nói phát triển thành hệ thống cho phép hai người cùng trao đổi trực tiếp với nhau. Việc truyền tín hiệu thoại trên các cặp dây đồng đòi hỏi phải có các thành phần kèm theo khác như micro bằng cacbon, pin, nam châm điện và màng rung. Ngoài ra phải có dây nối trực tiếp các thiết bị của người nói và người nghe với nhau. Những yêu cầu như vậy làm cho hệ thống điện thoại không hiệu quả, chi phí cao và không linh hoạt.
Hình 1.1 Sơ đồ kết nối 4 máy Điều này cũng dễ hiểu, ví dụ chúng ta có 4 máy điện thoại cần liên lạc với nhau, các máy đó phải nối trực tiếp với nhau như hình 2.1. Khi số lượng máy càng nhiều thì sơ đồ kết nối càng chằn chịt. Nếu muốn kết nối một hệ thống có 8 máy thì số lượng cặp dây đồng là 28 như hình 2.2.
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 10
Hình 1.2 Sơ đồ kết nối 8 máy Một cách tổng quát, khi có N máy trong hệ thống thì phải có N(N-1)/2 cặp dây nối. Rõ ràng, với cách thức cấu hình và hoạt động như trên, hệ thống không những đòi hỏi một một chi phí quá cao, mà cách thức tổ chức quản lý cũng rất khó khăn. Chẳng hạn, khi cần thêm một máy vào một hệ thống đang có sẵn N máy thì phải nối thêm vào N cặp dây mới. Để khắc phục những khuyết điểm của hệ thống trên, một cơ chế mới ra đời cho phép kết nối các cuộc gọi một cách dễ dàng và thuận lợi hơn nhiều. Cơ chế này sử dụng một thiết bị chuyển mạch (switch), nó giúp cho người sử dụng có thể thực hiện cuộc gọi với máy điện thoại khác thông qua trung tâm chuyển mạch. Mỗi máy chỉ cần kết nối với trung tâm chuyển mạch mà không cần phải nối trực tiếp với các máy khác.
Hình 1.3 Mô hình chuyển mạch lúc sơ khai Ban đầu khi mới phát triển, bộ phận chuyển mạch do con người trực tiếp đảm nhận. Hình 2.3 mô tả một sơ đồ cơ bản của hệ thống chuyển mạch lúc mới hình thành. Trải qua hơn 100 năm phát triển, các hệ thống chuyển mạch điện thoại ngày nay đã được thay thế bằng những hệ thống chuyển mạch tự động, sử dụng các công nghệ điện tử mới. PSTN là mạng điện thoại sử dụng hệ thống chuyển mạch tự động đang được dùng một cách rộng rãi hiện nay.
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 11
1.1.2 Những kiến thức cơ bản về PSTN 1.1.2.1 Tín hiệu tương tự và tín hiệu số Các tín hiệu trong tự nhiên vốn là các tín hiệu tương tự. Tín hiệu tương tự được thể hiện bằng các đại lượng vật lý biến thiên liên tục theo thời gian, ví dụ như biên độ dòng điện, sóng âm,… Tuy nhiên, trong thực tế, khi sử dụng tín hiệu tương tự để truyền tin tức đi xa thường gây ra nhiều tổn thất về năng lượng, nhất là độ tin cậy của tín hiệu do quá trình thâm nhập của các nhiễu và mất mát trên đường truyền. Do đó người ta thường chuyển các tín hiệu tương tự thành tín hiệu số trong các hệ thống viễn thông. Tín hiệu số về cơ bản đó là một chuỗi các ký hiệu rời rạc được chọn từ một tập hữu hạn các ký hiệu rời rạc, ví dụ như các chuỗi các ký tự chữ hay số. Hệ thống thông tin số đã chứng tỏ được những ưu thế của mình so với hệ thống tương tự. Chính vì vậy, trong hệ thống điện thoại người ta đã sử dụng các phương pháp điều chế số để chuyển đổi giữa tương tự và số. Phương pháp điều chế xung mã PCM (Pulse Code Modulation) là một ví dụ được sử dụng rộng rãi. 1.1.2.2 Điều chế xung mã PCM PCM là phương pháp mã hóa phổ biến được sử dụng trong các hệ thống điện thoại truyền thống. Nó cho phép chuyển đổi các tín hiệu tương tự thành các chuỗi các bit 0 và 1. Quá trình này phải tuân theo định luật Nyquist, tức là một tín hiệu liên tục theo thời gian có thể được phục hồi chính xác nếu như băng thông của nó là hữu hạn và tần số lấy mẫu lớn hơn hoặc bằng hai lần băng thông tín hiệu. Trong các hệ thống mã hóa thoại, quá trình của PCM như sau: • Tín hiệu thoại là tín hiệu tương tự được cho qua bộ lọc thông thấp để loại bỏ các thành phần có tần số cao hơn 4000 Hz. • Tín hiệu sau đó được lấy mẫu ở tần số 8000 Hz. • Sau khi được lấy mẫu, tín hiệu sẽ được chuyển thành dạng rời rạc qua quá trình lượng tử hóa. Thông thường trong hệ thống thoại người ta sử dụng 8 bit để lượng tử và dùng giải thuật nén để có thể gán nhiều bit hơn cho các tín hiệu có biên độ nhỏ. Từ cách thức hoạt động như trên, có thể thấy được tốc độ của hệ thống thoại phổ biến là 64 kbps. Có hai loại PCM 64 kbps được dùng nhiều là µ-law ở các nước Bắc Mỹ và a-law ở các nước Châu Âu. Cả hai dạng này đều khá giống nhau, thay vì phải dùng đến 12 hay 13 bit như trong PCM tuyến tính thì chúng chỉ dùng 8 bit cho từ mã. Tuy nhiên µ-law tỏ ra hiệu quả hơn so với a-law trong những trường hợp tỷ số tín hiệu trên nhiễu thấp. 1.1.2.3 Local loop và Trunk Local loop dùng để chỉ vòng lặp trong đôi dây nối từ trung tâm chuyển mạch đến máy điện thoại của khách hàng. Quá trình giao tiếp giữa các thuê bao với trung tâm được thực hiện trong vòng lặp này. Trunk là đường giao tiếp giữa các trung tâm chuyển mạch với nhau.
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 12
Mô hình mạng điện thoại dạng cây Các thuê bao không nối trực tiếp với nhau mà kết nối với một trung tâm chuyển mạch. Các trung tâm này lại kết nối với nhau và kết nối với trung tâm chuyển mạch cấp cao hơn. Cứ như thế tạo ra một mô hình mạng điện thoại dạng hình cây như hình vẽ 2.4. Với việc kết nối như vậy, khi có quá nhiều cuộc gọi xảy ra cùng một lúc thì các trung tâm có thể điều khiển các cuộc gọi đi theo các hướng phù hợp để tránh gây ra nghẽn mạng.
1.1.2.4 Truyền tín hiệu trong PSTN PSTN có hai dạng truyền tín hiệu (signaling), đó là user – network signaling và network – network signaling. Trong kiểu thứ nhất, user – network signaling, thiết bị đầu cuối người sử dụng liên lạc với mạng điện thoại thông qua cặp dây xoắn. Signaling phổ biến trong trường hợp này là DTMF (Dual Tone Multi-Frequency). Hình vẽ 2.5 dưới dây mô tả cấu trúc của một bàn phím DTMF.
Hình 1.5 Cấu trúc bàn phím DTMF Bàn phím DTMF cấu thành từ một ma trận 4x4, mỗi hàng tương ứng với một tần số thấp và mỗi cột tương ứng với một tần số cao. Mỗi phím bấm tương ứng với Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 13
một tín hiệu sin có hai xung ở các vị trí thấp và cao tương ứng. Ví dụ, khi phím 9 được bấm thì một tín hiệu sin có hai xung ở các tần số 852 Hz và 1477 Hz được gửi đi. Tín hiệu này được bộ phận chuyển mạch tiếp nhận, giải mã và xác định phím nào đã được bấm. DTMF là phương pháp in-band signaling. Trong ISDN (Intergrated Services Digital Network), phương pháp truyền tín hiệu là out-of-band signaling. Với phương pháp này, tín hiệu được truyền trong những kênh khác nhau. Kênh truyền các tín hiệu voice, data, fax gọi là kênh bearer hay còn gọi là kênh B với tốc độ 64 kbps. Kênh truyền các tín hiệu mang gọi là kênh điều khiển hay là kênh D. Đối với các văn phòng nhỏ thì chỉ cần dùng BRI (Basic Rate Interface) với 2 kênh B 64 kbps và một kênh D 16 kpbs. Tuy nhiên với các công ty lớn hơn, lượng thông tin cần truyền nhiều hơn thì phải dùng PRI (Primary Rate Interface) với 23 kênh B 64 kbps và 1 kênh D 64 kpbs. Việc sử dụng out-of-band signaling có những ưu điểm như dùng được một cách phức hợp trong các kênh thông thường, giảm nhiễu, hạn chế trễ tín hiệu,… Kiểu thứ hai là giao tiếp network – network signaling, thường dùng các phương tiện truyền dẫn như: • T1/E1 với các cặp dây xoắn đôi: T1 là đường truyền có tốc độ 1.554 Mbps thường dùng ở Bắc Mỹ và Nhật. E1 cũng là đường truyền số nhưng tốc độ cao hơn 2.048 Mbps dùng ở Châu Âu. • T3/E3, T4 với cáp xoắn đồng trục: T3 chứa 28 kênh T1, E3 chứa 16 kênh E1 và T4 chứa 168 kênh T1. • T3 và T4 dùng sóng vi ba. • SONET (Synchronous Optical Network) truyền qua cáp quang tốc độ lên đến vài Gbps. Network – network signaling sử dụng phương pháp in-band signaling như MF (Multi-Frequency) hay RBS (Robbed Bit Signaling). MF khá giống với DTMF nhưng khác ở chỗ nó dùng tập các giá trị tần số khác và thay vì trao đổi giữa người dùng với nhau như DTMF thì MF lại trao đổi giữa các bộ phận chuyển mạch với nhau. Ngoài ra network – network signaling còn sử dụng các out-of-band signaling như SS7 (Signaling System 7). SS7 là phương thức trao đổi thông tin giữa các bộ phận chuyển mạch với nhau nhằm điều khiển các cuộc gọi và dịch vụ CLASS (Custom Local Area Signaling Services). 1.1.2.5 Những dịch vụ và ứng dụng của PSTN PSTN cung cấp nhiều dịch vụ cho người sử dụng, ngoài những chức năng nghe nói thông thường, có thể kể ra một vài ứng dụng của PSTN như: cuộc gọi chờ, chuyển hướng cuộc gọi, conference, hiển thị số người gọi, tự động gọi lại,… 1.1.3 Những hạn chế của PSTN Mạng điện thoại PSTN đã đáp ứng được khá tốt nhu cầu trao đổi thông tin thông qua âm thoại. Tuy nhiên, ngày nay với sự phát triển của hệ thống mạng IP Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 14
các doanh nghiệp luôn muốn tích hợp cả dữ liệu và tiếng nói lên một hạ tầng chung. Các mạng này sẽ đáp ứng được những yêu cầu mới, dịch vụ mới với giá thành thấp và chất lượng chấp nhận được. Qua một thời gian hình thành và phát triển của PSTN, người ta thấy rằng nó có một số nhược điểm nổi bậc như: •
PSTN không thể tạo ra và triển khai các ứng dụng một cách nhanh chóng. Khi sự cạnh tranh ngày càng cao trong thị trường, biện pháp hữu hiệu nhất để tạo nên ưu thế cho mình chính là tạo ra các dịch vụ mới nhất và nhanh nhất. PSTN là hệ thống mạng dựa trên một hạ tầng khép kín, nghĩa là chỉ có nhà cung cấp dịch vụ có quyền phát triển các ứng dụng trên dịch vụ đó. Điều này gây khó khăn cho các công ty khi muốn đáp ứng đầy đủ nhu cầu của khách hàng. Do đó người ta hướng đến một giải pháp mở cho phép nhiều nhà khai thác phát triển một cách sáng tạo và hiệu quả các ứng dụng.
•
Không thể truyền đồng thời data, voice và video trên hạ tầng mạng PSTN truyền thống với các dây điện thoại analog như hiện nay. Cần phải sử dụng hệ thống truyền dẫn băng rộng tốc độ cao như DSL, cáp, hay wireless để có thể tích hợp đồng thời voice, data và video.
•
Hạ tầng mạng xây dựng cho voice không thích hợp cho truyền dẫn data.
•
Sử dụng băng thông không hiệu quả. PSTN dùng kiểu chuyển mạch circuit switching đòi hỏi 64-kpbs cho một cuộc thoại trên đôi dây.Nghĩa là khi có người đang thực hiện một cuộc gọi trên đôi dây nào đó thì 64-kpbs sẽ được sử dụng cho suốt cả quá trình thoại mà không có thành phần thứ ba nào có thể chen vào sử dụng nó.
•
Giá thành cho xây dựng và chi phí phải trả cho các nhà cung cấp dịch vụ cao.
Xu thế tích hợp voice và data trên một mạng chung là nhu cầu tất yếu trong thời đại hiện nay khi mà Internet đã trở nên phổ biến rộng rãi. VoIP được xem như là một bước tiến mới giúp cải thiện đáng kể những nhược điểm của PSTN và phát triển được nhiều ứng dụng mới. 1.2 Voice over Internet Protocol (VoIP) VoIP là công nghệ truyền tín hiệu thoại trên đường truyền mạng nền tảng IP. Công nghệ này sử dụng những kỹ thuật riêng để mã hóa tín hiệu voice thành các gói tin có thể truyền tải qua mạng IP như LAN hay Internet. VoIP không chỉ giải quyết được vấn đề nội bộ mà còn có thể kết nối với PSTN thông qua các Gateway. VoIP làm được những gì mà PSTN có thể làm được với chi phí thấp hơn nhiều. 1.2.1 Chuyển mạch gói Điểm khác biệt trước hết giữa hệ thống điện thoại truyền thống PSTN và hệ thống VoIP là cách thức truyền tín hiệu thoại. Trong PSTN người ta sử dụng phương thức truyền bằng circuit switching. Điều này có nghĩa là khi ai đó đang thực hiện cuộc gọi thì circuit switching tạo ra một liên kết đòi hỏi các tài nguyên như đường dây, các switch, các kết nối phải được sử dụng liên tục cho cuộc gọi này và một người khác không thể sử dụng các tài Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 15
nguyên đó. Sử dụng phương pháp này cho phép thu được chất lượng khá tốt nhưng làm hao phí tài nguyên. VoIP sử dụng packet switching để truyền tín hiệu thoại. Phương thức hoạt động của packet switching khác với phương thức hoạt động của circuit switching. Thay vì phải tạo ra một kết nối liên tục như là circuit switching, packet switching chia tín hiệu cần truyền ra làm các phần nhỏ, các phần này sẽ được đóng gói thành các packet để truyền đi và sẽ được tái hợp lại thành tín hiệu ban đầu ở nơi nhận. Cách làm này cho phép tận dụng tài nguyên một cách hiệu quả.
Hình 1.6 Circuit switching và packet switching 1.2.2 CODEC – Mã hóa và giải mã Tín hiệu dải băng nằm giữa 0.3 và 3.4 KHz được xem như là tín hiệu voice. Thông thường tín hiệu voice được lấy mẫu ở tần số 8 KHz. Các mẫu này được lượng tử hóa đều hay không đều sử dụng một mức lượng tử cho trước. Ví dụ khi dùng 8 bit lượng tử, tức là có 256 mức lượng tử, thì tốc độ tín hiệu là 64 Kbps. Cơ chế này được gọi là mã hóa PCM và được dùng rộng rãi trong hệ thống PSTN hiện nay với các luật A và µ. VoIP đòi hỏi tốc độ bit thấp hơn so với PSTN nên không dùng phương pháp mã hóa và giải mã của PSTN. Cùng với sự phát triển của các công nghệ vi xử lý, tín hiệu và bộ nhớ, nhiều kỹ thuật mã hóa và giải mã ra đời để phục vụ cho các ứng dụng với tốc độ bit thấp như VoIP, trong đó được sử dụng rộng rãi nhất là các chuẩn G.723.1 và G.729A. G.723.1 có tốc độ từ 5.3 đến 6.1 Kbps với 30-ms frame và G.729A có tốc độ bit là 8 Kbps với 10-ms frame. Frame ở đầu ra của G.723.1 có 159 bit khi hoạt động ở tốc độ 5.3 Kbps và có 192 bit khi hoạt động ở 6.4 Kbps. Trong khi đó với G.729A thì độ dài frame đầu ra chỉ có 80. G.729A được lắp đặt đơn giản hơn và sử dụng hiệu quả hơn G.723.1 nên được sử dụng rộng rãi hơn. Cả hai thiết kế này đều sử dụng cùng một lượng bộ nhớ là 10K
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 16
ROM và 2K RAM, nhưng G.723.1 cần đến 16 MIP (Message Tranfer Parts) của dung lượng xử lý trong khi G.729.A chỉ cần dùng 10 MIPS. Ngoài ra còn có một số chuẩn CODEC khác. Bảng 2.1 mô tả so sánh các chuẩn CODEC khác nhau.
Bảng 1.1 So sánh các chuẩn CODEC 1.2.3 Các giao thức điều khiển Nền tảng của công nghệ VoIP là hai giao thức cơ bản H323 và SIP (Session Initiation Protocol). Để truyền tín hiệu voice cả hai đều dùng chung một chuẩn RTP/UDP/IP. Chuẩn H.323 là chuẩn được phát triển đầu tiên bởi ITU (International Telecommunications Union), được sử dụng khá lâu và được tích hợp dễ dàng vào các hệ thống tổng đài nội bộ PBX (Private Branch eXchange) để thực hiện các cuộc gọi qua VoIP thông qua các kênh truyền như ISDN. Hiện nay các thiết bị VoIP theo chuẩn H.323 cũng có khả năng hoạt động tốt trên đường truyền băng thông rộng ADSL (Asymmetric Digital Subcriber Line). Chuẩn H.323 cho phép truyền dẫn các tín hiệu voice, data, video và các ứng dụng chia sẻ trên đường truyền IP với các kỹ thuật bảo mật khá tốt. Để thiết lập hệ thống VoIP dựa trên nền H.323 cần có một số thiết bị như điện thoại (Terminal), MCU (MultiPoint Control Unit), Gateway, GateKeeper. Hình 2.8 mô tả các thành phần cơ bản của H.323.
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 17
Hình 1.7 Các thành phần cơ bản của H.323 Chuẩn SIP được phát triển bởi IETF (Internet Engineering Task Force) như một giao thức peer-to-peer gọn nhẹ và hiệu quả trên đường truyền mạng internet hay LAN. Dựa trên nền tảng HTTP (Hyper Text Transfer Protocol) và MIME (Multi purpose Internet Mail Extensions), SIP hiệu quả hơn trong việc tích hợp voice và data theo thời gian thực và chiếm ít băng thông trên đường truyền. SIP hỗ trợ đặt tên các account thông qua DNS (Domain Name System) hay URL (Uniform Resource Locator) và ứng dụng PC-based phone do đó linh hoạt hơn khi thiết kế mạng.
Hình 1.8 Các thành phần cơ bản của SIP Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 18
Các vấn đề về SIP sẽ được đề cập kỹ hơn trong chương sau. Ngoài H.323 và SIP ra, khi nói đến VoIP cần phải quan tâm đến một số protocol khác như MGCP (Media Gateway Control Protocol), H.248/MEGACO, RTP, RCTP. MGCP là sự kết hợp giữa giao thức đơn giản để điều khiển gateway SGCP (Simple Gateway Control Protocol) phát triển bởi Cisco và Telcordia với giao thức Internet để điều khiển các thiết bị IPDC (Internet Protocol Device Control). MGCP điều khiển và quản lý cuộc gọi thông qua các media gateway. Nhiệm vụ của các media gateway là tạo nên sự chuyển đổi tương thích giữa các tin tức được dùng trong PSTN và trong mạng IP bằng cách chuyển các dạng mã hóa và giải mã từ G.711 trong PSTN sang G.723 hay G.729 trong VoIP. Bên cạnh đó, media gateway cũng hỗ trợ loại trừ tiếng vọng thông qua phần cứng. RTP (Real-time Transport Protocol) và RCTP (RTP Control Protocol) là những giao thức điều khiển vận chuyển tín hiệu thời gian thực. Các giao thức này rất quan trọng để đảm bảo real-time cho cuộc gọi. Một cuộc gọi thông thường chia làm nhiều phiên khác nhau bao gồm báo hiệu cuộc gọi, điều khiển cuộc gọi, thỏa thuận các phương thức truyền thông và phiên hội thoại. Vị trí của RTP chính là ở phiên hội thoại. Qua việc thỏa thuận phương thức truyền thông, các bên tham gia hội thoại sẽ tiến hành mở hai cổng UDP kề nhau, cổng chẵn dùng để truyền tiếng nói (RTP) và cổng lẻ dùng để truyền thông tin trạng thái giám sát (RCTP). Thông thường hai cổng mặc định được chọn là 5004 và 5005. Tín hiệu thoại tại phía phát sau khi được số hóa, qua bộ CODEC sẽ được nén thành các gói tin. Các gói tin này được gắn thêm các header tương ứng khi đến tầng UDP/IP. Các header thường có kích thuớc là 40 bytes chứa các thông tin về địa chỉ nguồn, địa chỉ đích, cổng tương ứng, header RTP và một số thông tin có liên quan khác.
Hình 1.9 Cấu trúc gói tin Header RTP cho biết các thông tin quan trọng về gói như phương pháp mã hóa, chỉ mục gói, nhãn thời gian,…Các thông tin này cho phép xác định sự ràng buộc giữa gói tin với thời gian. Nhờ đó, các gói tin được sắp xếp theo đúng thứ tự thời gian thực trước khi được giải mã và phát lại. RCTP có nhiệm vụ giám sát đánh giá quá trình truyền tin dựa trên việc truyền một cách định kỳ các gói tin điều khiển tới các thành viên tham gia hội thoại cùng với cơ chế truyền dữ liệu. Có thể kể ra bốn chức năng chính của RCTP như sau:
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 19
• Cung cấp cơ chế phản hồi chất lượng truyền dữ liệu. Bên gửi thống kê quá trình gửi qua các bản tin người gửi cho các thành viên. Bên nhận cũng làm nhiệm vụ thống kê các tin nhận qua bản tin người nhận. Từ việc giám sát các thông tin từ bên gửi và bên nhận có thể điều khiển lại các thông số cần thiết để tăng chất lượng cuộc gọi. Đây là chức năng quan trong nhất của RCTP. • Mỗi nguồn cung cấp gói tin RTP được định dạng bởi một tên CNAME. RCTP sẽ cho các thành viên biết tên này. • Quan sát số thành viên tham gia hội thoại bằng việc thống kê các bản tin. • Mang các thông tin thiết lập cuộc gọi, các thông tin về người dùng. Đây là chức năng tùy chọn. Nó đặc biệt hữu hiệu khi điều khiển các phiên lỏng, cho phép thêm bớt thành viên một cách dễ dàng mà không có ràng buộc nào. Thực ra để hệ thống VoIP hoạt đông hiệu quả nhất còn phải sử dụng nhiều giao thức khác. Có thể tham khảo các chuẩn mà ITU hay EITF đưa ra để biết rõ hơn về các giao thức này. 1.2.4 Những ưu điểm của VoIP VoIP ra đời khai thác được một cách hiệu quả những tính năng của mạng truyền số liệu, khai thác tính linh hoạt trong việc phát triển các ứng dụng mới của mạng IP. Những ưu điểm nổi bật của VoIP có thể kể ra dưới đây: • Giảm đáng kể chi phí cuộc gọi: đây là ưu điểm rất lớn của VoIP so với dịch vụ điện thoại truyền thống. VoIP có khả năng cung cấp những cuộc điện thoại đường dài với chi phí thấp và chất lượng dịch vụ chấp nhận được. Một khi VoIP đã được triển khai, chi phí các cuộc gọi đường dài tương đương với chi phí sử dụng internet. Nguyên nhân là các tín hiệu voice đã được mã hoá và truyền trong mạng IP nên khả năng sử dụng kênh đạt hiệu quả cao hơn. Bên cạnh đó, tín hiệu thoại bây giờ đã được nén từ 64 Kbps trước đây xuống còn 8 Kbps, kết hợp với tốc độ xử lý nhanh hiện nay đảm bảo cho VoIP có thể đáp ứng đòi hỏi thời gian thực trong điều kiện băng thông hạn chế. Khi thực hiện cuộc gọi trong mạng PSTN, chi phí bỏ ra là để duy trì một kênh truyền 64 Kbps xuyên suốt từ máy này đến máy kia thông qua các tổng đài. Với các cuộc gọi đường dài thì chí phí này rõ ràng là rất lớn. Trong khi đó, khi gọi từ mạng PSTN dùng VoIP thì chi phí phải bỏ ra chỉ là để duy trì một kênh 64 Kbps từ máy gọi đến gateway. Do đó hiệu quả kinh tế cao hơn nhiều. • Tích hợp mạng thoại, mạng số liệu và mạng báo hiệu: trong VoIP, tất cả các tín hiệu voice, data hay các báo hiệu đều có thể đi chung trong mạng IP. Điều này cho phép tiết kiệm được một chi phí đáng kể khi đầu tư xây dựng cơ sở hạ tầng. • Khả năng mở rộng: các hệ thống tổng đài cũ thường là hệ thống kín nên rất khó thêm vào những tính năng mới. Trong khi đó khi dùng VoIP với các mã nguồn mở cho phép tự do thêm vào các tính năng mới, đồng thời hệ thống sẽ linh hoạt hơn và dễ dàng mở rộng hơn. Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 20
• Không cần thông tin điều khiển để thiết lập kênh truyền vật lý: các gói thông tin trong mạng IP được truyền đến đích mà không cần phải thiết lập nên một kênh truyền riêng nào. • Quản lý băng thông hiệu quả: như đã nói ở trên, VoIP đã nén tín hiệu xuống còn 8 Kbps nên tiết kiệm được băng thông đáng kể. Ngoài ra việc quản lý băng thông cũng linh hoạt hơn do khả năng điều tiết băng thông phù hợp. • Dịch vụ đa dạng: VoIP cho phép tạo ra nhiều tính năng dịch vụ mới như thông tin người gọi tới, nhiều số cho một thiết bị đầu cuối, truyền file, chia sẻ dữ liệu, xem hình ảnh người gọi,…
1.2.5 Những hạn chế của VoIP • Kỹ thuật phức tạp: Đảm bảo thời gian thực trong truyền tín hiệu bằng các gói là rất khó do tình trạng mất gói và độ trễ không cố định • Vấn đề bảo mật: VoIP sử dụng mạng Internet làm cơ sở hạ tầng nên vấn đề bảo mật cần phải được đề cao vì Internet là môi trường phổ biến toàn cầu và rất phức tạp đồng thời nó cũng là hạ tầng chung cho rất nhiều các ứng dụng khác. 1.2.6 Một số dịch vụ của VoIP 1.2.6.1 Dịch vụ điện thoại qua Internet Với VoIP, người sử dụng có thể thực hiện các cuộc gọi không chỉ giữa các máy tính với nhau qua mạng internet mà còn giữa điện thoại với máy tính hay điện thoại với điện thoại. Hơn nữa, các thiết bị đầu cuối dùng cũng rất đa dạng, có thể là analoge phone, IP phone hay softphone... 1.2.6.2 Thoại thông minh Sự kết hợp giữa Internet và mạng PSTN cho phép tạo ra những dịch vụ điện thoại thông minh. Internet cho phép giám sát và điều khiển cuộc gọi hiệu quả hơn. 1.2.6.3 Dịch vụ tính cước cho cuộc gọi Thoại qua Internet cho phép nhà cung cấp những dịch vụ tính cước cuộc gọi cho các khách hàng trong và ngoài nước. Chỉ cần có PC kết nối Internet và phần mềm chuyển đổi như Quicknet‟s Technologies Internet PhoneJACK là có thể thực hiện được điều này. 1.2.6.4 Dịch vụ Callback Web “World Wide Web” đã làm một cuộc cách mang trong cách giao dịch với khách hàng của các doanh nghiệp. Với tất cả các tiềm năng của web, điện thoại vẫn là phương tiện kinh doanh không thể thiếu. “Điện thoại web” cho phép đưa các phím bấm lên trên web để kết nối các cuộc gọi. 1.2.6.5 Dịch vụ fax qua IP Khi sử dụng fax qua IP sẽ tiết kiệm được chi phí và kênh thoại. Lúc này fax được truyền trực tiếp qua Internet chứ không dùng line điện thoại như thông thường. Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 21
1.2.6.6 Dịch vụ Call Center Gateway Call Center với công nghệ thoại qua Internet cho phép nhà kiểm duyệt trang web với các PC trang bị multimedia kết nối được với bộ phân phối các cuộc gọi tự động. Một ưu điểm của thoại Ip là khả năng kết hợp thoại và dữ liệu trên cùng một kênh. 1.3 Kết luận Mặc dù khi mới ra đời, dịch vụ VoIP còn có nhiều điểm hạn chế so với dịch vụ gọi điện thoại đường dài truyền thống như thời gian kết nối lâu, cuộc gọi có khả năng bị đứt giữa chừng, tiếng thoại có độ trễ, kết nối lúc được lúc không. Tuy nhiên, sau những bước tiến lớn về tốc độ đường truyền Internet, VoIP đã cho thấy nhưng ưu điểm nổi trội của nó so với hệ thống PSTN truyền thống. Theo ước tính, dịch vụ VoIP hiện đang chiếm 60% thị phần điện thoại đường dài trong nước và quốc tế. VoIP sẽ không mất thời gian quá lâu để chiếm một vị trí thống trị tuyệt đối trong dịch vụ điện thoại đường dài trong nước và quốc tế.
Chương 2 Tổng quan về VoIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Chương 2
Trang 22
GIAO THỨC KHỞI TẠO PHIÊN SIP
2.1 Giới thiệu giao thức SIP Giao thức khởi tạo phiên (Session Initiation Protocol - SIP) là giao thức thuộc lớp ứng dụng dùng để khởi tạo, hiệu chỉnh và kết thúc cuộc gọi. Các chức năng cơ bản của SIP bao gồm: • Định vị người sử dụng: xác định hệ thống đầu cuối mà người dùng sử dụng cho truyền thông. • Tính sẵn có của người sử dụng: xem người sử dụng có sẵn sàng để giao tiếp không. • Khả năng người sử dụng: xác định các phương tiện truyền thông và các tham số cho các phương tiện sử dụng. • Khởi tạo phiên: báo chuông, thiết lập các thông số phiên. • Quản lý phiên: bao gồm việc chuyển đổi và kết thúc một phiên, thay đổi các thông số phiên và yêu cầu các dịch vụ. SIP là một thành phần được sử dụng chung với các giao thức khác để tạo thành hệ thống đa phương tiện hoàn chỉnh. Hai giao thức thường được sử dụng chung với SIP là giao thức vận chuyển thời gian thực RTP (Real-time Transport Protocol) và giao thức đặc tả phiên SDP (Session Description Protocol). RTP là giao thức cho phép vận chuyển các tín hiệu (gồm cả audio, video và text) đáp ứng theo thời gian thực. Các tín hiệu này được mã hoá và chia thành các gói để truyền qua Internet. SDP dùng để đặc tả các thông số của phiên. Một mạng SIP bao gồm nhiều thành phần, các thành phần đó có thể tương tác với nhau để thực hiện một phiên nào đó, đồng thời có thể tương tác với các thành phần của một mạng SIP khác một khi user có nhu cầu thực hiện kết nối tới một user khác không cùng mạng với nó.
Hình 2.1 Các thành phần của một mạng SIP
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 23
2.2 Các thành phần của SIP 2.2.1 User Agent User Agent bao gồm hai loại: User Agent Client và User Agent Server. Để dễ hiểu, ta có thể định nghĩa User Agent (UA) là một ứng dụng mà có thể khởi tạo (thiết lập), chấp nhận và kết thúc một cuộc gọi trong một phiên kết nối. Khi UA khởi tạo cuộc gọi bằng việc gửi bản tin yêu cầu INVITE thì UA sẽ đóng vai trò là một client. Ngược lại UA nhận bản tin yêu cầu thì nó lại có vai trò là một server. Trong một phiên kết nối của SIP, UA thường tồn tại trên các máy user dưới dạng các ứng dụng như PC cài softphone nhưng nó cũng có thể là phần cứng được “nhúng” sẵn phần mềm hỗ trợ giao thức SIP như IP phone…hoặc là cell phone, các cổng PSTN, thiết bị hỗ trợ cá nhân PDA… 2.2.1.1 User Agent Client User Agent Client (UAC) có nhiệm vụ gửi bản tin yêu cầu để khởi tạo phiên kết nối. Chức năng này chỉ tồn tại trong quá trình gửi bản tin yêu cầu ( tạm gọi là quá trình giao dịch). Vì sau khi gửi xong bản tin, nó lại có thể nhận một yêu cầu từ một UA khác. Vào lúc này, nó không còn là UAC nữa mà lại là UAS (User Agent Server). Một UAC có thể gửi các bản tin yêu cầu như INVITE, ACK, OPTIONS, BYE, CANCEL và REGISTER. 2.2.1.2 User Agent Server User Agent Server (UAS) có nhiệm vụ nhận bản tin yêu cầu, sau đó xử lý bản tin yêu cầu này và cuối cùng là gửi bản tin phản hồi về nơi đã phát bản tin yêu cầu đến cho nó. Cũng như UAC, UAS chỉ có vai trò trong thời gian nhận bản tin yêu cầu và gửi lại bản tin phản hồi, khi quá trình này kết thúc thì nó lại có thể là một UAC nếu nó gửi yêu cầu cho một Client hoặc một Server khác. Như vậy, một thiết bị đầu cuối trong mạng SIP vừa có thể là UAC và vừa có thể là UAS. Tuy nhiên nó chỉ có thể đảm nhiệm một chức năng duy nhất trong một quá trình giao dịch. Tùy thuộc vào việc nhận hay là gửi bản tin yêu cầu mà nó có thể là UAC hoặc UAS. 2.2.2 Các loại Server trong mạng SIP 2.2.2.1 Proxy Server Proxy Server là một thực thể trung gian có nhiệm vụ nhận các bản tin yêu cầu SIP, gửi lại bản tin đáp ứng về nơi đã gửi bản tin yêu cầu và cuối cùng là forward bản tin yêu cầu này đến UAS hoặc một Server khác. Như vậy, Proxy Server vừa là một UAC vừa là một UAS. Khi nó nhận bản tin yêu cầu từ một UAC thì nó đóng vai trò như một UAS. Ngược lại, khi nó forward bản tin yêu cầu mà nó nhận được thì nó lại là một UAC. Tuy nhiên, Proxy Server không trực tiếp tạo ra bản tin yêu cầu như một UAC mà tiếp nhận bản tin yêu cầu rồi chỉnh sửa bản tin này cho phù hợp rồi forward chúng đi mà thôi. Hơn nữa, Proxy Server chỉ có thể nhận và forward các bản tin báo hiệu SIP chứ không nhận hoặc forward bản tin thoại. Proxy Server được chia làm hai loại: Stateless Proxy và Statefull Proxy. Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 24
Stateless Proxy chỉ đơn giản là forward bản tin đi. Khi nhận một bản tin yêu cầu, Stateless Proxy sẽ xử lý yêu cầu này sau đó nó forward bản tin yêu cầu đã được xử lý mà không có lưu lại bất kì trạng thái nào của quá trình giao dịch. Điều này có nghĩa là Stateless Proxy sẽ không nhớ là nó đã từng nhận và xử lý bản tin yêu cầu này. Đây cũng chính là nhược điểm của Stateless Proxy. Vì Stateless Proxy hoàn toàn không biết được quá trình giao dịch có thành công hay không và nó cũng không thể truyền lại các bản tin yêu cầu hay bản tin phản hồi đã gửi trước đó trong trường hợp bản tin bị mất hay thất lạc. Statefull Proxy phức tạp hơn Stateless Proxy. Trong lúc nhận bản tin yêu cầu, Stateful Proxy sẽ tạo ra một trạng thái và giữ nó cho đến khi sự giao dịch kết thúc. Vì thế nó có thể truyền lại các bản tin mà nó đã gửi trước đó. Ví dụ như khi một bản tin Request được forward đi thì đồng thời bộ định thời được bật lên, nếu như trong khoảng thời gian nào đó mà không nhận được bản tin Response thì Proxy Server sẽ tiến hành gửi lại bản tin Request đó. Statefull còn có ưu điểm là có khả năng “fork” (rẻ nhánh). Có nghĩa là trong khi nhận một bản tin yêu cầu, nó cũng có thể gửi đi một hay nhiều bản tin khác. Hầu hết các Proxy Server ngày nay đều là Statefull Proxy vì chúng đòi hỏi cấu hình phức tạp, các chức năng giám sát, rẻ nhánh, tính toán…và các chức năng thiết yếu của một Statefull Proxy. 2.2.2.2 Redirect Server Redirect Server là một thực thể có nhiệm vụ nhận bản tin yêu cầu và đáp ứng lại bằng một bản tin 3XX. Bản tin này sẽ chứa danh sách các vị trí có thể có của phía bị gọi. UAC hoặc Proxy sẽ căn cứ vào danh sách địa chỉ này để trực tiếp liên lạc mà không cần phải thông qua Redirect Server. 2.2.2.3 Registrar Server Registrar Server có nhiệm vụ nhận bản tin đăng kí từ phía user. Trong bản tin đăng kí này sẽ có username, password, IP address hoặc SIP URI và các thông tin này sẽ được Registrar Server lưu lại trong một vùng cơ sở dữ liệu. Vùng cơ sở dữ liệu này còn được gọi là Location Service - một vùng database trừu tượng để cho Proxy hay Redirect truy xuất đến nó khi cần thiết. Thông thường với các hệ thống nhỏ, Registrar server được cài đặt cùng với Proxy Server/ Redirect Server. Tuy nhiên với các hệ thống lớn, nếu tích hợp Registrar Server cùng với Proxy hoặc Redirect thì sẽ gây ra hiện tượng quá tải (over load), và một khi có lỗi xãy ra sẽ ảnh hưởng đến toàn bộ hệ thống. Do đó, trong trường hợp đòi hỏi phải lưu trữ nhiều cơ sở dữ liệu thì Registrar được cài đặt trên một máy tính ở xa. Khi đó, các Proxy Server/ Redirect Server muốn truy xuất để lấy database thì lại phải sử dụng một giao thức khác (không phải giao thức SIP) – giao thức LDAP.
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 25
2.2.3 Back to Back User Agent (B2BUA)
\ Hình 2.2 Mô hình B2BUA B2BUA là một thực thể logic của mạng SIP. Nó tương tự như một Proxy Server: vừa là một UAC vừa là một UAS trong việc nhận và forward bản tin yêu cầu cũng như gửi lại bản tin phản hồi. Tuy nhiên, B2BUA khác với Proxy Server ở chỗ nó tham gia vào suốt quá trình hội thoại giữa hai đầu cuối. Bản tin báo hiệu và bản tin thoại đều phải thông qua B2BUA. B2BUA có khả năng ngắt kết nối trong khi Proxy Server thì không thể. Điều đặc biệt ở chỗ là B2BUA sẽ “ẩn” danh tính (địa chỉ IP hoặc SIP URIs) của bên đã gửi bản tin đến nó, thậm chí cho phép sửa đổi các thông tin trong bản tin như port, codecs, địa chỉ IP. Tuy nhiên, một số trường hợp vẫn có thể cấu hình B2BUA sao cho nó hoạt động như một Proxy. Tức là bản tin báo hiệu vẫn thông qua B2BUA còn bản tin thoại thì lúc này sẽ trực tiếp gửi qua lại giữa các đầu cuối mà không thông qua B2BUA. Asterisk Server hoạt động như một B2BUA, ta có thể cấu hình trong file sip.conf với thông số canreinvite=yes/no để gói tin thoại có thể hoặc không thể qua Asterisk Server.
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 26
Hình 2.3 Cấu hình Asterisk với canreinvite 2.2.4 Các cơ chế hoạt động của SIP 2.2.4.1 Mô hình Peer to Peer
Hình 2.4 Mô hình Peer to Peer Trong mô hình này, cả Tesla và Marconi đều đã biết địa chỉ của nhau. Đầu tiên, Tesla muốn thiết lập cuộc gọi với Marconi nên gửi bản tin yêu cầu INVITE đến Marconi. Giả sử Marconi không sẳn sàng thiết lập phiên kết nối thì sau một khoảng thời gian khi Marconi không gửi lại bản tin đáp ứng nào chứng tỏ mình có khả năng thực hiện cuộc gọi thì một bản tin Request Timeout được gửi từ Marconi đến Tesla. Nếu Marconi đang rảnh, một tín hiệu chuông sẽ được gửi từ Marconi về cho Tesla, lúc này Tesla hiểu rằng Marconi đã nhận được bản tin INVITE. Khi Marconi nhấc máy, một bản tin 200 OK từ Marconi gửi về Tesla báo cho Tesla biết rằng Marconi chấp nhận yêu cầu thiết lập phiên kết nối với Tesla. Khi đó, Tesla sẽ gửi lại một bản tin ACK để Marconi biết rằng Tesla đã nhận được bản tin 200 OK. Phiên kết nối lúc này chính thức được thiết lập. Dòng Media từ Tesla tới Marconi và ngược lại được truyền theo giao thức RTP.
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 27
Trong quá trình đàm thoại, cả hai bên Tesla và Marconi đều có quyền yêu cầu chấm dứt phiên kết nối bằng cách gửi một bản tin yêu cầu BYE. Khi đó bên còn lại sẽ xác nhận việc nhận bản tin BYE bằng bản tin 200 OK để kết thúc phiên kết nối. Mô hình Peer to Peer là mô hình không thông dụng bởi vì đòi hỏi các SIP phones phải lưu trữ lại tên và địa chỉ của các SIP Phones khác. Vậy với một số lượng lớn các SIP phones thì sao? Lúc này cuộc gọi sẽ thực hiện qua một cơ chế khác đó là thông qua Proxy Server hoặc Redirect Server. 2.2.4.2 Mô hình thông qua proxy server
Hình 2.5 Cơ chế hoạt động của SIP thông qua Proxy server
Hình 2.6 Mô hình SIP thông qua Proxy Đầu tiên, user1 sẽ gửi bản tin INVITE để yêu cầu được thiết lập phiên kết nối với user2. Tuy nhiên user1 không biết chính xác địa chỉ của user1 trong mạng IP nên nó gửi INVITE này đến cho Proxy Server - quản lý miền của user1.
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 28
Proxy Server lúc này sẽ gửi một đáp ứng 100 TRYING về cho user1 để thông báo cho user1 rằng proxy đang thay mặt user1 forward bản tin này đến cho user2. Proxy Server sẽ truy xuất lên vùng dữ liệu của nó để tìm kiếm địa chỉ hiện tại của user2. Nếu user2 đã đăng kí với Registrar Server thì các thông tin như username, password của nó sẽ được lưu trữ trong vùng dữ liệu database để Proxy/Redirect có thể truy xuất bất cứ lúc nào. Location Service sẽ gửi trả lại cho proxy địa chỉ hiện tại của user2. Proxy Server sẽ gửi một bản tin INVITE mới dựa trên bản tin INVITE mà nó đã nhận được từ user1 để gửi đến user2. Nhưng lúc này, Request URI trong dòng Start Line đã được đổi thành
[email protected] (địa chỉ hiện tại của User2). User2 đáp ứng lại bản tin INVITE từ Server bằng bản tin 100 TRYING. SIP phone của User2 xuất hiện tín hiệu chuông để cảnh báo với user2 rằng có một cuộc gọi đang đến. Đồng thời, một bản tin 180 RINGING từ SIP phone của user2 gửi về cho user1 thông qua Proxy để thông báo với user1 rằng user2 đã nhận được bản tin INVITE của user1. Khi user2 nhấc máy, một bản tin 200 OK được gửi từ sip phone của user2 đến user1 để thông báo với user1 rằng user2 đã nhận cuộc gọi. Khi user1 nhận được bản tin 200 OK, user1 hiểu rằng user2 đã nhấc máy và chấp nhận kết nối vói user1. Lúc này user1 sẽ gửi một xác nhận ACK về cho user2 để thông báo với user2 rằng nó đã nhận được đáp ứng 200 OK và lúc này cuộc gọi chính thức được thiết lập. 2.2.4.3 Cuộc gọi SIP thông qua mô hình Redirect Server
Hình 2.7 Cuộc gọi SIP thông qua Redirect Server Đầu tiên user1 gửi một bản tin INVITE đến Redirect Server là
[email protected] để yêu cầu được thiết lập cuộc gọi với user2. Redirect Server lúc này sẽ tìm kiếm trong cơ sở dữ liệu của nó (location service) vị trí hiện tại của user2. Location sau khi tìm được địa chỉ của user2 sẽ gửi địa chỉ này về user1 thông qua bản tin đáp ứng 302. Địa chỉ của user2 lúc này là
[email protected]. Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 29
Sau khi nhận được đáp ứng 302 từ phía redirect server, user1 sẽ xác nhận việc đã nhận được bản tin này bằng bản tin ACK. Dựa vào địa chỉ của user2 trong bản tin đáp ứng 302 từ Redirect Server, user1 sẽ trực tiếp gửi bản tin INVITE đến cho user2 ở địa chỉ sev.alp.com User2 nhấc máy để chấp nhận cuộc gọi, đồng thời một bản tin 200 OK được gửi từ user2 đến user1. User1 sẽ gửi bản tin ACK đến user2 để xác nhận với user2 rằng nó đã nhận được đáp ứng 200 OK của user2. Lúc này cuộc gọi được thiết lập. SIP Registration
Hình 2.8 Quá trình đăng kí của User Hầu hết các cuộc gọi SIP thường có sự tham gia của Server. Vì vậy Server có vai trò quan trọng trong việc tìm kiếm vị trí của user bị gọi. Mỗi user phải được đăng kí với Registrar Server về vị trí hiện tại của user đó bằng cách gửi một bản tin REGISTER. Bản tin này sẽ chứa các thông tin về user như username và password, địa chỉ IP…Registrar Server sẽ lưu các thông tin này vào vùng cơ sở dữ liệu của nó. Proxy và Redirect có thể truy xuất lên cơ sở dữ liệu này để định vị được user bị gọi.
Hình 2.9 Các bước đăng kí lên Registrar Server Đầu tiên userB sẽ gửi một bản tin REGISTER đến Registrar Server để đăng kí. Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 30
Registrar Server sẽ gửi một bản tin phản hồi 401 Unauthenticate về cho userB, thông báo với userB rằng Registrar server chưa nhận dạng được userB. Sau đó user B sẽ gửi lại bảng tin REGISTER tới Registrar Server kèm theo các thông tin về chứng thực trong trường Authentication như Username, password đã được mã hóa MD5, địa chỉ SIP URI… Registrar Server sẽ gửi lại cho userB bảng tin 200 OK thông báo cho user B rằng việc đăng kí đã thành công. Cuộc gọi SIP thông qua mô hình B2BUA:
Hình 2.10 Cuộc gọi SIP qua B2BUA Về cơ bản, B2BUA hoạt động giống như một Proxy Server ở chức năng báo hiệu. Tuy nhiên, B2BUA khác ở một Proxy ở chỗ là bản tin thoại cũng phải thông qua B2BUA chứ không trực tiếp truyền giữa hai user. Đầu tiên, UserA muốn thiết lập cuộc gọi với userB nhưng lại không biết chính xác vị trí của UserB nên userA gửi bản tin INVITE đến B2BUA. B2BUA tìm kiếm vị trí của userB trong cơ sở dữ liệu của nó rồi forward bản tin INVITE mới đến userB. Bản tin INVITE này đã được B2BUA thay đổi trường Via với địa chỉ của chính nó. Khi userB nhận được bản tin INVITE từ B2BUA, một tín hiệu chuông 180 RINGING sẽ được gửi từ userB đến B2BUA báo với B2BUA rằng userB đã nhận được bản tin yêu cầu INVITE và đang rung chuông để cảnh báo bên bị gọi là có cuộc gọi đang đến. B2BUA gửi bản tin 180 RINGING về cho userA. Khi userB nhấc máy, một bản tin 200 OK sẽ được gửi đến B2BUA để thông báo rằng userB đã chấp nhận cuộc gọi. B2BUA lại forward bản tin 200 đến cho userA. UserA xác nhận bằng bản tin ACK gửi đến B2BUA, B2BUA lại forward bản tin này đến userB. Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 31
Phiên cuộc gọi được thiết lập. Lưu ý: Đến đây userA muốn gửi tín hiệu thoại đến userB thì trước tiến nó phải gửi bản tin thoại đến B2BUA, B2BUA mới chuyển bản tin thoại đến userB và ngược lại. B2BUA hoàn toàn giấu danh tính của hai bên cho dù cuộc gọi đã được thiết lập. Vì thế hai bên tham gia cuộc gọi không hề biết thông tin về nhau. 2.3 SIP và H.323 Như đã trình bày ở trên, SIP và H.323 là hai dạng cơ bản tạo nên VoIP. Trong phần này chúng ta sẽ so sánh các đặc điểm nổi bậc của chúng. 2.3.1 Mức độ phức tạp H.323 là giao thức phức tạp, riêng tài liệu hướng dẫn của nó thôi cũng đã lên đến 736 trang, trong khi đó, SIP là giao thức đơn giản hơn với 128 trang chỉ dẫn. H.323 định nghĩa ra hàng trăm thành phần, còn SIP chỉ có 37 header, trong đó mỗi phần nhỏ chứa ít tham số và biến hơn nhưng lại mang nhiều thông tin hơn. Về cơ bản, trong điện thoại Internet, SIP sử dụng chủ yếu 4 header (To, From, Call-ID và Cseq) và 3 dạng yêu cầu (INVITE, ACK và BYE). H.323 dùng dạng trình diễn nhị phân cho các bản tin dựa trên ASN.1 và PER (Packet Encoding Rules). SIP thì sử dụng một dạng trình diễn khác, đó là dạng text, khá giống với HTTP và RTSP (Real Time Streaming Protocol), làm cho cú pháp cũng như là quá trình xử lý đơn giản hơn. Bên cạnh đó, với dạng text, SIP còn tận dụng được sức mạnh của các ngôn ngữ xử lý như Perl. Sự phức tạp của H.323 còn thể hiện ở chỗ nó dùng nhiều protocol khác như H.450, H.225.0 và H.245. Việc sử dụng như vậy làm nẩy sinh nhiều vấn đề liên quan đến firewall. Ngược lại, SIP sử dụng protocol đơn giản hơn, và chỉ yêu cầu những thông tin cần thiết mà thôi. 2.3.2 Khả năng mở rộng Khả năng mở rộng là một thước đo rất quan trọng để đánh giá một protocol. SIP dựa trên nền tảng của HTTP và SMTP (Simple Mail Tranfer Protocol), những protocol đã và đang được sử dụng rộng rãi, và được thiết kế với những tính năng cho phép mở rộng về sau. Theo mặc định, những header không rõ ràng sẽ bị loại bỏ. Các clients sử dụng header Require để yêu cầu các tính năng nào đó từ server. Chú ý rằng các tính năng này phải được server lưu trữ và nhận biết. Khi nhận được yêu cầu, server sẽ kiểm tra xem thử những tính năng này có tồn tại hay không và cho câu trả lời tương ứng. Các tính năng mới có thể được đăng ký với server, điều này có nghĩa là người sử dụng có thể viết ra những tính năng mới và đăng ký với server để sử dụng. Để tăng cường khả năng mở rộng, các lỗi trong SIP được chia làm 6 lớp, mỗi lớp tương ứng với một dạng lỗi. SIP giống như HTTP nên cơ chế mở rộng của nó cũng giống với HTTP. PEP (Protcol Extension Protocol) là một cách được sử dụng phổ biến. H.323 cũng cung cấp cơ chế mở rộng khá tốt. Tuy nhiên vẫn có một số giới hạn. Thứ nhất, việc mở rộng chỉ cho phép với những nơi có các tham số nonstandard. Khách hàng không thể thêm giá trị mới vào cho tham số sẵn có. Thứ hai, Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 32
H.323 không cung cấp cơ chế để các thiết bị đầu cuối trao đổi thông tin với các mở rộng mà nó hỗ trợ. Những giá trị tham số này không tự nói lên ý nghĩa của nó. Đó là những giá trị của riêng các nhà sản xuất. 2.4 SIP và IAX Các thành phần thông tin trong IAX được mã hóa theo bit nhị phân thay vì mã hóa ASCII. Kích thước của gói báo hiệu IAX nhỏ hơn nhiều so với giao thức SIP, nhưng đó không phải là vấn đề cần quan tâm trừ khi có một số lượng lớn các client đăng ký thường xuyên. Nói chung, IAX2 hiệu quả hơn trong việc mã hóa, giải mã và xác định thông tin. Tuy nhiên rất khó để ứng dụng IAX vào thực tế để xem nó tương thích như thế nào với những công nghệ khác bởi vì có quá ít tài liệu nói về chúng. Chỉ sử dụng duy nhất một đường để truyền media và báo hiệu nên IAX cho phép nó được định hướng NAT trong suốt và chỉ sử dụng một port duy nhất nên dễ dàng trong việc quản lý. Vì vậy không bao giờ có tình huống cuộc gọi đã được thiết lập mà không thể chuyển tín hiệu âm thanh (ngoại trừ vấn đề không đủ băng thông). SIP tuân theo chuẩn IETF, trong khi đó IAX chỉ mới có một vài tài liệu mới xuất bản nên tiêu chuẩn của nó vẫn chưa được công nhận. IAX cho phép một đầu cuối kiểm tra tính hợp lý của số điện thoại quay để biết việc quay số đã hoàn tất chưa hay vẫn còn dang dở. Điều này không được hỗ trợ trong giao thức SIP. Các bản tin trong IAX được gọi là các frame và được chia làm 3 loại chính là full, mini và meta frame. Để xác định bản tin thuộc loại nào thì dựa vào bit F trong bản tin, nếu F=1thì bản tin thuộc loại full frame, còn F=0 thì có thể là mini hay meta frame. Loại Frame
Đặc tính chính
Kích thước
Mini
Không yêu cầu bản tin ACK từ IAX bên kia
4 bytes
Vận chuyển dữ liệu thoại
Full
Yêu cầu sự xác nhận từ bên kia
12 bytes
Vận chuyển dữ liệu đòi hỏi độ tin cậy như bản tin báo hiệu
Meta
Video Không yêu cầu bản tin frame:6 bytes Vận chuyển video hay nhiều ACK từ IAX bên kia miniframe chỉ với một header Trunk frame:8 bytes
Mục đích sử dụng
Bảng 2.1 Các loại Frame trong giao thức IAX Tóm lại là IAX là giao thức dành cho VoIP mới nhất cho đến thời điểm này với nhiều ưu điểm hấp dẫn như:
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Tối thiểu sử dụng băng thông.
Trong suốt với NAT.
Hiệu quả với cơ chế trung kế.
Trang 33
2.5 Kết luận SIP ngày càng trở nên phổ biến và đã trở thành một giao thức báo hiệu chính của VoIP. Vì vậy việc tiêu chuẩn hóa giao thức báo hiệu SIP là cần thiết. Giao thức SIP cho phép thực hiện truyền thông liên doanh nghiệp đa phương tiện và cung cấp một cấp độ phát minh và lợi thế cạnh tranh mới. Giao thức này sẽ được sử dụng để hội tụ rất nhiều ứng dụng, thiết bị và cách thức truyền thông để tạo ra những tính năng và khả năng mới.Các lợi ích của SIP sẽ trở thành một bộ phận không tách rời của hệ thống truyền thông và mạng thông minh.
Chương 3 Giao thức khởi tạo phiên SIP
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Chương 3
Trang 34
GIỚI THIỆU VÀ CÀI ĐẶT ASTERISK
3.1 Tổng đài IP PBX 3.1.1 Khái quát về tổng đài IP PBX Ứng dụng phổ biến nhất và sớm nhất của VoIP, nền tảng để tạo ra IP-PBX, là việc thiết lập gateway VoIP bên phía trung kế của PBX. Gateway này đóng gói luồng thoại và định tuyến nó qua mạng VoIP. Giải pháp này tận dụng các đặc tính hiện có của tổng đài PBX như thoại hội nghị, chuyển tiếp cuộc gọi, … Cuối cùng, các nhà phát triển phần mềm đã phát triển lên PBX “mềm”, hay IPPBX. IP- PBX cung cấp khả năng chuyển mạch, thực hiện các dịch vụ gia tăng qua mạng dữ liệu. Các cuộc gọi trong một tổng đài và các cuộc gọi giữa các tổng đài được định tuyến qua mạng IP, đi vòng qua toàn bộ mạng PSTN. IP-PBX có thể giao tiếp với mạng PSTN thông qua Gateway. 3.1.2 Các ưu điểm so với tổng đài PBX truyền thống Các ưu điểm của IP-PBX xuất phát từ những ưu điểm của mạng chuyển mạch gói IP so với mạng chuyển mạch kênh, như: Quản lý và bảo dưỡng dễ dàng hơn. Khả năng kết nối từ xa, khả năng di động. Kết hợp thoại/dữ liệu tạo ra ứng dụng mới. Dễ dàng phát triển các dịch vụ mới do cấu trúc mở và các giao diện chuẩn. Dễ sử dụng do được hỗ trợ nhiều bởi phần mềm và giao diện đồ họa GUI. Thông tin hợp nhất. 3.1.3 So sánh giữa IP PBX và PBX truyền thống PBX truyền thống
IP PBX
PBX không thực hiện được một chức IP-PBX có đầy đủ các chức năng của một năng của IP-PBX: Web, Instant message, PBX truyền thống (CTI, VoiceMail, ACA E-mail… và kết nối ISDN ra PSTN). Cho phép thực hiện liên lạc nội bộ qua PBX đòi hỏi phải có một hệ thống mạng mạng LAN ngay cả khi chưa có hệ thống điện thoại nội bộ. PBX. PBX truyền tín hiệu thoại trên hệ thống đường điện thoại nội bộ. Nếu muốn IP-PBX truyền dữ liệu và thoại trên cùng truyền dữ liệu, bắt buộc phải có thêm hệ một đường dây. thống mạng LAN. Hỗ trợ duy nhất một loại đầu cuối là điện IP-PBX có khả năng hỗ trợ nhiều đầu cuối
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing thoại tương tự.
Trang 35
thoại khác nhau: điện thoại tương tự, điện thoại IP, máy tính cá nhân...
Có thêm nhiều dịch vụ giá trị gia tăng Khả năng phát triển các loại hình dịch vụ khác: telephone, e-mail, fax, web call giá trị gia tăng kém. back, web chat, instant messaging,... Tín hiệu trước khi chuyển đến đường truyền đã được thông qua các bộ nén và giải nén, băng thông cho mỗi cuộc gọi có Mỗi đường dây thoại chỉ có thể thực hiện thể được nén xuống còn 5,3 Kbits/s được một cuộc gọi tại một thời điểm, do (chuẩn nén thoại G.723.1), thay vì 64 đó không tiết kiệm băng thông. Kbits/s của thoại thường. Do tính chất tiết kiệm băng thông như vậy nên với một đường dây thoại (CO line) có thể thực hiện được nhiều cuộc gọi hơn. Khó mở rộng, nâng cấp và bảo dưỡng.
Dễ dàng mở rộng, nâng cấp và bảo dưỡng.
Bảng 3.1 So sánh giữa PBX truyền thống và IP-PBX 3.1.4 Khả năng áp dụng trong các doanh nghiệp vừa và nhỏ Có thể đơn giản hoá quá trình triển khai tổng đài IP-PBX cho một doanh nghiệp như sau:
Xây dựng mạng LAN.
Thiết lập hệ thống máy chủ và cài đặt phần mềm điều khiển IP-PBX.
Thiết lập các Gateway ra mạng PSTN hoặc Internet.
Thiết lập các đầu cuối VoIP.
Bước thứ nhất là phức tạp nhất và đòi hỏi đầu tư lớn nhất nhưng thực ra lại đơn giản nhất vì đa số các doanh nghiệp đã có sẵn mạng LAN. Bước thứ 2 quan trọng nhất, nhưng thực ra cũng chỉ đơn giản là cài đặt phần mềm lên một máy chủ. Máy chủ này có thể là dành riêng cho IP-PBX hoặc cũng có thể được chia sẻ với các ứng dụng khác của doanh nghiệp. Bước thứ 3 đòi hỏi phải mua thiết bị chuyên dụng để kết nối với mạng PSTN. Gateway kết nối IP/PSTN thường là card PCI cắm trong máy chủ cộng với phần mềm điều khiển chuyên dụng. Các đầu cuối VoIP trong bước 4 có thể là phần mềm chạy ngay trên máy PC (là các Softfone như X-lite) hay là một thiết bị chạy độc lập (như IP Phone của Cisco) và cũng có thể là các Mobile Fone hỗ trợ SIP. 3.2 Tìm hiểu về Asterisk Asterisk là hệ thống chuyển mạch mềm, là phần mềm mã nguồn mở được viết bằng ngôn ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 36
tổng đài PBX và hơn thế nữa. Asterisk ra đời vào năm 1999 bởi một chàng trai sinh năm 1977 tên là Mark Spencer. Anh ta viết phần mềm này ban đầu không ngoài mục đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại hỗ trợ cộng đồng người sử dụng và phát triển Linux. Asterisk đem đến cho người sử dụng tất cả các tính năng và ứng dụng của hệ thống tổng đài PBX và cung cấp nhiều tính năng mà tổng đài PBX thông thường không có được, đó là sự kết hợp giữa chuyển mạch VoIP và chuyển mạch TDM, đó là khả năng mở rộng đáp ứng nhu cầu cho từng ứng dụng… Asterisk là một phần mềm thực hiện chức năng tổng đài điện thoại PBX mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí, biến 1 PC thông thường chạy hệ điều hành Linux thành 1 hệ thống điện thoại doanh nghiệp mạnh mẽ. Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là 1 server xử lý cuộc gọi đầy đủ chức năng. Asterisk là một nền tảng tích hợp điện thoại vi tính hóa kiến trúc mở. Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới. Và hiện nay Asterisk vẫn tiếp tục được cộng đồng những người dùng trên thế giới phát triển mạnh mẽ. Asterisk có thể được sử dụng cho nhiều thứ và có các đặc trưng bao gồm: •
Private Branch Exchange (PBX).
•
Voicemail Services with Directory.
•
Conferencing Server.
•
Packet Voice Server.
•
Encryption of Telephone hoặc Fax Calls.
•
Heterogeneous Voice over IP gateway (H.323, SIP, MGCP, IAX).
•
Custom Interactive Voice Response (IVR) system.
•
Soft switch.
•
Number Translation.
•
Calling Card Server.
•
Predictive Dialer.
•
Call Queueing với Remote Agents.
•
Gateway và Aggregation cho các hệ thống PBX.
•
Remote Office hay User Telephone Services.
•
PBX long distance Gateway.
•
Telemarketing Block.
•
Standalone Voicemail System.
Hiện nay Asterisk đang trên đà phát triển nhanh được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình. Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều cần phải liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh và cần một chi phí thấp thậm chí không phải tốn chi phí khi
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 37
thực hiện các cuộc gọi nội bộ của công ty. Không gói gọn thông tin liên lạc trong công ty mà các ứng dụng giao tiếp với mạng PSTN hoặc mạng VoIP (như voice777) cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN. Ngoài ra việc tích hợp vào các ứng dụng như CRM và hệ thống Outlook làm cho khả năng ứng dụng của Asterisk linh hoạt hơn đáp ứng nhu cầu cần thiết cho người sử dụng điện thoại. Asterisk thoạt đầu được phát triển trên GNU/Linux nền x86 (Intel), nhưng giờ đây nó cũng có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac OS X và Microsoft Windows.
Hình 3.1 Asterisk giao tiếp với các hệ thống, thiết bị khác Asterisk là hệ thống chuyển mạch tích hợp vừa là công nghệ truyền thống TDM vừa là chuyển mạch VoIP. Hình trên cũng cho thấy khả năng giao tiếp của hệ thống. Giao tiếp với điện thoại analog thông thường, giao tiếp với thiết bị điện thoại VoIP, ngoài ra còn có thể giao tiếp với mạng PSTN và các nhà cung cấp VoIP khác.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 38
3.2.2 Kiến trúc cơ bản của Asterisk
Hình 3.2 Kiến trúc cơ bản của Asterisk Về cơ bản kiến trúc của Asterisk là sự kết hợp giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại, công nghệ điện thoại cho VOIP như SIP, H323, IAX, MGCP... các công nghệ điện thoại cho hệ thống chuyển mạch mạch TDM như T1, E1, ISDN và các giao tiếp đường truyền thoại Analog. Các ứng dụng thoại như chuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail, chuyển cuộc gọi… Asterisk có một số chức năng chính đóng vai trò quan trọng trong hệ thống chuyển mạch cuộc gọi. Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống. Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào kế hoạch quay số (Dialplan) được thực hiện cấu hình trong file extension.conf. •
Chức năng Application Launchar để rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại…
•
Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao, các chức năng được phát triển bởi cộng đồng phát triển asterisk.
•
Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc được với nhau.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing •
Trang 39
Tất cả các cuộc gọi định hướng qua hệ thống Asterisk đều thông qua các giao tiếp như SIP, Zaptel, IAX. Nên hệ thống Asterisk phải đảm trách nhiệm vụ liên kết các giao tiếp khác nhau đó để xử lý cuộc gọi.
3.2.3 Hệ thống cũng bao gồm 4 chức năng API chính • Codec translator API: các hàm đảm nhiệm thực thi và giải nén các chuẩn khác nhau như G711, GMS, G729… • Asterisk Channel API: Giao tiếp với các kênh liên lạc khác nhau, đây là đầu mối cho việc kết nối các cuộc gọi tương thích với nhiều chuẩn khác nhau như SIP, IAX, H323, Zaptel… • Asterisk file format API: Asterisk tương thích với việc xử lý các loại file có định dạng khác nhau như mp3, wav, gsm… • Asterisk Aplication API: Bao gồm tất cả các ứng dụng được thực thi trong hệ thống Asterisk như Voicemail, CallerID… Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạp với một số ngôn ngữ như PHP hay Perl. Nói chung, khả năng viết các ứng dụng tùy biến rất lớn. 3.2.4 Các mô hình ứng dụng triển khai 3.2.4.1 Tổng đài VoIP IP PBX
Hình 3.3 Mô hình tổng đài Asterisk PBX
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 40
Đây là hệ thống chuyển mạch VoIP được xây dựng phục vụ các công ty có nhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai. Thay vì lắp đặt một hệ thống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống VoIP điều này sẽ làm giảm chi phí đáng kể. Hệ thống có thể liên lạc với mạng PSTN qua card giao tiếp TDM hoặc các gateway. Kết nối IP PBX với PBX
Hình 3.4 Kết nối IP PBX với PBX Một ngữ cảnh đặt ra ở đây là hiện tại công ty đã trang bị hệ thống PBX bây giờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phí thấp nhất, giải pháp để thực hiện đó là trang bị hệ thống Asterisk và kết nối với hệ thống PBX đang tồn tại qua luồng E1. Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VoIP khác, công ty có thể thực hiện kết nối với nhà cung cấp dịch vụ VoIP.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 41
3.2.4.2 Kết nối giữa các server Asterisk
Hình 3.5 Kết nối các server Asterisk Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị trị địa lý khác nhau nhằm giảm chi phí đường dài. Ví dụ công ty mẹ có trụ sở đặt tại nước Mỹ và các chi nhánh đặt tại Việt Nam với các địa điểm thành phố Hồ Chí Minh và Hà Nội. Thông qua mạng WAN của công ty các cuộc gọi nội bộ giữa các vị trí khác nhau sẽ làm giảm chi phí đáng kể.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 42
3.2.4.3 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị
Hình 3.6 Ứng dụng IVR, Voicemail, Conference Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBX để triển khai các ứng dụng như tương tác thoại IVR. Một ví dụ cho ứng dụng tương tác thoại đó là cho biết kết quả sổ số hay kiểm tra cước cuộc gọi giống dịch vụ 19001260 vậy. Ứng dụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống như chức năng hộp thư thoại của bưu điện thành phố. 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.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 43
3.2.4.4 Chức năng phân phối cuộc gọi tự động ACD
Hình 3.7 Chức năng ACD ACD (Automatic Call Distribution): Phân phối cuộc gọi tự động. Đây là chức năng ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hồi từ phía khách hàng. Giả sử công ty có khả năng tiếp nhận cùng một lúc 10 cuộc gọi. Như thế cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào? Bình thường thì sẽ nghe tín hiệu bận nhưng với chức năng phân phối cuộc gọi sẽ đưa thuê bao đó vào hàng đợi để chờ trả lời, trong khi chờ trả lời cuộc gọi thuê bao có thể nghe những bài hát hay do Asterisk cung cấp, trong lúc này nếu 1 trong 10 số điện thoại trở về trạng thái rỗi thì cuộc gọi đang chờ sẽ được trả lời. Giống như chức năng của dịch vụ 1080 hay 116 của bưu điện thành phố vậy. 3.2.5 Sự ra đời của giao thức IAX – Inter Asterisk Exchange IAX là giao thức báo hiệu VoIP được phát triển bởi tác giả của phần mềm Asterisk để khắc phục những hạn chế trong giao thức SIP. Không giống như giao thức SIP chuyển tải thoại và báo hiệu trên hai kênh khác nhau (out of band), IAX chuyển tải thoại và báo hiệu trên cùng một kênh (in band). IAX giải quyết được vấn đề NAT đề cập trên phần giao thức SIP. Mặc khác IAX là giao thức tối ưu trong việc sử dụng băng thông, cho phép nhiều gói dữ liệu thoại trên cùng một IP header, cơ chế chuyển tải nhiều cuộc gọi trên cùng một gói IP được gọi là trung kế (Trunk). Có thể giải thích thêm cơ chế trung kế như sau: giả sử Tôi cần gửi 5 bức thư tới người bạn của Tôi, Tôi sẽ có hai hình thức để thực hiện, thứ nhất là mỗi bức thư Tôi bỏ vào một phong bì vậy tổng cộng tôi phải sử dụng 5 phong bì để gửi đi 5 bức thư, cách thứ hai là Tôi bỏ 5 bức thư vào 1 phong bì và gửi đi vậy tổng cộng Tôi chỉ tốn 1 Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 44
phong bì. Qua phân tích trên, rõ ràng việc đưa 5 bức thư vào một phong bì gửi đi sẽ tiết kiệm hơn so với việc gửi 5 bức thư với 5 phong bì. Cơ chế trên cũng giống như nhiều cuộc gọi được đóng thành gói và chuyển đi trên đường trung kế. 3.3 Cài đặt và cấu hình Asterisk 3.3.1 Yêu cầu về cấu hình phần cứng Tùy theo mục đích sử dụng và số lượng các user trong hệ thống mà thiết bị phần cứng được trang bị theo mức độ khác nhau. Dưới đây là một số khuyến nghị theo cộng đồng Asterisk về cấu hình phần cứng cho Asterisk Server: Mục đích
Số lượng các kênh
Cấu hình tối thiểu
Thử nghiệm học tập
1-5
400-MHz x86, 256 MB RAM
Hệ thống cho văn phòng hoặc nhà riêng
5-10
1-GHz x86, 512 MB RAM
Hệ thống nghiệp nhỏ
cho
doanh
Hệ thống thương mại cỡ vừa và lớn
15
3-GHz x86, 1 GB RAM
>15
Dual CPUs hoặc triển khai trên nhiều server
Bảng 3.2 Yêu cầu về phần cứng đối với tổng đài Asterisk 3.3.2 Kết nối Internet Có thể cài đặt Asterisk không cần kết nối mạng nếu có sẵn các gói phụ kiện, tuy nhiên do cần phải cập nhật hệ điều hành trước khi cài Asterisk nên tốt nhất là kết nối với đường truyền Internet. Việc cài đặt nhanh hay chậm điều phụ thuộc vào tốc độ mạng Internet và cấu hình máy tính. 3.3.3 Cài đặt hệ điều hành Linux Để cài đặt Asterisk, trước tiên chúng ta cần phải cài đặt hệ điều hành Linux trên máy tính của mình. Có thể cài hệ điều hành Linux Fedora, CentOS, Redhat, hoặc Debian. Trong đồ án tốt nghiệp này, nhóm thực hiện đề tài sử dụng hệ điều hành Ubuntu Server 10.0.4. Quá trình chuẩn bị trước khi tiến hành cài đặt Asterisk được trình bày như sau. 3.3.3.1 Thiết lập địa chỉ IP Cần thiết lập cho server một địa chỉ IP tĩnh để tiện cho việc truy cập vào giao diện web của Server. Ở đây hệ thống Server có địa chỉ IP tĩnh là: 192.168.1.10
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 45
3.3.3.2 Update hệ điều hành Linux Vì Ubuntu là một hệ điều hành mã nguồn mở nên để đảm bảo cho hệ thống chạy ổn định sau khi cài đặt ta cần tiến hành cập nhật và cài đặt các gói hỗ trợ cần thiết cho việc cài đặt các chương trình sau này của chúng ta. apt-get update apt-get upgrade 3.3.3.3 Download và cài đặt các gói phụ hỗ trợ cài đặt Linux apt-get install gcc g++ make libncurses5-dev apt-get install linux-headers-`uname –r` bison openssl libssl-dev libeditline0 libeditline-dev libedit-dev gcc make g++ mc php5-cli apt-get install libxml2-dev apt-get install festival apt-get install libmysqlclient15-dev apt-get install mc build-essential linux-headers-`uname -r` apt-get install libncurses5-dev libssl-dev libmysqlclient15-dev libnewt-dev zlib1g-dev apt-get install libxml2-dev libtiff4-dev libaudiofile-dev apt-get install openssh-server curl sox lame mpg123 3.3.3.4 Cài đặt Apache 2 Apache hay là chương trình máy chủ HTTP là một chương trình dành cho máy server đối thoại thông qua giao thức HTTP của mạng web. apt-get install apache 2 Sau khi cài đặt ta cần khởi động apache2 bằng lệnh: /etc/init.d/apache2 restart Nếu có thông báo lỗi, “Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName“, bạn có thể dùng trình soạn thảo nano,vi... để sửa file httpd.conf như sau: nano /etc/apache2/httpd.conf Khi nano mở, nhập vào “ServerName localhost” và lưu lại. Khi cài đặt hoàn tất, để biết Apache có hoạt động hay không thì dùng trình duyệt đến địa chỉ Ubuntu Server http://192.168.1.10. Nếu nhìn thấy dòng chữ “It works!”,có nghĩa Apache đã hoạt động. 3.3.3.5 Cài đặt PHP5 apt-get install mysql-server php5 php5-cli php5-gd php5-mysql php-pear php-db Sau khi cài đặt PHP xong, để PHP tương thích và hoạt động được cùng Apache ta cần khởi động lại Apache.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 46
/etc/init.d/apache2 restart Để kiểm sự hoạt động của PHP ta tiến hành thực hiện một phần Test nhỏ. Tạo một file testphp.php trong thư mục /var/www/ sudo vi /var/www/testphp.php Nhập vào đoạn code như sau: , rồi Save lại. Mở trình duyệt web, nhập http://192.168.1.10/testphp.php sẽ thấy kết quả như sau:
Hình 3.8 Giao diện cấu hình PHP 3.3.3.6 Cài đặt MySQL Ta cần cài đặt MySQL server để lưu trữ các Database cần thiết cho các chương trình hoạt động sau này như FreePBX và A2billing… apt-get install mysql-server Ta cần nhớ tên User và Password để sử dụng cho việc truy cập Database của SQL sau này, trong đồ án nhóm thực hiện đề tài sử dụng: MySQL username: root MySQL username: root Trong quá trình cài đặt theo hướng dẫn sau đây, nếu bước nào đó bị lỗi không thể thực hiện được thì nhất thiết phải khắc phục được lỗi đó trước khi qua bước tiếp theo. 3.3.4 PUTTY Putty là 1 phần mềm giả lập cho Linux rất hay và tiện lợi. Bạn không cần phải ngồi trên máy server mà vẫn có thể thực hiện những dòng lệnh của máy server bằng Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 47
chương trình này. Putty được xem như 1 remote của máy server mà chúng ta không thể nào bỏ qua được.
Hình 3.9 Giao diện chương trình PUTTY Nhập vào địa chỉ IP của máy server, mục Protocol chọn SSH sau đó chọn Open ta sẽ thấy màn hình Linux của máy server hiện hành:
Hình 3.10 Màn hình Linux thông qua chương trình PUTTY
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 48
3.3.5 WinSCP WinSCP là một mã nguồn mở cho Windows sử dụng SSH. Chức năng chính của nó là sao chép an toàn các tập tin giữa máy hiện tại và máy được điều khiển từ xa. Việc sao chép dữ liệu từ máy Client sang máy Server sẽ được thực hiện đơn giản hơn rất nhiều bằng việc kéo thả như trong win XP. Trong khi đó nếu dùng máy server thì để sao chép dữ liệu thì chúng ta sẽ phải nhập những dòng lệnh mất nhiều thời gian mà đôi khi lại không chính xác.
Hình 3.11 Giao diện chương trình WinSCP Nhập vào Host name là địa chỉ IP tĩnh của Server (ở đây là 192.168.1.10) User name: root Password: Sau khi đăng nhập sẽ hiển thị cửa sổ màn hình như sau:
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 49
Hình 3.12 Cửa sổ giao diện sau khi đăng nhập WinSCP 3.4 Cài đặt Asterisk 3.4.1 Download các gói cài đặt của Asterisk http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.12.tar.gz http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk1.4.42.tar.gz http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons1.4.13.tar.gz http://downloads.asterisk.org/pub/telephony/dahdi-linuxcomplete/releases/dahdi-linux-complete-2.4.0+2.4.0.tar.gz http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-engsm-current.tar.gz Ta có thể download các gói trên trực tiếp bằng máy server, nhưng ở đây để thao tác dễ dàng, ta dùng WinSCP để copy các gói từ máy XP sang thư mục /usr/src/asterisk của máy Linux.
Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 50
Hình 3.13 Sao chép dữ liệu thông qua WinSCP 3.4.2 Giải nén và cài đặt các gói của hệ thống Asterisk 3.4.2.1 Cài đặt gói DAHDI Ta cần gắn card X100P trước khi cài đặt gói này (card X100P sẽ được đề cập trong nội dung phần sau). cd /usr/src/asterisk tar xzvf dahdi-linux-complete-2.4.0+2.4.0.tar.gz cd dahdi-linux-complete-2.4.0+2.4.0/ make all make && make install && make config DAHDI là tên gọi mới của module Zaptel trên Asterisk 1.4.x để điều khiển các card Digium (dành cho cổng FXO, FXS và E1/T1). Gói Dahdi chứa các Driver cho các phần cứng giao tiếp với Asterisk và một số thư viện cho việc có thực hiện giao tiếp với phần cứng hay không. 3.4.2.2 Cài đặt gói Lipri Thư viện libpri cung cấp các driver cho các card giao tiếp trung kế PRI và một số phần cứng khác. Ngay cả Asterisk không giao tiếp với card PCI nào chúng ta cũng nên cài đặt gói này bởi một số module của Asterisk yêu cầu thư viện này. cd /usr/src/asterisk tar xzvf libpri-1.4.12.tar.gz cd libpri-1.4.12 make clean make install Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 51
3.4.2.3 Cài đặt gói Asterisk cd /usr/src/asterisk tar xzvf asterisk-1.4.42.tar.gz cd asterisk-1.4.42 ./configure make clean make install make config make samples 3.4.2.4 Cài đặt gói Asterisk-addons Để biên dịch và cài đặt gói asterisk-addons ta thực hiện các lệnh sau: cd /usr/src/asterisk/asterisk-addons-1.4.7 ./configure make make install 3.4.2.5 Cài đặt gói Extra Sound Gói này bổ sung thêm các file âm thanh hỗ trợ cần thiết cho tổng đài Asterisk. cd /usr/src/asterisk cp -r asterisk-extra-sounds-en-gsm-current.tar.gz /var/lib/asterisk/sounds cd /var/lib/asterisk/sounds tar xzvf asterisk-extra-sounds-en-gsm-current.tar.gz 3.5 Kết luận Chỉ với một số thiết bị phần cứng đơn giản kết hợp với Asterisk, chúng ta hoàn toàn có thể tổ chức thành một tổng đài hoàn chỉnh để thử nghiệm dịch vụ VoIP cũng như kết nối giữa mạng IP và PSTN. Hướng dẫn trên đây mới chỉ là các bước cơ bản để cài đặt một hệ thống tổng đài Asterisk. Là sự kết hợp giữa chuyển mạch VOIP và chuyển mạch TDM, Asterisk sẽ đem đến cho người sử dụng tất cả các tính năng và ứng dụng của hệ thống tổng đài PBX và cung cấp nhiều tính năng mà tổng đài PBX thông thường không có được. Đây là một phần mềm thực hiện chức năng tổng đài điện thoại PBX mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí, biến 1 máy tính thông thường chạy hệ điều hành Linux thành 1 hệ thống điện thoại doanh nghiệp mạnh mẽ, là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là 1 tổng đài xử lý cuộc gọi đầy đủ chức năng. Bên cạnh đó, nó còn là một nền tảng tích hợp điện thoại vi tính hóa kiến trúc mở. Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới. Và hiện nay Asterisk vẫn tiếp tục được cộng đồng những người dùng trên thế giới phát triển mạnh mẽ. Chương 4 Giới thiệu và cài đặt Asterisk
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Chương 4
Trang 52
GIỚI THIỆU VÀ CÀI ĐẶT FREEPBX
4.1 Giới thiệu FreePBX FreePBX là một ứng dụng web có đầy đủ chức năng của PBX. Nếu bạn đã sử dụng Asterisk, bạn sẽ nhận thấy rằng khi ta muốn thêm một Extension hay thiết lập các chức năng, dịch vụ của tổng đài thì ta phải tác động lập trình trực tiếp trên các file cấu hình, viết các hàm Dialplans và thiết lập thông số cho các dịch vụ một cách phức tạp, dễ sai sót, khó quản lý và tốn nhiều thời gian. FreePBX đã giúp ta đơn giản hóa những điều trên bằng cách thiết lập, cấu hình tổng đài hoàn toàn thông qua giao diện Web GUI (Graphical User Interface) để điều khiển và quản lý Asterisk một cách trực quan và dễ dàng. 4.2 Cài đặt chương trình FreePBX Download gói FreePBX tại địa chỉ: http://mirror.freepbx.org/freepbx-2.7.0.tar.gz Sao chép gói vừa download về bỏ vào thư mục /usr/src và bắt đầu thực hiện các lệnh cài đặt từng bước như sau: Tạo một user mới với tên là asterisk adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user" Thay đổi user và group mặc định cho Apache đối với asterisk trong file apache2.conf cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf Vào thư mục /etc/apache2/envars ta cần thay đổi các dòng sau: export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data thành: export APACHE_RUN_USER=asterisk export APACHE_RUN_GROUP=asterisk Vào file /etc/php5/apache2/php.ini, thay đổi các thông số cho các dòng sau: memory_limit = 16M thành: memory_limit = 100M và magic_quotes_gpc = On thành:
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 53
magic_quotes_gpc = Off Ta cần khởi động lại Apache2, đây là bước quan trọng trước khi tiến hành cài đặt FreePBX /etc/init.d/apache2 restart Sau đó ta cần phân quyền sở hữu truy cập các thư mục và tập tin của Asterisk cho user asterisk mà ta đã tạo ra ban đầu. chown asterisk:asterisk /etc/asterisk -R chown asterisk:asterisk /usr/lib/asterisk -R chown asterisk:asterisk /var/lib/asterisk -R chown asterisk:asterisk /var/log/asterisk -R chown asterisk:asterisk /var/spool/asterisk –R chown -R asterisk /var/{lib,log,spool}/asterisk Trong file /etc/asterisk/asterisk.conf, tìm và thay đổi như sau: astrundir => /var/run và thay đổi thành astrundir => /var/log/asterisk Vào thư mục /usr/sbin/safe_asterisk thay đổi #!/bin/sh thành #!/bin/bash Chạy hệ thống asterisk với user là asterisk và group là asterisk với lệnh sau: asterisk -U asterisk -G asterisk Trước khi tiến hành cài đặt FreePBX ta cần tạo các Database cần thiết cho cơ sở dữ liệu của chúng ta. Tạo 1 Database có tên là Asterisk để chứa các cơ sở dữ liệu khi cấu hình FreePBX cho Asterisk. Và tạo 1 Database có tên là asteriskcdrdb để chứa các cơ sở dữ liệu cho chức năng CDR của FreePBX. mysqladmin -u root -proot create asterisk mysqladmin -u root -proot create asteriskcdrdb Vào thư mục chứa file cài đặt FreePBX cd /usr/src/freepbx-2.7.0 Tiến hành truy nhập các Table SQL vào trong các Database đã thiết lập trên phục vụ cho sự hoạt động cấu hình của FreePBX. mysql -u root -p asterisk < SQL/newinstall.sql mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sql Cần đảm bảo rằng phải xóa bỏ file amporttal.conf trước khi chạy file script cài đặt cho FreePBX.
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 54
rm -f /etc/amportal.conf Bắt đầu tiến hành chạy file install_amp trong thư mục cài đặt FreePBX. ./install_amp Trong quá trình chạy tập tin này ta cần trả lời một số thông số thiết lập sau, những cái không được đề cập đến thì xem như mặc định: Q: Enter your USERNAME to connect to the 'asterisk' database: A: root Q: Enter your PASSWORD to connect to the 'asterisk' database: A: root Q: Enter the path to use for your AMP web root: A: /var/www Q: Enter the IP ADDRESS or hostname used to access the AMP web-admin: A: Vào file /etc/amportal.conf, thay đổi AUTHTYPE=none thành AUTHTYPE=database Phân quyền sở hữu thực thi các file trong thư mục /var/www/ cho user asterisk chown -R asterisk. /var/www/ Đặt file script amportal vào thư mục init.d ln -s /usr/local/sbin/amportal /etc/init.d/amportal update-rc.d amportal defaults cd../ Sap chép thư mục chứa các file MOH của asterisk cho FreePBX ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3 Khởi động lại astersik và apache2 bằng các lệnh sau: /etc/init.d/apache2 restart /etc/init.d/asterisk restart Khởi độnh lại amportal đảm bảo cho sự hoạt động của FreePBX bằng lệnh: amportal start Sau khi khởi động nếu không có lỗi xảy ra trong quá trình cài đặt thì ta sẽ nhận được các thông báo như sau: SETTING FILE PERMISSIONS Permissions OK Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 55
STARTING ASTERISK Asterisk is already running STARTING FOP SERVER FOP Server Started Như thế là công việc cài đặt FreePBX đã hoàn thành. Sau khi cài đặt xong ta vào trình duyệt web Firefox, đăng nhập vào địa chỉ http://192.168.1.10/admin sẽ xuất hiện giao diện Login như sau:
Hình 4.1 Giao diện đăng nhập tài khoản FreePBX Lúc này ta sẽ đăng nhập vào giao diện FreePBX với Username và Password mặc định như sau: Username: root Password: root
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 56
Và giao diện cấu hình FreePBX như sau:
Hình 4.2 Giao diện Web của FreePBX 4.3 Cấu hình Card X100P giao tiếp với PSTN 4.3.1 Giới thiệu Card X100P Card X100P là thiết bị dùng để kết nối giữa các user trong mạng nội bộ Asterisk với mạng PSTN. X100P hiện nay đã không còn được sản xuất, do mức độ hỗ trợ số lượng Port FXO, FXS ít. Tuy nhiên, X100P lại rất thích hợp cho mục đích nghiên cứu do giá cả rất hợp lý. X100P là loại card chuẩn cung cấp 1 port FXO dùng cho hệ thống Asterisk. Port FXO dùng cho việc kết nối Asterisk PBX với PSTN. Nó cho phép IP PBX khởi tạo/nhận cuộc gọi thông qua line analog truyền thống. X100P rất thích hợp cho việc xây dựng hệ thống IVR (tương tác theo lời thoại) và ứng dụng voice mail. Nó cũng hỗ trợ tất cả các chức năng Caller ID, hội thoại… Việc kết hợp X100P vào Asterisk sẽ hỗ trợ kết nối với hệ thống cũ, không làm lãng phí hạ tầng cũ đã đầu tư trước đây.
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 57
Hình 4.3 Card FXO X100P Thông số kĩ thuật: Dùng khe cắm chuẩn PCI. Thích hợp với các khe PCI cung cấp mức điện áp 3.3/5V. Tương thích với các hệ thống PSTN. Nhận biết tín hiệu DTMF(rất quan trọng với IVR). 4.3.2 Khái niệm FXO và FXS FXO (Foreign Exchange Office) là thiết bị nhận tín hiệu từ tổng đài gửi đến như dòng chuông, tín hiệu nhấc và gác máy, tín hiệu mời quay số, gửi và nhận tín hiệu thoại…. Nói cách khác FXO dùng để kết nối với đường dây điện thoại. FXS (Foreign Exchange Station) là thiết bị tại nơi cung cấp đường dây điện thoại, thiết bị FXS sẽ cung cấp tín hiệu mời quay số (dialtone), dòng chuông, hồi âm chuông (ring tone). Trong đường dây Analog, FXS cung cấp dòng chuông và điện áp cho điện thoại hoạt động, ví dụ FXS cung cấp điện áp -48VDC đến máy điện thoại Analog trong suốt thời gian đàm thoại và cung cấp 90VAC (20hz) để phát điện áp rung chuông. Thiết bị FXS phát còn thiết bị FXO nhận. Muốn cho phép các máy điện thoại nội bộ trong hệ thống IP PBX Asterisk kết nối và thực hiện cuộc gọi với mạng PSTN, chúng ta cần phải có thiết bị phần cứng tương thích. Thiết bị phần cứng này là các FXO/FXS card cho phép hệ thống IP PBX Asterisk giao tiếp với mạng PSTN. 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 giá trị tối đa của x và y là 4, ví dụ card TDM22B có nghĩa là có 2 fort FXS và 2 port FXO. Số line PSTN sẽ tương ứng với số cuộc gọi vào đồng thời, do đó nếu dùng X100P (1FXO) thì tại 1 thời điểm chỉ có duy nhất 1 cuộc gọi vào/ra PSTN. Các kiểu báo hiệu đường dây từ thiết bị đầu cuối (FXO, Điệnthoại, PBX) đến tổng đài điện thoại trong mạng PSTN, bao gồm:
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 58
Loop start (ls). Ground start (gs). Kewlstart (ks). Báo hiệu ls và gs là phương pháp phát hiện thay đổi tín hiệu đường dây để thực hiện báo hiệu giữa thiết bị đầu cuối và tổng đài. Đối với kiểu báo hiệu “Loop start” thì hệ thống sẽ phát hiện thay đổi đường dây bằng điện trở vòng, nghĩa là khi thuê bao ở trong trạng thái gác máy thì điện áp cung cấp cho thiết bị đầu cuối là -48V(dc) nhưng khi thuê bao nhấc máy thì điện áp qua điện trở vòng của máy điện thoại còn khoảng -10V(dc), nhờ điện áp sụt giảm này mà tổng đài phát hiện thuê bao nhấc máy và cung cấp âm hiệu mời quay số cho thuê bao (dial-tone). Đối với kiểu báo hiệu “Ground start” thì dựa vào sự thay đổi đường dây nhờ vào điện áp nối đất (kiểu này hiện nay không còn sử dụng). Đối với kiểu “Kewlstart” thì phương thức báo hiệu giống với kiểu “Loop start” nhưng có phần khác đôi chút để đáp ứng cho các ứng dụng của hệ thống Asteisk, điểm khác biệt chủ yếu đó là dò trạng thái nhấc gác máy ở phía đầu cuối. Điển hình như ứng dụng voicemail, khi một cuộc gọi vào hệ thống voicemail thì làm sao hệ thống nhận biết được lúc nào là phía đầu cuối kết thúc phát tin nhắn, nên qua kiểu báo hiệu “Kewl start” thì hệ thống Asterisk sẽ dò trạng thái khoảng lặng để kết thúc nhận tin nhắn. 4.3.3 Cấu hình Card X100P giao tiếp với PSTN Sau khi cài đặt Driver DAHDI cho card X100P ta tiến hành thực hiện một số lệnh cấu hình các file để card này có thể giao tiếp được với PSTN. Load driver cho Card X100P: modprobe wcfxo Thực hiện lệnh sau để tạo ra file /etc/dahdi/system.conf cho việc cấu hình sau này cho Card: dahdi_genconf –vvvv Thực hiện lệnh sau để xem thông tin về gói cài đặt Dahdi và thông tin các kênh mà Dahdi đang hỗ trợ: dahdi_cfg -vvv Màn hình sẽ hiện các thông tin như sau:
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 59
Hình 4.4 Lệnh dahdi_cfg –vvv Để đảm bảo Asterisk đã nhận dạng được Card giao tiếp X100P ta cần tiến hành thực hiện các lệnh kiểm tra sau: root@ubuntu:~# dahdi_scan
Hình 4.5 Lệnh Dahdi_scan root@ubuntu:~# dahdi_tool
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 60
Hình 4.6 Hệ điều hành đã nhận được Card X100P ubuntu*CLI> dahdi show status
Hình 4.7 Trạng thái hiện tại của Card X100P Nếu Alarms = OK cho biết bạn đã gắn line PSTN vào Card rồi. Nếu Alarms = RED cho biết bạn chưa gắn line PSTN. Nếu Alarms = UNCONFIG cho biết bạn chưa chạy lệnh "dahdi_genconf", "dahdi_cfg". ubuntu*CLI> dahdi show channels
Hình 4.8 Các kênh hỗ trợ khi gắn Card
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 61
Sau khi Card đã được nhận dạng thì ta cần tiến hành cấu hình một số thông số trong các file config sau để giúp cho Card hoạt động (các thông số không được đề cập đến được xem như là để mặc định). Trong file /etc/dahdi/system.conf # Span 1: WCFXO/0 "Wildcard X100P Board 1" (MASTER) RED Fxsks = 1 Echocanceller = mg2,1 # Global data Loadzone = us Defaultzone = us Trong file /etc/asterisk/chan_dahdi.conf language=en usecallerid=yes echocancel=yes echocancelwhenbridged=no echotraining=800 #include dahdi-channels.conf
Trong file /etc/asterisk/dahdi-channels.conf ; Span 1: WCFXO/0 "Wildcard X100P Board 1" (MASTER) RED ;;; line="1 WCFXO/0/0" signalling=fxs_ks callerid=asreceived group=0 context=from-pstn channel => 1 callerid= group= context=default 4.4 Kết luận FreePBX ra đời đã giúp chúng ta tránh được việc cấu hình Asterisk bằng tay rất tốn kém thời gian và dễ sai sót. Đây thực sự là một người dùng thân thiện với đồ họa cấu hình cho Asterisk. Thông qua giao diện này, ta có thể xác định và thực hiện bất kỳ
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 62
thay đổi hệ thống nào mà không phải vào chỉnh sửa các tập tin cấu hình. Với giao diện Web dễ dùng, tự động sinh mã code, miễn phí, FreePBX đã được đón nhận nồng nhiệt và trở thành giao diện chuẩn cấu hình Asterisk.
Chương 5 Giới thiệu và cài đặt FreePBX
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Chương 5
Trang 63
GIỚI THIỆU VÀ CÀI ĐẶT A2BILLING
5.1 Giới thiệu A2Billing Từ các chương trước chúng ta đã làm quen với Linux, Asterisk và Trixbox. Trong chương này nhóm thực hiện đề tài sẽ tập trung vào việc cài đặt cấu hình, và triển khai gói A2Billing để thực hiện việc tính tiền cho các cuộc gọi. A2Billing cho ra nhiều phiên bản khác nhau với nhiều cải tiến và sửa lỗi. Tuy nhiên A2Billing vẫn là mã nguồn mở, chưa được thương mại hóa và do đó vẫn còn tồn tại một số lỗi và một số chức năng chưa hoàn thiện. Các tài liệu hướng dẫn sử dụng và cấu hình là rất thiếu. Trong chương này, nhóm thực hiện đề tài sẽ hướng dẫn người dùng cài đặt và tìm hiểu A2Billing 1.9.3. Từ đó thấy được những tính năng của A2Billing và áp dụng vào thực tế. Trong phạm vi đồ án này, nhóm thực hiện đề tài chọn A2Billing để cài đặt và nghiên cứu vì 3 lý do chính: Một là A2Billing hoàn toàn miễn phí và đang được cộng đồng Asterisk đánh giá cao. Hai là việc cài đặt và sử dụng A2Billing đòi hỏi phải có kiến thức tổng hợp về Asterisk, kết nối với cơ sở dữ liệu Mysql và nhiều kĩ năng khác. A2Billing cho ta cái nhìn rất tổng quát về cách quản lý và tính tiền cuộc gọi vì A2Billing có mô hình rất giống các hệ thống tính tiền đang được sử dụng hiện nay của các nhà cung cấp dịch vụ. Khi cài đặt thành công A2Billing cho chúng ta những tính năng cơ bản sau đây: Các dịch vụ gọi điện bằng Card truyền thống: A2Billing có thể được cấu hình để cung cấp các dịch vụ gọi điện bằng card chuẩn thông qua việc quay số và xác nhận số Number và Password. Các dịch vụ VoIP: Các khách hàng có thể được cung cấp soft-phone hoặc hard-phone và trả tiền cho các cuộc gọi thiết lập qua VoIP. Nhà cung cấp dịch vụ VoIP đầu cuối: A2Billing kết hợp với Asterisk có thể được sử dụng như một chuyển mạch mềm để kết nối và tính tiền cho số lượng lớn các cuộc gọi. Khi đó A2Billing đóng vai trò như nhà kinh doanh và phân phối dịch vụ cho người dùng. Như thế A2Billing kết hợp với Asterisk cung cấp một nền tảng công nghệ đầy đủ tính năng và chuyển mạch mềm cung cấp các dịch vụ kết hợp. Trong A2Billing đã bao gồm các hình thức trả trước và trả sau, báo cáo, thống kê, kiểm soát các cuộc gọi. Nó có thể được cấu hình để cung cấp nhiều dạng dịch vụ: gọi điện tính tiền, chuyển cuộc gọi, hộp thư thoại, trả tiền qua mạng (Visa card, Paypal,...). Giải pháp sử dụng A2Billing cho doanh nghiệp bao gồm những thành phần như sau: Server: là một máy tính có cấu hình tốt.
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 64
Line Interface Cards: Các loại phần cứng kết nối với mạng TDM (PRI, BRI, Analogue). Linux: Hệ điều hành chạy nền. Apache: Chạy web server. MySQL/ Postgresql: Quản lý cơ sở dữ liệu. A2Billing: Bộ máy tính tiền và quản lý cuộc gọi. A2Billing đã được triển khai trong một số môi trường thương mại không những cho các công ty có mục đích kết hợp hình thức TDM truyền thống với hệ thống VoIP mới, mà còn phục vụ cho các công ty cung cấp dịch vụ gọi điện trả tiền bằng card. A2Billing đã được đăng kí bản quyền bởi GPL. Điều này nghĩa là bạn có quyền chỉnh sửa hệ thống của bạn nhưng trong phạm vi qui định của GPL. 5.2 Tìm hiểu về AGI (Asterisk Gateway Interface) Trong kiến trúc Asterisk, Asterisk hỗ trợ kênh giao tiếp với chương trình ngoài là AGI (Asterisk Gateway Interface), cho phép ta viết các ứng dụng bên ngoài tương tác với Asterisk. AGI cho phép Astersik gọi thực thi một chương trình ngoài để mở rộng nhiều chức năng của Astersik như điều khiến các kênh thoại, phát âm thanh, đọc số DTMF, liên kết với cơ sở dữ liệu,… Các chương trình ngoài được gọi là AGI Script, ta có thể lập trình ra các AGI Script bằng nhiều ngôn ngữ lập trình khác nhau như Perl, PHP, C, C#, Java…
5.2.1 Cấu trúc cơ bản AGI AGI Script liên lạc với Asterisk bằng các kênh thông tin STDOUT, STDIN và STDERR. STDOUT: AGI script gửi thông tin đến Asterisk. STDIN: Asterisk gửi thông tin về AGI script. STDERR: Thông tin lỗi.
Hình 5.1 Sơ đồ giao tiếp giữa Asterisk và AGI script Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 65
Trong sơ đồ trên cho chúng ta thấy AGI giao tiếp với rất nhiều các thành phần khác nhau. Giao tiếp với database để lưu trữ thông tin như chi tiết cuộc gọi, hệ thống tính cước… Giao tiếp với web cho chúng ta phát triển các ứng dụng trên nền web như kiểm tra mail. Coffee Maker thực hiện rất nhiều công việc còn lại trong hệ thống Asterisk như kiểm tra cấu hình hệ thống, liệt kê các extension, kiểm tra password, cấu hình hệ thống Asterisk…Nhìn chung AGI cho phép chúng ta thực hiện nhiều công việc giúp khai thác và quản lý Asterisk một cách hiệu quả nhất. 5.2.2 Phân loại AGI AGI gồm một số loại như sau: AGI: Đây là loại AGI bình thường. AGI Script có thể được lập trình bởi nhiều loại ngôn ngữ khác nhau, có khả năng điều khiển Dialplan, và phải đặt trên máy chủ Asterisk. EAGI (enhanced AGI): Đây là loại AGI nâng cấp có các chức năng giống như AGI, ngoài ra EAGI còn có khả năng đọc kênh âm thanh vào trên kênh STDERR+1. DeadAGI: có chức năng tương tư như AGI nhưng DeadAGI còn có khả năng làm việc trên các kênh “chết” ( kênh “chết” là kênh thoại đã được kết thúc), đây là khả năng mà AGI bình thường không có. FastAGI: cho phép Asterisk gọi AGI Script qua mạng TCP/IP, AGI Script không cần phải đặt ngay trên máy chủ Asterisk.
Hình 5.2 AGI giao tiếp với Asterisk
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 66
5.2.3 Một số hàm cơ bản của AGI Cú pháp và tính chất
Các hàm AGI ANSWER
Trả lời các kênh truyền. ANSWER
Trả về các giá trị: -1 nếu không thành công. 0 nếu thành công. CHANNEL STATUS [channel name] Yêu cầu trạng thái của kênh đuợc chỉ định bởi channel name hoặc nếu không chỉ định kênh nào thì mặc định là kênh hiện tại.
CHANNEL STATUS
Trả về giá trị: 0 nếu kênh bị nghẽn và tồn tại. 1 nếu kênh bị nghẽn nhưng được duy trì. 2 nếu kênh bị ngắt. 6 nếu đường dây bận. DATABASE DEL family key
DATABASE DEL
Xóa một mục trong cơ sở dữ liệu của Asterisk ở một khóa được chỉ định. Trả về giá trị: 0 nếu không thành công. 1 nếu thành công. DATABASE GET family key Lấy lại giá trị từ cơ sở dữ liệu của Asterisk ở một khóa được chỉ định.
DATABASE GET
Trả về giá trị: 0 nếu không được. 1 (giá trị) giá trị được lập bao gồm cả dấu ngoặc đơn. DATABASE PUT family key value
DATABASE PUT
Thêm vào hoặc update một mục trong cơ sở dữ liệu của Asterisk với một khóa chỉ định và giá trị chỉ định Trả về giá trị:
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 67
0 nếu không thành công. 1 nếu thành công. EXEC application options. EXEC
Thực thi ứng dụng quay số cụ thể gồm cả các tùy chọn. Trả về giá trị: -2 nếu không tìm thấy ứng dụng Giá trị nếu ứng dụng trả về giá trị GET DATA filename [timeout] [max_digits]
GET DATA
Chạy file âm thanh có tên filename và cho phép nhập các số, độ dài tối đa là max_digits. Giống như hàm Background() trong ứng dụng quay số. GET FULL VARIABLE variablename [channelname]
GET FULL VARIABLE
Nếu biến được chỉ định bởi variablename được lập, sẽ trả về giá trị của nó trong dấu ngoặc đơn. Lệnh này hiểu được các tên biến phức tạp không giống như GET VARIABLE. Trả về các giá trị: 0 nếu không có kênh nào hoặc biến không được thiết lập. 1 (giá trị) nếu giá trị được lấy bao gồm cả dấu.
GET OPTION
GET OPTION filename escape_digits [timeout] giống như stream file nhưng có tùy chọn timeout. HANGUP [channelname] Gác máy một kênh thoại, nếu không chỉ định kênh nào thì mặc định là kênh hiện tại.
HANGUP
Trả về giá trị: -1 Kênh chỉ định không tồn tại. 1 Gác máy thành công. NoOp [text]
NoOp
Thường dùng để mục đích debug, lệnh này sẽ in ra màn hình Asterisk text. RECEIVE CHAR timeout
RECEIVE CHAR
Nhận một ký tự text trên kênh. Chỉ định một timeout ở mili giây là thời gian tối đa chờ đợi việc nhập ký tự, hoặc thiết lập 0 để không giới hạn thời gian chờ. Tuy nhiên
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 68
phần lớn các kênh là không hỗ trợ nhận text. RECORD FILE filename format escape_digits timeout
RECORD FILE
Ghi âm kênh gọi vào một tập tin chỉ định cho đến khi nhấn số escape. Định dạng file được qui định là format có thể gsm, mp3 hay wav… Timeout thiết lập bằng -1 nếu muốn không giới hạn. Trả về giá trị: -1 nếu không thành công. 0 nếu thành công. SAY ALPHA number escape_digits Đọc chuỗi số được chỉ định, kết thúc khi người dùng nhấn số escape.
SAY ALPHA
Trả về giá trị: -1 nếu lỗi hoặc gác máy. 0 nếu đọc thành công mà không nhấn số escape. giá trị của số được nhập, dạng thập phân. SAY DATE date escape_digits
SAY DATE
Đọc ngày được chỉ định, kết thúc đọc khi người dùng nhấn số escape, date là số giây về sau tính từ thời điểm 00:00:00 ngày 1 tháng 1 năm 1970. Trả về giá trị: -1 nếu lỗi hoặc gác máy. 0 nếu đọc thành công mà không nhấn số escape. giá trị của số được nhấn, dạng thập phân. SAY DATETIME datetime escape_digits Đọc ngày giờ tương tự như say date. Trả về các giá trị:
SAY DATETIME
-1 nếu lỗi hoặc gác máy. 0 nếu đọc thành công. giá trị của số được nhập. SAY DIGITS number escape_digits
SAY DIGITS
Đọc chuỗi các số chỉ định, kết thúc nếu người dùng nhấn số escape. Trả về các giá trị:
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 69
-1 nếu lỗi hoặc gác máy. 0 nếu đọc thành công mà không nhấn số escape. giá trị các số được nhấn. SAY NUMBER number escape_digits Giống với say digits nhưng đọc giá trị của một số chứ không đọc từng chữ số. SAY NUMBER
Trả về các giá trị: -1 nếu lỗi hoặc gác máy. 0 nếu đọc thành công mà không nhấn số escape. giá trị nhận được từ người dùng. SAY TIME time escape_digits Đọc thời gian được chỉ định, giống như say datetime.
SAY TIME
Trả về các giá trị: -1 nếu lỗi hoặc gác máy. 0 nếu đọc thành công mà không nhấn số escape. SEND IMAGE image Gửi bức ảnh được chỉ định trên kênh hiện tại. Tuy nhiên phần lớn các kênh không hỗ trợ gửi hình.
SEND IMAGE
Trả về các giá trị: -1 nếu lỗi hoặc gác máy. 0 nếu bức hình được gửi thành công hoặc kênh không hỗ trợ gửi hình. SEND TEXT “text_to_send”
SEND TEXT
Gửi văn bản được chỉ định trên kênh hiện tại. Tuy nhiên phần lớn các kênh không hỗ trợ truyền văn bản. Những văn bản nhiều hơn 1 từ thì nên để trong dấu ngoặc kép vì mỗi lệnh chỉ chấp nhận một dòng đơn. Trả về các giá trị: -1 nếu lỗi hoặc gác máy. 0 nếu văn bản được gửi đi hoặc kênh không hỗ trợ gửi văn bản.
SET AUTOHANGUP
SET AUTOHANGUP time Có tác dụng làm cho kênh tự động ngắt khi thời gian time
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 70
trôi qua. Tất nhiên nó có thể ngắt trước đó. time bằng 0 nếu không muốn tự động ngắt kênh. Trả về giá trị 0 nếu tự động ngắt được thiết lập SET CALLERID number SET CALLERID
Thay đổi Caller ID của kênh hiện tại. Trả về giá trị 1 nếu Caller ID được thiết lập. SET CONTEXT context
SET CONTEXT
Thiết lập context để tiếp tục các ứng dụng AGI tồn tại. Trả về giá trị 0 nếu context được thiết lập. SET EXTENSION extension
SET EXTENSION
Thay đổi extension để tiếp tục ứng dụng AGI tồn tại. Trả về giá trị 0 nếu Extension được thiết lập. SET MUSIC ON [on|off] [class]
SET MUSIC ON
Thiết lập hoặc hủy bỏ chức năng phát nhạc chờ music-onhold. Luôn luôn trả về giá trị 0. SET PRIORITY priority
SET PRIORITY
Thay đổi quyền ưu tiên cho các ứng dụng AGI kế tiếp. Trả về giá trị 0 nếu thiết lập được. SET VARIABLE variablename value
SET VARIABLE
Thiết lập hoặc cập nhật cho các tên biến được chỉ định bởi variablename. Nếu biến không tồn tại, nó sẽ được tạo ra. Trả về giá trị 1 biến đã được thiết lập. STREAM FILE filename escape_digits Chơi các tập tin âm thanh chỉ định bởi filename, ngắt khi nhấn số escape. Chú ý định dạng của tập tin phải bao gồm trong filename.
STREAM FILE
Trả về các giá trị: 0 nếu chơi thành công mà không nhấn số escape. -1 nếu lỗi hoặc gác máy. giá trị của số được nhấn, dạng thập phân.
WAIT FOR DIGIT
WAIT FOR DIGIT timeout
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 71
Chờ cho tới timeout để kênh nhận được các số nhấn từ người dùng. Nếu timeout bằng -1 nếu muốn không giới hạn. Trả về các giá trị: -1 lỗi hoặc kênh không tồn tại. 0 hết timeout. giá trị của số được nhấn. Bảng 5.1 Các hàm cơ bản của AGI 5.3 Cấu trúc và nguyên tắc hoạt động của A2Billing Asterisk xuất ra một CDR (Call Detail Record) cho mỗi cuộc gọi. Thường thì tập tin lưu trữ này sẽ được Asterisk xuất ra trong thư mục /var/log/asterisk/cdr-csv. CDR sẽ chứa đựng những thông tin chi tiết về các cuộc gọi trong asterisk. Và để thực hiện chức năng tính tiền, chúng ta sẽ phải tìm hiểu về CDR. Trong mỗi file CDR sẽ bao gồm những thành phần chính sau: accountcode: account number được sử dụng (là dãy gồm 20 kí tự). src: CallerID number (là dãy gồm 80 kí tự). dst: Destination extension (là dãy gồm 80 kí tự). dcontext: Destination context (là dãy gồm 80 kí tự). clid: CallerID (dãy gồm 80 kí tự). channel: Kênh sử dụng (80 kí tự). dstchannel: Destination channel (80 kí tự). lastapp: Ứng dụng cuối cùng sử dụng (80 kí tự). lastdata: Dữ liệu ra của ứng dụng cuối cùng (80 kí tự). start: Thời gian bắt đầu cuộc gọi (date/time). answer: Thời gian trả lời cuộc gọi (date/time). end: Thời gian kết thúc cuộc gọi (date/time). duration: Thời gian cuộc gọi từ lúc quay số (giây). billsec: Tổng thời gian gọi từ lúc có tín hiệu trả lời (giây). disposition: Trạng thái cuộc gọi: ANSWERED, NO ANSWER, BUSY, FAILED. amaflags: AMA = Automated Message Accounting. omit: Không record calls. billing: Đánh dấu để thực hiện billing. documentation: Đánh dấu cho documentation. user field: Người dùng tự định nghĩa (tối đa 255 kí tự). Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 72
Trong một mạng lưới điện thoại thông thường, hệ thống tạo ra CDR từ các thành phần của mạng. Còn những ứng dụng mà thực thi trên cơ sở dữ liệu CDR sẽ sử dụng cơ sở dữ liệu đó ở dạng khác. Và OSS (operations support systems) là một quá trình được biết như chuyển cơ sở dữ liệu của CDR sang một dạng cơ sở dữ liệu khác mà ta có thể thực thi được dễ dàng. Với trường hợp của A2Billing thì cơ sở dữ liệu mà ta sẽ sử dụng để thực thi chức năng tính tiền, quản lý cuộc gọi là MySQL và PostgreSQL.
Hình 5.3 Chức năng của OSS Trong Asterisk thì CDR được sinh ra trong cùng hệ thống máy chủ với Asterisk. Khi CDR được sinh ra, một quá trình tính toán cho mỗi cuộc gọi sẽ được thực hiện dựa trên cơ sở dữ liệu của một hoặc nhiều file CDR. Quá trình này được gọi là đánh giá và có thể được thực thi trên một bộ máy khác. Điều này cho phép chúng ta thực thi ứng dụng ở một máy chủ khác không phải là máy chủ Asterisk. Hệ thống đánh giá này là một phần của hệ thống tính tiền. Và hệ thống tính tiền của chúng ta sẽ quyết định thời gian cuộc gọi, tính toán số dư tài khoản và cho phép cuộc gọi được thiết lập hay không. Từ đó sẽ tương tác trở lại hệ thống máy chủ Asterisk thông qua các các hàm AGI.
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 73
Hình 5.4 Sơ đồ A2Billing tương tác với Asterisk 5.4 Cài đặt A2Billing Download gói A2Billing tại địa chỉ: https://nodeload.github.com/Star2Billing/a2billing/tarball/v1-current Sau khi download về ta thay đổi tên thành a2billing.tar.gz và copy vào thư mục /usr/src của Server. Trước khi tiến hành download và cài đặt, ta phải đảm bảo hệ thống Asterisk đã hoạt động tốt. Ví dụ như các cuộc gọi nội bộ, cuộc gọi ra ngoài PSTN, cuộc gọi thông qua nhà cung cấp dịch vụ VoIP,… đã được thiết lập đúng hay chưa. Điều này là hết sức quan trọng, vì bất cứ lỗi nào xảy ra và khi đã cài đặt thêm gói A2Billing thì sẽ trở nên khó hơn cho ta trong việc tìm lỗi cũng như sửa chữa. Và đặc biệt chúng ta sẽ sử dụng lại một số thiết lập trong FreePBX mà ta đã thực hiện ở chương trước. Cũng như việc cài đặt FreePBX, ta cần đảm bảo Apache2, PHP, MySQL đều hoạt động tốt trước khi tiến hành cài đặt A2billing. Các bước tiến hành cài đặt A2billing với lệnh như sau: Chuẩn bị Database cho a2billing cd /usr/src/a2billing/DataBase/mysql-5.x/ mysql -u root -proot show tables; +---------------------------+ | Tables_in_mya2billing | +---------------------------+ | cc_agent
|
| cc_agent_commission | | cc_agent_signup | | cc_agent_tariffgroup | ……………… | cc_version | | cc_voucher | +---------------------------+ 97 rows in set (0.00 sec) Tiếp theo ta tiến hành cài đặt giao diện web A2billing và phân quyền thực thi cho các thư mục cp -rf /usr/src/a2billing/customer /var/www/ chmod 777 /var/www/customer/templates_c cp -rf /usr/src/a2billing/agent /var/www/ chmod 777 /var/www/agent/templates_c cp -rf /usr/src/a2billing/admin /var/www/a2billing chmod 777 /var/www/a2billing/templates_c cp -Rf /usr/src/a2billing/common /var/www/ Cài đặt và thực thi các file AGI cho sự hoạt động của A2billing cp /usr/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/ cp /usr/src/a2billing/AGI/a2billing_monitoring.php /var/lib/asterisk/agi-bin/ cp -rf /usr/src/a2billing/common/lib /var/lib/asterisk/agi-bin/ chmod +x /var/lib/asterisk/agi-bin/a2billing.php chmod +x /var/lib/asterisk/agi-bin/a2billing_monitoring.php chown -R asterisk:asterisk /var/lib/asterisk/agi-bin Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 75
Thay đổi các file cấu hình của A2billing bằng các lệnh sau: llllcp /usr/src/a2billing/a2billing.conf /etc/asterisk chown asterisk:asterisk /etc/asterisk/a2billing.conf ln -sf /etc/asterisk/a2billing.conf /etc/a2billing.conf sed -i “s/\(port *= *\)\(.*\)/\13306/” /etc/asterisk/a2billing.conf sed -i “s/\(user *= *\)\(.*\)/\1a2billinguser/” /etc/asterisk/a2billing.conf sed -i “s/\(password *= *\)\(.*\)/\1a2billing/” /etc/asterisk/a2billing.conf sed -i “s/\(dbname *= *\)\(.*\)/\1mya2billing/” /etc/asterisk/a2billing.conf Tạo vài đường dẫn chứa tập tin MOH mp3 cho A2billing mkdir -p /var/lib/asterisk/mohmp3/acc_1 mkdir -p /var/lib/asterisk/mohmp3/acc_2 mkdir -p /var/lib/asterisk/mohmp3/acc_3 mkdir -p /var/lib/asterisk/mohmp3/acc_4 mkdir -p /var/lib/asterisk/mohmp3/acc_5 mkdir -p /var/lib/asterisk/mohmp3/acc_6 mkdir -p /var/lib/asterisk/mohmp3/acc_7 mkdir -p /var/lib/asterisk/mohmp3/acc_8 mkdir -p /var/lib/asterisk/mohmp3/acc_9 mkdir -p /var/lib/asterisk/mohmp3/acc_10 chmod 777 /var/lib/asterisk/mohmp3/acc_* chown -R asterisk:asterisk /var/lib/asterisk/mohmp3/ Cài đặt các tập tin âm thanh hỗ trợ cho A2billing cd /usr/src/a2billing/addons/sounds chmod +x install_a2b_sounds.sh ./install_a2b_sounds.sh mkdir -p /var/lib/asterisk/sounds/a2billing chmod +x /var/lib/asterisk/sounds/* Tạo các tập tin mở rộng liên kết giữa A2billing và Asterisk cd /etc/asterisk/ touch additional_a2billing_iax.conf touch additional_a2billing_sip.conf touch extensions_a2billing.conf echo “#include additional_a2billing_sip.conf” >> /etc/asterisk/sip_custom.conf
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 76
echo “#include additional_a2billing_iax.conf” >> /etc/asterisk/iax_custom.conf echo -e >> /etc/asterisk/extensions_custom.conf echo “#include extensions_a2billing.conf” >> /etc/asterisk/extensions_custom.conf Phân quyền truy cập, thực thi cho các tập tin, thư mục liên quan cho sự truy nhập vào A2billing của user chmod 777 /etc/asterisk/additional_a2billing_iax.conf chmod 777 /etc/asterisk/additional_a2billing_sip.conf chown -R asterisk:asterisk /etc/asterisk/additional_a2billing_iax.conf chown -R asterisk:asterisk /etc/asterisk/additional_a2billing_sip.conf chown -R asterisk:asterisk /var/lib/asterisk/agi-bin chown -R asterisk:asterisk /etc/asterisk/ chown -R asterisk:asterisk /var/www/common chown -R asterisk:asterisk /var/www/a2billing chown -R asterisk:asterisk /var/www/customer chown -R asterisk:asterisk /var/www/agent chown -R asterisk:asterisk /var/lib/asterisk/ Thay đổi và thêm vào tập tin manager.conf các thông tin cần thiết bằng các lệnh sau: sed -i “s/\(enabled *= *\)\(.*\)/\1yes/” /etc/asterisk/manager.conf echo “ [myasterisk] secret = mycode deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user write = system,call,log,verbose,command,agent,user “ >> /etc/asterisk/manager.conf Nếu muốn cho phép khởi động A2billing từ FreePBX, ta cần tạo một Custom Trunk mới bằng lệnh sau: echo „ [macro-dialout-trunk-predial-hook] exten => s,1,GotoIf($[”${OUT_${DIAL_TRUNK}:4:4}” = “A2B/”]?customfreepbx-a2billing,${OUTNUM},1:2) exten => s,2,MacroExit Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 77
[custom-freepbx-a2billing] exten => _X.,1,DeadAGI(a2billing.php|${OUT_${DIAL_TRUNK}:8}) exten => _X.,n,Hangup() „ >> /etc/asterisk/extensions_custom.conf Bổ sung thêm một số Context cần thiết để cho A2billing có thể hoạt động được cùng với Asterisk echo “ [a2billing] exten => _X.,1,Answer exten => _X.,n,Wait(1) exten => _X.,n,AGI(a2billing.php|1) exten => _X.,n,Hangup [a2billing-callback] exten => _X.,1,deadAGI(a2billing.php|1|callback) exten => _X.,n,Hangup [a2billing-cid-callback] exten => _X.,1,deadAGI(a2billing.php|1|cid-callback|34);last #parameter is the callback area code exten => _X.,n,Hangup [a2billing-all-callback] exten => _X.,1,deadAGI(a2billing.php|1|all-callback|34);last #parameter is the callback area code exten => _X.,n,Hangup [a2billing-did] exten => _X.,1,deadAGI(a2billing.php|1|did) exten => _X.,2,Hangup [a2billing-voucher] exten => _X.,1,deadAGI(a2billing.php|1|voucher) exten => _X.,n,Hangup [custom-a2billing-did] exten => _X.,1,deadAGI(a2billing.php|1|did) exten => _X.,2,Hangup [custom-a2billing] exten => _X.,1,deadAGI(a2billing.php|1) exten => _X.,n,Hangup “ >> /etc/asterisk/extensions_a2billing.conf Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 78
Tạo các tập tin Log cần thiết trong thư mục /var/log/a2billing mkdir -p /var/log/a2billing touch /var/log/asterisk/a2billing-daemon-callback.log touch /var/log/a2billing/a2billing-daemon-callback.log touch /var/log/a2billing/cront_a2b_alarm.log touch /var/log/a2billing/cront_a2b_autorefill.log touch /var/log/a2billing/cront_a2b_batch_process.log touch /var/log/a2billing/cront_a2b_bill_diduse.log touch /var/log/a2billing/cront_a2b_subscription_fee.log touch /var/log/a2billing/cront_a2b_currency_update.log touch /var/log/a2billing/cront_a2b_invoice.log touch /var/log/a2billing/cront_a2b_check_account.log touch /var/log/a2billing/a2billing_paypal.log touch /var/log/a2billing/a2billing_epayment.log touch /var/log/a2billing/api_ecommerce_request.log touch /var/log/a2billing/api_callback_request.log touch /var/log/a2billing/a2billing_agi.log chown asterisk:asterisk /var/log/asterisk/a2billing-daemon-callback.log chown -R asterisk:asterisk /var/log/a2billing Như thế là công việc cài đặtA2billing đã hoàn thành. Sau khi cài đặt xong ta vào trình duyệt web Firefox, đăng nhập vào địa chỉ http://192.168.1.10/a2billing sẽ xuất hiện giao diện Login như sau:
Hình 5.5 Giao diện đăng nhập tài khoản A2Billing
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 79
Lúc này ta sẽ đăng nhập vào giao diện A2billing với Username và Password mặc đinh như sau: Username: root Password: changepassword Và giao diện cấu hình A2Billing như sau:
Hình 5.6 Giao diện Web cấu hình của A2Billing 5.5 Một số khái niệm trong A2Billing Trong chương trước, nhóm thực hiện đề tài đã thực hiện thành công việc thiết lập hệ thống tổng đài PBX Asterisk cho nhu cầu thực hiện cuộc gọi nội bộ, trong nước và quốc tế của doanh nghiệp nhỏ và vừa. Ở chương này, nhóm thực hiện đề tài tiếp tục phát triển hệ thống đó để đáp ứng thêm một số yêu cầu của doanh nghiệp. A2Billing kết hợp với Asterisk có thể được cài đặt, thiết lập và chỉnh sửa để đáp ứng nhiều nhu cầu khác nhau. Trong doanh nghiệp thì các nhu cầu đó có thể là: Tính tiền cuộc gọi quốc tế cho các phòng ban, chi nhánh khác nhau. Kiểm tra các cuộc gọi ra bên ngoài của nhân viên công ty. Báo cáo, thống kê các cuộc gọi ra ngoài công ty. Tự động lựa chọn các kết nối với nhà cung cấp dịch vụ để tối ưu, tiết kiệm chi phí các cuộc gọi ra bên ngoài của công ty. Thực hiện cuộc gọi qua web. Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 80
Ta tiếp tục sử dụng mô hình công ty đã sử dụng trong chương trước. Ở đây, chúng ta cần phải đảm bảo là các cuộc gọi và các kết nối đã được thực hiện thành công. A2Billing chỉ bổ sung thêm một số tính năng và nhu cầu cụ thể chứ không tham gia vào các quá trình thiết lập cuộc gọi hay các cấu hình Context, Extension, Sip Friend… của Asterisk. Ở đây nhóm thực hiện đề tài sẽ tiếp tục thiết lập trong trường hợp công ty có một đường dây PSTN và hai nhà cung cấp dịch vụ VoIP như trong chương trước.
Hình 5.7 Mô hình kết nối trong công ty Trước khi chúng ta làm việc với A2Billing, ta cần phải có một số khái niệm về A2Billing và các tính năng trong đó. A2Billing thực sự nhiều tính năng hơn là một ứng dụng gọi điện bằng card thông thường. Trong đó có mốt số khái niệm mà chúng ta cần phải giải thích qua là: Customers, Rates, Rate cards, Call plan, Trunks… Chúng ta sẽ tìm hiểu thiết lập chi tiết sau khi đã nói qua khái niệm từng mục. Customers – Customers là người dùng, đồng thời cũng là card để người dùng thực hiện cuộc gọi. Đây hoàn toàn giống như các card VoIP đang được bán trên thị trường ở Việt Nam. Một Customer sẽ được xác nhận với một số PIN number hoặc số Card number. Rates – Rates là chi phí thực hiện cuộc gọi đến một địa điểm cụ thể nào đó. Ta qui định rate là qui định phí thực hiện cuộc gọi đến một địa điểm. Rate cards – Rate cards có thể hiểu là một nhóm các Rates. Ta có nhiều Rates khác nhau cho những địa điểm gọi điện khác nhau. Ví dụ ta có 3 nhà cung cấp dịch vụ PSTN, mỗi người tính phí khác nhau. Ta sẽ gom chung 3 rate đó vào 1 rate card là PSTN.
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 81
Call plan – Call plan thì lại là một nhóm các Rate cards. Dùng ví dụ trên, nếu ta có một Rate card cho mục đích gọi “nội hạt”, một Rate card khác cho gọi “liên tỉnh”. Ta sẽ gom hai Rate card đó thành một Call plan có tên là “trong nước”. Và khi đó, chúng ta sẽ tạo ra các loại Card có thể thực hiện cuộc gọi đến các Call plan mà ta qui định. Ta có thể bán các loại card gọi điện “trong nước” khác các loại card gọi điện “quốc tế”. Trunks – Trunks là các kết nối từ A2Billing đến thế giới bên ngoài (các nhà cung cấp dịch vụ). Trunk có thể là các đường dây PSTN truyền thống (gọi là Zap trunk) hoặc đường kết nối Internet đến các nhà cung cấp dịch vụ VoIP (gọi là SIP/IAX trunk). Ở Việt Nam hiện thời các nhà cung cấp dịch vụ VoIP chưa cung cấp hình thức dịch vụ Trunk mà chỉ là các Card Number phục vụ mục đích gọi điện quốc tế qua softphone hoặc IP-phone. 5.6 Kết luận A2Billing kết hợp với Asterisk đã cung cấp cho các doanh nghiệp một giải pháp hữu hiệu cho việc quản lý cuộc gọi và tính tiền cuộc gọi trong phạm vi công ty nhỏ và vừa. Và quan trọng nhất là A2Billing hiện thời đang là gói cài đặt được cung cấp hoàn toàn miễn phí nên nó đang được cộng đồng Asterisk đánh giá cao. A2Billing cũng cho ta thấy được cái nhìn rất tổng quát về cách quản lý và tính tiền cuộc gọi vì phần mềm này có các chức năng rất giống các hệ thống tính tiền đang được sử dụng hiện nay của các nhà cung cấp dịch vụ.
Chương 6 Giới thiệu và cài đặt A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 82
Chương 6 XÂY DỰNG HỆ THỐNG PBX ASTERISK VÀ GIẢI PHÁP TÍNH CƯỚC A2BILLING 6.1 Mô hình hệ thống thực tế
Hình 6.1 Mô hình hệ thống thực tế Giải thích mô hình: Máy chủ Asterisk được kết nối mạng LAN với các thiết bị đầu cuối VoIP như Analog Phone, IP Phone, Softfone thông qua thiết bị ATA(Analog Telephone Adapter). Do đó, các thiết bị đầu cuối VoIP có thể đăng nhập vào mạng LAN nội bộ tổng đài và thông thoại liên lạc với nhau mà không phải tốn bất kì cước phí nào. Ngoài ra, các thiết bị đầu cuối VoIP có thể đăng nhập vào nội bộ tổng đài ở bất cứ nơi nào có kết nối Internet nếu máy chủ Asterisk có đăng ký một Domain riêng.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 83
Hệ thống tổng đài giao tiếp với môi trường PSTN thông qua Card giao tiếp X100P giúp các thuê bao nội bộ tổng đài có thể thực hiện được cuộc gọi bình thường ra bên ngoài thông qua PSTN. Để giải quyết vấn đề cước phí cho các cuộc gọi quốc tế đường dài từ nội bộ trong công ty sang các quốc gia khác, ta có thể đăng ký cho tổng đài của chúng ta thêm một IP Trunk của các nhà cung cấp dịch vụ VoIP nhằm giúp chúng ta thực hiện được các cuộc gọi này thông qua môi trường Internet, như thế sẽ giảm bớt chi phí cho những cuộc gọi quốc tế của công ty. Do hạn chế về điều kiện vật chất, trang thiết bị nên nhóm thực hiện đề tài chỉ sử dụng phần mềm Softfone X-Lite làm thiết bị đầu cuối VoIP duy nhất trong đồ án này. 6.2 Các thiết bị phần cứng và phần mềm sử dụng 6.2.1 Phần cứng Các thiết bị phần cứng được sử dụng trong mô hình trên là: Máy chủ Asterisk có cấu hình tương đối mạnh. Card giao tiếp X100P. Điện thoại analog. Tổng đài FX106. 6.2.2 Phần mềm Đây là các phần mềm cài đặt cần thiết cho máy chủ Asterisk: Hệ điều hành Linux Ubuntu 10.04 . Phần mềm mã nguồn mở Asterisk: o asterisk: version 1.4.42. o asterisk-addons: version 1.4.13. o dahdi: version 2.4. o libpri: version 1.4.12. Phần mềm mã nguồn mở FreePBX phiên bản 2.7. Phần mềm mã nguồn mở A2Billing phiên bản 1.9.3. Phần mềm SoftPhone X-Lite version 3.0 cài trên máy ảo VMWare. 6.3 Một số chức năng của hệ thống IP PBX 6.3.1 Add Extension (Tạo tài khoản thuê bao) Trước tiên ta khởi động trình duyệt Web, nhập http://192.168.1.10/admin sẽ xuất hiện giao diện đăng nhập như sau:
vào
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
địa
chỉ
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 84
Hình 6.1 Giao diện đăng nhập tài khoản FreePBX Lúc này ta sẽ đăng nhập vào giao diện FreePBX với Username và Password mặc định như sau: Username: root. Password: root. Và đây là giao diện FreePBX sau khi đăng nhập:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 85
Hình 6.2 Giao diện Web của FreePBX Vào mục Extensions ở bên trái màn hình sẽ hiện ra cửa sổ dịch vụ. Chọn Generic SIP Device.
Hình 6.3 Tạo các tài khoản SIP Nhấn Submit để bắt đầu cấu hình tài khoản thuê bao. Sau đó sẽ hiện ra cửa sổ giao diện như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 86
Hình 6.4 Cấu hình các thông số tài khoản SIP Đây là các thông số chính ta cần quan tâm: User Extension: số điện thoại của thuê bao. Display Name: tên của thuê bao. secret: mật khẩu của thuê bao. Thiết lập xong nhấn Submit ở cuối phần đăng ký thuê bao để lưu lại thiết lập bất cứ khi nào tạo một tài khoản thuê bao mới.. Lên đầu trang, click Apply Configuration Changes (màu cam) vào để bắt đầu áp dụng cấu hình.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 87
Hình 6.5 Áp dụng cấu hình Ta có thể đăng nhập vào các tài khoản thuê bao vừa tạo ở trên thông qua phần mềm Soft Phone X-Lite 3.0. Softphone là một phần mềm được cài trên máy tính thực hiện tất cả các chức năng giống như thiết bị điện thoại VoIP, cần lưu ý khi sử dụng softphone là máy tính phải có card âm thanh, headphone và không bị chặn bởi firewall. Đăng nhập tài khoản thuê bao “dinh101”trên PC thứ nhất: Khởi động phần mềm X-Lite, chọn “SIP Account Settings” như hình dưới:
Hình 6.6 Giao diện softphone X-Lite
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 88
Sau đó sẽ hiện ra giao diện cấu hình và ta nhập các thông số như hình dưới:
Hình 6.7 Cấu hình đăng nhập tài khoản thuê bao trên X-Lite Nhấp Apply sau đó nhấn OK để lưu lại thiết lập. Softphone X-Lite sẽ bắt đầu đăng nhập tài khoản thuê bao. Đây là giao diện X-Lite sau khi đăng nhập thành công:
Hình 6.8 Đăng nhập thành công trên softphone Cấu hình user “viet102” trên PC thứ hai với số thuê bao 102 (tương tự). Sau khi đăng nhập thành công tài khoản thuê bao “viet102” trên X-Lite, ta quay số 101 sẽ gọi tới user “dinh101”. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 89
Call Waiting (Cuộc gọi chờ) Call Waiting là dịch vụ cho phép thuê bao vẫn có thể nhận được tín hiệu báo có cuộc gọi đến trong khi đang đàm thoại với thuê bao khác. Thuê bao có thể kết thúc cuộc gọi hiện hành để trả lời cuộc gọi mới, hoặc có thể tạm thời ngưng cuộc gọi hiện hành để chuyển sang nhận cuộc gọi mới. Ta có thể kích hoạt dịch vụ này trực tiếp qua điện thoại. Để kích hoạt dịch vụ, thuê bao quay số *70. Để hủy dịch vụ, thuê bao quay số *71. 6.3.3 Music On Hold (Nhạc chờ khi giữ máy) Tính năng Music On Hold của Asterisk có nhiều ứng dụng thực tế rất thiết thực. Một số ứng dụng tiêu biểu như trong khi chờ giữ máy để được gặp người khác chẳng hạn, thuê bao có thể nghe âm nhạc giải trí để quên đi thời gian chờ đợi, khi chờ trả lời cuộc gọi thuê bao sẽ nghe âm nhạc thay vì hồi âm chuông như điện thoại truyền thống hoặc phát ra một thông điệp thông báo cho một tác vụ nào đó. FreePBX đã có sẵn một số lượng nhạc chờ, tuy nhiên ta có thể chọn lựa nhạc chờ theo ý muốn của riêng mình thay thế cho các nhạc chờ đã có sẵn. FreePBX chỉ hỗ trợ định dạng tập tin MP3 hoặc WAV. Để tạo ra thư viện nhạc chờ của riêng mình, ta chỉ cần tải lên tất cả các tập tin MP3 hoặc WAV. Chúng ta cần chuyển đổi các tập tin MP3 và WAV thành định dạng chuẩn phù hợp với FreePBX: Tốc độ Bit: 128. Đơn sắc. Để có được bộ nhạc chờ theo ý muốn, ta cần phải tạo ra thư việc nhạc chờ để lưu trữ các bài hát. Chọn mục Music on Hold ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 90
Hình 6.9 Giao diện cấu hình dịch vụ Music on Hold Để tạo một thư viện nhạc chờ mới, click chọn Add Music Category. Ta nhập tên thư viện nhạc chờ trong khung Category Nam:
Hình 6.10 Tạo thư viện nhạc chờ Nhac-Viet-Nam Chọn Submit Changes để lưu lại thư viện. Trong cửa sổ tiếp theo, nhấp chọn Browse để chọn tập tin định dạng WAV hoặc MP3 muốn đưa vào thư viện Nhac-Viet-Nam. Nhấn Upload để bắt đầu tải lên.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 91
Hình 6.11 Tải lên các tập tin nhạc chờ Sau khi quá trình tải lên hoàn tất, nhấn Apply Configuration Changes để lưu lại cấu hình.
Hình 6.12 Áp dụng cấu hình dịch vụ Music On Hold Tiếp theo chọn thẻ Outbound Routes ở bên trái cửa sổ màn hình, trong mục Music On Hold chọn thư viện nhạc chờ muốn sử dụng.
Hình 6.13 Cấu hình MOH trong Outbound Routes
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 92
Chọn Submit để lưu lại thiết lập như hình dưới:
Hình 6.14 Lưu lại thiết lập nhạc chờ cho các cuộc gọi đến Tương tự, chọn thẻ Inbound Routes, trong mục Music On Hold chọn thư viện nhạc chờ muốn sử dụng.
Hình 6.15 Cấu hình MOH trong Inbound Routes
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 93
Click Submit rồi Apply Configuration Changes để lưu lại cấu hình.
Hình 6.16 Áp dụng cấu hình Bây giờ ta có thể nghe được nhạc chờ trong khi đợi tín hiệu bắt máy. 6.3.4 Blacklist (Danh sách loại trừ) Mục đích của tính năng này là giúp thuê bao loại trừ các cuộc gọi đến của một thuê bao nào đó, để làm được điều này ta đưa số điện thoại của thuê bao mà ta không muốn trả lời cuộc gọi vào trong danh sách Blacklist. Một ví dụ cụ thể như khi có một số điện thoại gọi điện với mục đích xấu, chúng ta muốn các số điện thoại này không được thực hiện cuộc gọi đến điện thoại của ta nữa, lúc này ta sẽ đưa các số điện thoại đó vào danh sách Blacklist. Chúng ta có thể quản lý danh sách loại trừ Blacklist thông qua giao diện FreePBX. Đầu tiên chúng ta nhấp chọn thẻ Blacklist ở bên trái cửa sổ màn hình sẽ hiện ra giao diện cấu hình. Trong mục Number, ta nhập số thuê bao mà ta không muốn nhận cuộc gọi.
Hình 6.17 Giao diện cấu hình dịch vụ Blacklist Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 94
Sau đó nhấn Submit Changes để lưu lại thiết lập. Số thuê bao 101 sau khi bị đưa vào danh sách loại trừ sẽ không thể gọi được đến tổng đài. Thuê bao đó sẽ nhận được thông báo “The number you have reached is not is service”. Ngoài ra ta có thể điều chỉnh danh sách Blacklist trực tiếp qua điện thoại: Đưa một số thuê bao vào danh sách loại trừ: trên điện thoại ta quay số *30 sẽ nhận được thông báo nhập số thuê bao muốn loại trừ rồi nhấn #. Sau khi nhấn xong, ta sẽ nhận được yêu cầu xác nhận thuê bao muốn loại trừ. Để xác nhận ta nhấn phím 1. Cuối cùng ta nhận được thông báo xác nhận đã đưa thuê bao trên vào danh sách loại trừ. Đưa số thuê bao gọi đến cuối cùng vào danh sách loại trừ: trên điện thoại ta quay số *32 sẽ nhận được thông báo yêu cầu xác nhận đưa số thuê bao gọi đến cuối cùng vào danh sách loại trừ. Để xác nhận ta nhấn phím 1. Cuối cùng ta sẽ nhận được thông báo xác nhận đã đưa thuê bao trên vào danh sách loại trừ. Xóa một số thuê bao khỏi danh sách loại trừ: trên điện thoại ta quay số *31 sẽ nhận được thông báo nhập số thuê bao muốn xóa khỏi danh sách rồi nhấn #. Sau khi nhấn xong, ta sẽ nghe được yêu cầu xác nhận. Để xác nhận ta nhấn phím 1. Cuối cùng ta nghe thấy thông báo đã xóa thuê bao trên khỏi danh sách loại trừ.
6.3.5 Ring Groups (Đổ chuông chóm) Ring Groups là dịch vụ thiết lập các số thuê bao thành một nhóm và khi có cuộc gọi từ bên ngoài đến tồng đài thì các thuê bao trong nhóm đó sẽ cùng đổ chuông. Một ví dụ cụ thể như khi có thuê bao gọi đến số 600 là số điện thoại phòng chăm sóc khách hàng của một công ty, thì tất cả các điện thoại của nhân viên trong phòng chăm sóc khách hàng sẽ đổ chuông đồng loạt, cho đến khi có một thuê bao trong nhóm nhấc máy để nhận cuộc gọi này. Để tiến hành cấu hình dịch vụ, ta chọn mục Ring Groups ở bên trái màn hình, sẽ hiện ra cửa sổ giao diện:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 95
Hình 6.18 Giao diện cấu hình dịch vụ Ring Groups Đây là các thông số cơ bản chúng ra cần quan tâm: Ring-Group Number: đây là số điện thoại đại diện của nhóm. Group Description: tên của nhóm. Ring Strategy: cách thức đổ chuông. Có 2 chế độ thường sử dụng: o Ring All: đổ chuông đồng loạt cho tất cả các thuê bao trong nhóm. o Hunt: đổ chuông cho thuê bao đầu tiên trong nhóm, nếu thuê bao này không nhấc máy thì nó sẽ chuyển qua thuê bao kế tiếp và tiếp tục như vậy. Ring Max: thời gian đổ chuông. Extension list: Danh sách các số điện thoại được đưa vào nhóm. Ngoài ra, trong trường hợp không có ai trong nhóm nhấc máy trả lời cuộc gọi, ta có thể cài đặt hệ thống Voicemail thông báo yêu cầu để lại lời nhắn thoại trong mục Destination if no answer như hình dưới:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 96
Hình 6.19 Cấu hình mục “Destination if no answer” cho dịch vụ Ring Groups 6.3.6 Queues (Hàng đợi) Dịch vụ hàng đợi cho phép bạn quản lý một số lượng lớn các cuộc gọi đến. Đây là ứng dụng rất linh hoạt, có rất nhiều lựa chọn để điều chỉnh cho phù hợp với các tình huống khác nhau. Để cấu hình dịch vụ này ta chọn mục Queues ở bên trái màn hình sẽ hiện ra cửa sổ giao diện:
Hình 6.20 Giao diện cấu hình dịch vụ Queue Nhấp chọn Add Queue để tạo hàng đợi. Đây là các thông số cơ bản ta cần quan tâm: Queue Number: đây là số điện thoại đại diện cho hàng đợi. Những thuê bao nội bộ trong danh sách Dynamic Members sẽ dùng số điện thoại này Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 97
thêm * để đăng nhập hoặc thoát khỏi hàng đợi (ví dụ như 700* để đăng nhập hàng đợi, 700** để thoát khỏi hàng đợi nếu Queue Number là 700). Queue Name: tên của hàng đợi. Tên hàng đợi chỉ sử dụng ở giao diện Web để dễ dàng xác định. Queue Password: Mật khẩu của hàng đợi. Nếu chúng ta chú trọng đến vấn đề bảo mật, chúng ta có thể cài mật khẩu cho hàng đợi để tránh nhiều thuê bao chưa được cho phép đăng nhập vào hàng đợi. Khi một thuê bao nào đó muốn đăng nhập vào hàng đợi, thuê bao đó sẽ được nhận được thông báo yêu cầu nhập mật khẩu này. Nếu ta để trống mục này thì các thuê báo sẽ không cần phải nhập mật khẩu. Static Agents: đây là danh sách số điện thoại của các thuê bao luôn đăng nhập sẵn vào hàng đợi. Những thuê bao này không cần phải đăng nhập vào hàng đợi nhưng cũng không thể thoát khỏi hàng đợi. Dynamic Members: đây là danh sách các sô thuê bao có thể đăng nhập và thoát khỏi hàng đợi. Các thuê bao này không tự động đăng nhập vào hàng đợi. Restrict Dynamic Agents: có 2 lựa chọn: o Yes: không cho phép các thuê bao không nằm trong danh sách Dynamic Members đăng nhập vào hàng đợi. o No: cho phép các thuê bao không nằm trong danh sách Dynamic Members đăng nhập vào hàng đợi. 6.3.7 Do Not Disturb (Từ chối nhận cuộc gọi) Khi kích hoạt dịch vụ này, tất cả các cuộc gọi đến thuê bao sẽ được yêu cầu để lại lời nhắn thoại. Để kích hoạt dịch vụ, thuê bao quay số *78. Để hủy dịch vụ, thuê bao quay số *79. Để chuyển trạng thái dịch vụ (từ hoạt động sang ngừng hoạt động hoặc từ ngừng hoạt động sang hoạt động), thuê bao quay số *76. 6.3.8 Conference (Xây dựng hệ thống hội thoại) Chức năng này nhằm mục đích xây dựng hệ thống hội thoại cho phép nhiều người có thể cùng nhau trao đổi nói chuyện với nhau, nơi mà mọi người cùng gọi đến để trao đổi nói chuyện gọi là phòng hội thoại, Asterisk cho phép ta tạo ra một hoặc nhiều phòng hội thoại tuỳ vào nhu cầu người sử dụng. Trong hệ thống điện thoại truyền thống PSTN để có thể sử dụng được tính năng này chúng ta phải trả tiền còn đối với Asterisk là miễn phí. Trên giao diện Web FreePBX, ta có thể tạo ra các phòng hội thoại bằng cách vào mục Conference ở bên trái màn hình. Đương nhiên bạn có thể điều chỉnh các thông số theo ý của bạn. Đây là giao diện cấu hình dịch vụ: Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 98
Hình 6.21 Cấu hình dịch vụ Conference Đây là các thông số cơ bản ta cần quan tâm: Conference Number: số điện thoại đại diện của phòng hội thoại, thuê bao gọi đến số này để vào phòng hội thoại. Conference Name: tên của phòng hội thoại. User 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. Admin PIN: mật khẩu của thuê bao chủ trì cuộc hội thoại. Khi thuê bao đăng nhập với 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. Mật khẩu này không cần thiết đối với những cuộc hội thoại không cần người chủ trì.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 99
Join Message: chọn lựa thông báo chào mừng thuê bao đăng nhập vào cuộc hội thoại. Mặc định của mục này là none nghĩa là không có thông báo chào mừng nào. Leader Wait: tùy chỉnh này có 2 lựa chọn: o Yes: đợi thuê bao chủ trì trước khi bắt đầu cuộc hội thoại. o No: cuộc hội thoại sẽ bắt đầu không cần đợi thuê bao chủ trì. User Count: thông báo số thuê bao có trong cuộc hội thoại. User join/leave: thông báo thuê bao vừa đăng nhập hoặc thoát khỏi phòng hội thoại. Music on Hold: kích hoạt chức năng nhạc chờ trong khi phòng hội thoại chỉ có một thuê bao. Sau khi cấu hình xong, ta quay số 8000 và nhập mật khẩu để đăng nhập vào phòng hội thoại vừa khởi tạo. Bây giờ ta đã ở trong phòng hội thoại và bất cứ khi nào có thuê bao đăng nhập hoặc thoát khỏi phòng hội thoại thì các thuê bao còn khác sẽ được thông báo. Để kiểm tra chức năng này, ta có thể lấy một điện thoại khác và quay số 8000 rồi nhập mật khẩu. Ta sẽ nghe được thông báo một thuê bao nào đó đã đăng nhập vào phòng hội thoại. Nếu có 2 thuê bao trở lên trong phòng hội thoại, các thuê bao đó sẽ có thể đàm thoại với nhau. 6.3.9 Follow Me (Chuyển cuộc gọi khi bận) Sau khi cài đặt tài khoản các thuê bao, ta có thể chỉ định trước các thuê bao khác trả lời nếu thuê bao được gọi không trả lời. Đây là cách chúng ta cài đặt chức năng đó. Chọn mục Follow Me ở bên trái cửa sổ màn hình sẽ hiện ra cửa sổ giao diện như sau:
Hình 6.22 Cửa sổ giao diện cấu hình dịch vụ Follow Me Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 100
Chọn lựa thuê bao mà ta muốn cài đặt dịch vụ (lựa chọn các thuê bao nằm ở bên phải màn hình. Trong trường hợp này, chúng ta sẽ chọn thuê bao dinh101 sẽ hiện ra giao diên:
Hình 6.23 Cấu hình dịch vụ Follow Me Đây là các thông số chính: Ring strategy: chọn lựa chế độ gọi. Extension List: danh sách các thuê bao sẽ chuyển cuộc gọi khi thuê bao được gọi không trả lời. Ring time: thời gian đổ chuông. Trong trường hợp tất cả các số thuê bao trong danh sách Extension List không trả lời cuộc gọi thì ta sẽ chỉ định hướng đến tiếp theo của cuộc gọi tới trong mục Destination if no answer. Trong trường hợp này là yêu cầu để lại lời nhắn thoại như hình dưới:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 101
Hình 6.24 Cấu hình tùy chọn “Destination if no answer” Bất kỳ khi nào thuê bao dinh101 được gọi, Asterisk sẽ cố gắng kết nối với thuê bao này và nếu không có tín hiệu trả lời, nó sẽ chuyển sang gọi thuê bao viet102. Nếu vẫn không có tín hiệu trả lời, nó sẽ tiếp tục chuyển cuộc gọi đến thuê bao phuc103. Nếu vẫn không có tín hiệu trả lời thì sẽ có thông báo cho người gọi để lại lời nhắn trong hộp thư thoại Voicemail (ta đã khai báo điều này trong mục Destination if no answer). Nhấp chuột chọn Submit Changes. Sau đó chọn Apply Configuration Changes để lưu lại cấu hình.
Hình 6.25 Lưu lại thiết lập 6.3.10 Callback (Tự động gọi lại) Sau khi cài đặt dịch vụ Callback, khi thuê bao thực hiện cuộc gọi đến tổng đài, tổng đài sẽ ngắt cuộc gọi và gọi lại cho thuê bao đó.Cuộc gọi lại này sẽ chuyển thuê bao gọi đến một thuê bao nội bộ hoặc truy cập một dịch vụ nào đó. Dịch vụ Callback sẽ giúp thuê bao gọi giảm được chi phí cuộc gọi. Để cấu hình dịch vụ, ta chọn mục Callback ở bên trái cửa số màn hình sẽ hiện ra cửa số giao diện của dịch vụ.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 102
Hình 6.26 Giao diện cấu hình dịch vụ Callback Đây là thông số cơ bản ta cần quan tâm: Callback Description: nhập tên của nhóm Callback. Callback Number: nhập số điện thoại của thuê bao mà tổng đài sẽ thực hiện dịch vụ Callback. Nếu để trống mục này thì tổng đài sẽ thực hiện dịch vụ Callback đối với bất kỳ cuộc gọi đến nào. Delay Before Callback: thời gian tổng đài trì hoãn trước khi gọi lại. Trong mục Destination after Callback ta sẽ cấu hình cuộc gọi lại của tổng đài hướng đến một thuê bao cụ thể hoặc một dịch vụ nào đó. Trong trường hợp này là chuyển cuộc gọi lại đến hệ thống IVR như hình trên. Nhấp Submit Changes lưu lại cấu hình. Cuối cùng nhấn Apply Configuration Changes như hình dưới để bắt đầu áp dụng dịch vụ.
Hình 6.27 Áp dụng dịch vụ
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 103
6.3.11 Voicemail (Hộp thư thoại) Đây là tính năng cho phép hệ thống nhận các thông điệp tin nhắn thoại, mỗi máy điện thoại được khai báo trong hệ thống Asterisk cho phép khai báo thêm chức năng hộp thư thoại. Mỗi khi số điện thoại bận hay ngoài “vùng phủ sóng” thì hệ thống Asterisk định hướng trực tiếp các cuộc gọi đến hộp thư thoại tương ứng đã khai báo trước. Voicemail cung cấp cho người sử dụng nhiều tính năng lựa chọn như mật khẩu xác nhận khi truy cập vào hộp thư thoại, gửi mail báo khi có thông điệp mới. Asterisk cung cấp khả năng xây dựng ứng dụng Voicemail, với khả năng này giúp cho người sử dụng điện thoại không bỏ lỡ bất cứ cuộc gọi điện thoại nào. Đây là một số tính năng của hệ thống Voicemail: Khi người gọi không được trả lời, máy không được kết nối mạng hay máy điện thoại đang bận, hệ thống đều có thông điệp riêng để thông báo tình trạng của máy 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 mật khẩu và thư mục riêng. Khi thông điệp được nhận, hệ thống Voicemail có thể gửi qua mail để thông báo, tất nhiên có kèm theo file thông điệp. 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. Chọn mục Extensions ở bên trái cửa sổ màn hình
Hình 6.28 Cấu hình Voicemail cho từng Extension
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 104
Trong mục Voicemail & Directory: Status: có 2 lựa chọn. o Enabled: kích hoạt hộp thư thoại. o Disabled: vô hiệu hóa hộp thư thoại. Voicemail Password: mật khẩu của hộp thư thoại.
Hình 6.29 Thiết lập các tùy chọn của Voicemail Ngoài ra, có thể kiểm tra Voicemail trực tiếp trên máy điện thoại theo 2 cách: Quay số *97 để đăng nhập vào hộp mail của thuê bao đang sử dụng (chỉ yêu cầu nhập mật khẩu của tài khoản mail). Quay số *98 để đăng nhập vào hộp mail của thuê bao bất kỳ (yêu cầu nhập tên đăng nhập và mật khẩu của tài khoản mail). 6.3.12 Call Forward (Chuyển hướng gọi) Khi không ở nhà, hoặc đi công tác mà người sử dụng không muốn bỏ lỡ tất cả các cuộc gọi đến văn phòng hay nhà riêng thì hãy nghĩ ngay đến tính năng chuyển cuộc gọi Call Forward. Call Forward là dịch vụ cho phép thuê bao chuyển các cuộc gọi đến số máy của mình sang một số máy khác, số máy đó có thể là số di động, số cố định hoặc số của hộp thư thoại. Đây là tính năng thường được sử dụng trong hệ thống Asterisk, thuê bao có thể tự cài đặt sử dụng khi cần thiết. Chức năng cho phép chuyển một cuộc gọi đến một hay nhiều số máy điện thoại được định trước. Một số trường hợp cần chuyển cuộc gọi như chuyển cuộc gọi khi bận, chuyển cuộc gọi khi không trả lời, chuyển cuộc gọi tức thời, chuyển cuộc gọi với thời gian định trước. Tất nhiên trước tiên ta phải kích hoạt dịch vụ chuyển cuộc gọi thì mới có thể thực hiện được. Ta có thể kích hoạt dịch vụ này trực tiếp trên điện thoại.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 105
Hình 6.30 Chuyển cuộc gọi qua giao diện X-Lite Để kích hoạt dịch vụ chuyển cuộc gọi cho thuê bao 101, thuê bao thực hiện các bước như sau: Quay số *72, sẽ có thông báo yêu cầu nhập số thuê bao muốn chuyển cuộc gọi rồi nhấn #. Tiếp theo sẽ có thông báo yêu cầu nhập số thuê bao mà các cuộc gọi sẽ được chuyển tới rồi nhấn #. Cuối cùng sẽ có thông báo xác nhận đã kích hoạt thành công dịch vụ. Để hủy bỏ dịch vụ Call Forward của tất cả các thuê bao nội bộ, thuê bao quay số *73. Sau đó sẽ có thông báo xác nhận đã hủy dịch vụ. Để hủy bỏ dịch vụ Call Forward của một thuê bao cụ thể, thuê bao quay số *74, sẽ có thông báo yêu cầu nhập số thuê bao muốn hủy dịch vụ rồi nhấn #. Sau khi nhập xong, sẽ có thông báo xác nhận đã hủy dịch vụ Call Forward của thuê bao đó.
6.3.13 Call Pickup (Nhận cuộc gọi từ xa trong cùng một nhóm) Call Pickup là tính năng rất hữu dụng, đâ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 của máy điện thoại khác cùng nhóm đang rung chuông. Một ví dụ cụ thể như khi ta đi qua phòng ban khác có công việc thì máy điện thoại của ta rung chuông, có ai đó đang gọi cho ta mà ở đó không có ai nhấc máy, lúc này thay vì chạy về phòng mình để nghe điện thoại thì ta mượn máy điện thoại của đồng nghiệp và quay số *8 rồi đến số điện thoại của ta (*8SoDienThoai#), thế là ta đã trả lời được cuộc gọi điện thoại đó. Đây chính là tính năng Call Pickup. Lưu ý là Call Pickup chỉ được thực hiện khi cả 2 máy có cùng callgroup và pickupgroup. Để cấu hình các máy có cùng callgroup và pickupgroup, ta chọn mục Extension ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau: Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 106
Hình 6.31 Chọn lựa thuê bao cấu hình dịch vụ Call Pickup Trong mục Device Options, chỉnh callgroup = 1 và pickupgroup = 1 cho các thuê bao.
Hình 6.32 Cấu hình Callgroup và Pickup Group 6.3.14 IVR (Ứng dụng tương tác thoại) Ứng dụng tương tác thoại IVR có rất nhiều ứng dụng trong thực tế, khi gọi điện thoại đến một cơ quan hay công ty nào đó, ta thường nghe thấy các thông điệp như “Xin chào quý khách đã gọi đến công ty chúng tôi, vui lòng nhấn phím 1 để nghe giới thiệu về công ty, nhấn phím 2 để được hỗ trợ kỹ thuật,…” sau đó tùy vào sự tương tác của thuê bao gọi đến, hệ thống Asteisk sẽ định hướng cuộc gọi theo mong muốn. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 107
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á USD hiện nay như thế nào, hay kết quả sổ số … tất các những yêu cầu trên đều có thể thực hiện qua ứng dụng tương tác thoại IVR. Chọn mục IVR ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Hình 6.33 Giao diện cấu hình IVR Đây là các thông số chính: Change Name: tên của hệ thống IVR sử dụng. Timeout: đây là thời gian hệ thống IVR trì hoãn trước khi chuyển cuộc gọi đến một thuê bao nội bộ hay dịch vụ nào đó trong trường hợp thuê bao gọi không nhấn phím lựa chọn nào. Announcement: chọn tập tin ghi âm dùng làm thông báo cho thuê bao gọi đến. Sau đó tiến hành nhập các tùy chọn mà bạn yêu cầu cho IVR này khi người gọi nhấn tùy chọn thích hợp.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 108
Hình 6.34 Thiết lập các tùy chọn IVR Nếu bạn cần có nhiều lựa chọn hơn trong IVR thì nhấn nút Increase Options. Trong IVR này, chúng ta sẽ thực hiện với yêu cầu như sau: Từ số 1 đến số 3, chúng ta chọn Extension: Phím 1: chọn Extension 100 (user Dinh) Phím 2: chọn Extension 101 (user Toan) Phím 3: chọn Extension 102 (user Quang) Phím 4: (chúng ta sẽ thay đổi thành ký tự “t”) chọn Extension 100. Với Extension cuối cùng (mà chúng ta đã thay đổi thành chữ "t"), nếu người gọi không nhấn bất kỳ tùy chọn nào, cuộc gọi sẽ được gửi đến Extension tương ứng với phím “t”.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 109
Hình 6.35 Thiết lập tùy chọn cho Extension cuối Sau khi hoàn tất nhấn Save và Apply Configuration Changesed phía trên của màn hình. ,
Kiểm tra bằng cách quay số 7777, Asterisk sẽ mô phỏng một cuộc gọi đến và bạn sẽ nghe được thông báo của hệ thống IVR. 6.3.15 Time Conditions (Xác lập thời gian biểu) Với dịch vụ này, chúng ta có thể tạo ra nhiều chế độ thời gian khác nhau và sử dụng các chế độ này kết hợp với Inbound Route để xử lý các cuộc gọi đến trên đường trung kế một cách linh hoạt. Trước hết ta cần tạo Time Groups. Chọn mục Time Groups ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Hình 6.36 Tạo Time Group “Ngay” Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 110
Tạo một Time Group có tên là Ngay như hình trên. Nhấp chuột chọn Submit để lưu lại cấu hình Sau đó chọn Apply Configuration Changes để bắt đầu áp dụng dịch vụ như hình dưới:
Hình 6.37 Áp dụng cấu hình Tiếp theo ta sẽ cấu hình dịch vụ Time Conditions. Chọn mục Time Conditions ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Hình 6.38 Cửa sổ giao diện dịch vụ Time Conditions
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 111
Tạo một Time Condition có tên là Day và có Time Groups là Ngay.
Hình 6.39 Tạo Time Condition “Day” Trong mục Destination if time matches ta cấu hình các cuộc gọi tới tổng đài sẽ được chuyển tiếp tới hệ thống tương tác thoại IVR nếu cuộc gọi đến nằm khoảng thời gian của Time Group Ngay.
Hình 6.40 Cấu hình các cuộc gọi thuộc Time Group “Ngay” Trong mục Destination if time does not match ta sẽ cấu hình các cuộc gọi đến không nằm trong khoảng thời gian của Time Group Ngay. Các cuộc gọi sẽ được chuyển đến hộp thư thoại của thuê bao dinh101.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 112
Hình 6.41 Cấu hình các cuộc gọi không thuộc Time Group “Ngay” Nhấp chọn Submit để lưu lại thiết lập. Sau đó chọn Apply Configuration Changes để bắt đầu áp dụng dịch vụ.
6.3.16 Day/Night Mode Control (Chuyển đổi chế độ ngày đêm) Dịch vụ này cho phép chúng ta chuyển hướng các cuộc gọi đến tổng đài mà không cần truy cập vào giao diện Web FreePBX để điều chỉnh. Chức năng này rất hữu dụng khi cần phải chuyển hướng cuộc gọi một cách nhanh chóng. Một ví cụ thể như trường hợp công ty phải đóng cửa sớm vì thời tiết xấu. Trong trường hợp này thuê bao nội bộ chỉ cần quay một con số ngắn thì tất cả cuộc gọi đến tổng đài sẽ được chuyển sang chế độ “night” (yêu cầu thuê bao gọi đến để lại tin nhắn Voicemail hoặc chuyển đến một dịch vụ nào đó,…). Chọn mục Day/Night Control ở bên trái cửa sổ màn hình sẽ hiện ra giao diện cấu hình dịch vụ như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 113
Hình 6.42 Giao diện cấu hình dịch vụ Day/Night Mode Control Đây là các thông số chính chúng ta cần quan tâm: Day/Night Feature Code Index: là một mã số nằm trong khoảng từ 0 đến 9, thì thuê bao nội bộ sẽ quay số *28< mã số> để chuyển đổi giữa 2 chế độ “Day” và “Night”. Description: tên mô tả cho chế độ chuyển đổi này. Current Mode: chế độ hiện tại (là “Day” hoặc “Night”). Optional Password: mật khẩu để có thể chuyển đổi chế độ. Tính năng này nhằm mục đích bảo vệ chế độ hiện tại không bị thay đổi bởi các thuê bao chưa được cho phép. Trong chế độ Day ta cài đặt hướng đến của các cuộc gọi tới tồng đài. Trong trường hợp này là Time Conditions như hình dưới:
Hình 6.43 Chọn hướng đến trong chế độ “Day”
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 114
Trong chế độ Night ta cài đặt hướng đến của các cuộc gọi tới tồng đài. Trong trường hợp này là Terminate Call như hình dưới:
Hình 6.44 Chọn hướng đến trong chế độ “Night” Vậy là ta cấu hình xong dịch vụ, ở chế độ Day các cuộc gọi sẽ định hướng tới dịch vụ Time Conditions, ở chế độ Night các cuộc gọi sẽ bị ngắt. Thuê bao nội bộ quay *280 để chuyển chê độ Day/Night. 6.3.17 Speed Dial (Quay số nhanh) Nếu chúng ta cần gọi cho ai đó một cách nhanh chóng mà không muốn mất thời gian tìm số điện thoại của họ trong danh bạ thì chúng ta có thể sử dụng chức năng quay số nhanh. Đây là tính năng cũng thường được sử dụng để gọi nhanh những con số khó nhớ, thay vì gọi một con số dài thì chỉ cần gọi một con số ngắn gọn dễ nhớ. Chức năng Asterisk Phonebook sẽ giúp chúng ta thực hiện được điều này. Chọn mục Asterisk Phonebook ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Hình 6.45 Giao diện cấu hình Speed Dial Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 115
Đây là các thông số ta cần quan tâm: Name: tên thuê bao. Number: số điện thoại của thuê bao. Speed dial code: số quay nhanh. Set Speed Dial?: xác nhận sử dụng số quay nhanh trên. Sau khi nhập xong các thông số nhấn Submit change để lưu lại thiết lập. Khi thực hiện cuộc gọi quay số nhanh thì nhấn *0 Ngoài ra, ta có thể gán các số quay nhanh này trực tiếp qua điện thoại. Các bước thực hiện như sau: Quay số *75, ta sẽ nhận được thông báo yêu cầu nhập số quay nhanh và nhấn phím #. Sau đó, ta sẽ tiếp tục nhận được thông báo yêu cầu: o Nhấn phím 1 để nghe thông báo số quay nhanh trên đã được gán cho số điện thoại nào. o Nhấn phím 2 để gán số quay nhanh mới. o Nhấn phím 3 để thay đổi số thuê bao của số quay nhanh trên. Sau khi nhập xong và nhấn phím #, ta sẽ nghe được thông báo xác nhận số quay nhanh đã được gán cho số thuê bao đó. 6.3.18 System Recordings (Hệ thống ghi âm) Hệ thống ghi âm là một chương trình có sẵn trong FreePBX để cho phép ghi âm, cài đặt thông báo, nhắc nhở,... Để có được các tập tin ghi âm, ta chọn mục System recordings ở bên trái cửa sổ màn hình để bắt đầu cấu hình dịch vụ. Đây là giao diện cấu hình:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 116
Hình 6.46 Giao diện cấu hình dịch vụ System recording Có hai phương pháp đưa các tập tin ghi âm vào sử dụng: Ghi âm trực tiếp qua điện thoại. Tải lên các bản ghi âm có sẵn. 6.3.18.2 Ghi âm trực tiếp Từ giao diện chính của dịch vụ System recording. Ta chọn số điện thoại của thuê bao dùng để ghi âm sau đó chọn Go như hình dưới:
Hình 6.47 Chọn thuê bao muốn ghi âm Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 117
Trong trường hợp này ta sẽ dùng điện thoại của thuê bao 100 quay số *77 để bắt đầu ghi âm.
Hình 6.48 Quay số *77 để ghi âm Sau khi ghi âm, quay số *99 để nghe lại đoạn ghi âm. Nếu ta muốn ghi âm lại thì quay số *77.
Hình 6.49 Quay số *99 để nghe lại đoạn ghi âm Nếu đã hài lòng với đoạn ghi âm thì đặt tên cho đoạn ghi âm đó rồi chọn Save để lưu lại. (Ở đây ta lưu với tên là “Main Menu”)
Hình 6.50 Đặt tên đoạn ghi âm 6.3.18.3 Tải lên các bản ghi âm có sẵn Nếu đã có một tập tin ghi âm đã chuẩn bị ở định dạng WAV, ta có thể tải lên bằng cách nhập đường dẫn thư mục của tập tin trong máy tính và tải nó lên FreePBX.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 118
Hình 6.51 Tải lên đoạn ghi âm Việc ghi âm trực tiếp hoặc tải lên các bản ghi âm có sẵn sẽ được lưu trữ trong /var/lib/asterisk/sounds/custom. 6.3.19 Calls Recordings (Ghi âm cuộc gọi) Đã có nhiều cuộc thảo luận về tính hợp pháp của việc ghi âm lại các cuộc hội thoại. Một số người coi đó không phải là một vấn đề nghiêm trọng trong khi một số khác coi đó là hành động bất hợp pháp. Nếu chúng ta ghi âm cuộc hội thoại mà không có sự đồng ý của tất cả các bên, chúng có thể đang vi phạm pháp luật – vì vậy điều này cần được cảnh báo. Đối với những người muốn ghi âm các cuộc hội thoại, các tập tin ghi âm được lưu giữ trong thư mục /var/spool/asterisk/monitor hoặc chúng ta có thể đăng nhập tài khoản Voicemail để xem các tập tin ghi âm cuộc hội thoại. 6.3.19.1 Đăng nhập tài khoản Voicemail Chúng ta có thể đăng nhập tài khoản Voicemail thông qua cửa sổ giao diện FreePBX GUI.
Hình 6.52 Cửa sổ giao diện FreePBX GUI Chọn mục Recordings sẽ hiện ra cửa sổ giao diện như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 119
Hình 6.53 Giao diện đăng nhập tài khoản Voicemail Để xem lại các cuộc hội thoại đã được ghi âm, ta đăng nhập với tên đăng nhập là số điện thoại thuê bao và mật khẩu Voicemail của thuê bao đó. Nhấp vào biểu tượng loa của cột Monitor tương ứng với thuê bao mà ta muốn nghe lại các cuộc hội thoại của thuê bao đó (ta phải cài đặt chương trình Quicktime và phần hỗ trợ Adobe Flash Player trên máy tính để có thể nghe được các cuộc hội thoại). Đây là cửa sổ giao diện sau khi đăng nhập:
Hình 6.54 Các cuộc hội thoại đã được ghi âm Đường dẫn tập tin cấu hình là /var/www/html/recordings/includes/main.conf.php Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 120
Có 2 cách thức ghi âm cuộc gọi: ghi âm tất cả cuộc gọi và ghi âm khi có yêu cầu. 6.3.19.2 Ghi âm tất cả cuộc gọi Để có thể sử dụng được chức năng này ta cần phải kích hoạt nó. Chọn thuê bao mà ta muốn ghi âm trong mục Extension như hình dưới:
Hình 6.55 Giao diện cấu hình thuê bao Trong mục Recording Options ta chọn Always để ghi âm lại tất cả các cuộc gọi đến và đi của thuê bao này.
Hình 6.56 Cấu hình ghi âm tất cả các cuộc gọi đến và đi 6.3.19.3 Ghi âm cuộc gọi khi có yêu cầu Tương tự như chức năng ghi âm tất cả các cuộc gọi được trình bày ở phần trên, ta cần phải kích hoạt chức năng ghi âm cuộc gọi theo yêu cầu để có thể sử dụng nó. Chọn mục General Settings ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 121
Hình 6.57 Cấu hình ghi âm các cuộc gọi theo yêu cầu Ta kích hoạt chức năng này bằng cách nhập thông số vào mục Asterisk Dial command options và Asterisk Outbound Dial command options như hình trên. w: cho phép người được gọi có thể ghi âm bằng cách nhấn *1. W: cho phép người gọi có thể ghi âm bằng cách nhấn *1. Một số người nhận xét rằng cần phải nhấn nhanh *1 mới kích hoạt được chức năng này. 6.3.20 Call Parking and Transfer (Chuyển cuộc gọi) Đây là chức năng chuyển cuộc gọi rất hữu ích mà Asterisk đã hỗ trợ cho chúng ta. Có một số điện thoại trung gian làm nhiệm vụ chuyển cuộc gọi và hai thuê bao có thể gặp nhau khi thuê bao được gọi nhấn vào số điện thoại mà thuê bao chủ gọi đang chờ trên đó và từ đây có thể gặp nhau và đàm thoại. Để cấu hình dịch vụ, ta chọn mục Parking Lot ở bên trái cửa sổ màn hình sẽ hiện ra giao diện như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 122
Hình 6.58 Giao diện cấu hình chuyển cuộc gọi Có 2 cách chuyển cuộc gọi: có quản lý và không có quản lý. 6.3.20.1 Chuyển cuộc gọi có quản lý Mỗi cuộc gọi được gán tương ứng với số khai báo tại parket là 70 cộng thêm 1. Ví dụ như ta có 3 cuộc gọi cần quản lý, cuộc gọi đầu tiên sẽ được gán số điện thoại là 71, cuộc gọi thứ 2 sẽ tự động được gán số điện thoại là 72, cuộc gọi thứ 3 sẽ được gán số điện thoại là 73 và cứ tiếp tục như thế. Khi ta tiếp nhận cuộc gọi và muốn chuyển cuộc gọi đó, ta thực hiện các bước như sau: Nhấn ##70, sau đó cuộc gọi sẽ được gán số và số gán sẽ được thông báo cho ta. Trong trường hợp này số gán là 71. Sau khi nghe thông báo, ta có thể gác máy và gọi đến thuê bao của người mà ta muốn chuyển cuộc gọi đến và báo với người đó nhấn 71 để nhận cuộc gọi. Trong khi chờ đợi, thuê bao gọi sẽ được nghe nhạc chờ trong khi đang giữ máy. Nếu thuê bao được gọi từ chối nhận cuộc gọi, ta sẽ nhấc máy và nhấn 71 để thông báo với thuê bao gọi là thuê bao được gọi đang bận, không thể nhận cuộc gọi. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 123
6.3.20.2 Chuyển cuộc gọi không có quản lý Để thực hiện chuyển cuộc gọi không có quản lý (chỉ đơn giản là ta chuyển cuộc gọi mà không quan tâm người được gọi có muốn trả lời hay không), ta nhấn ## thuê bao được gọi. Chẳng hạn khi bạn muốn chuyển cuộc gọi đến thuê bao 2001, đơn giản bạn nhấn ##2001 và gác máy. 6.3.20.3 Duy trì cuộc gọi Cũng giống như việc quản lý chuyển cuộc gọi ở trên, ta nhấn ##70 và nghe thông báo số được gán rồi gác máy. Đây là một công việc đơn giản nên không cần chức năng giữ máy ở trên được điện thoại. Lúc này ta sẽ duy trì cuộc gọi đến khi ta sẵn sàng để nhận cuộc gọi, nhấn 71 (hoặc một số nào đó) để gán cuộc gọi. Sau khi cuộc gọi đã được gán số, thuê bao gọi đến sẽ nghe nhạc chờ trong khi chờ tin hiệu từ người được gọi. 6.3.21 Remote Extension (Extension đăng nhập từ xa) 6.3.21.1 NAT port (Forwarding Port) Tại sao cần phải NAT port? Ở chế độ mặc định Router sẽ chặn hầu hết các port, trong đó có các port dùng cho giao thức SIP (5060), IAX2 (4569), RTP (10001-20000). Giả sử rằng có một nhân viên đang đi công tác ở ngoài muốn gọi điện thoại về công ty bằng Remote Extension. Việc anh ta cần làm sẽ là kết nối vào hệ thống VoIP của công ty. Vậy nếu không mở Port thì anh ta sẽ không kết nối được vào trong hệ thống vì gói tin đăng kí SIP đã bị chặn ở router. Ta sẽ tiến hành NAT port như sau: Mở trình duyệt vào địa chỉ cấu hình của Modem, ở đây nhóm thực hiện đề tài sử dụng Modem Bluecom – 5370 của VNPT nên địa chỉ cấu hình sẽ là: http://192.168.1.1/, đăng nhập với User và Passpword mặc định là “admin”. Để hỗ trợ cho chức năng Remote Extension ta cần tiến hành mở Port 5060 (hỗ trợ cho giao thức SIP) và Port 10001-20000 (hỗ trợ cho việc truyền dữ liệu thoại thời gian thực).
Hình 6.59 NAT port Router Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 124
Kiểm tra việc NAT port: Khi đã cấu hình NAT port thì việc rất cần thiết là kiểm tra xem các port đã mở có thành công hay không, việc này rất quan trọng vì nó hỗ trợ cho việc chẩn đoán lỗi nếu các dịch vụ sau này không chạy được. Có một công cụ để kiểm tra port rất nhanh và chính xác là PFPort Checker. Ta có thể tải về từ đường dẫn http://portforward.com/store/PFPortChecker.exe
Hình 6.60 Check port 5060 thành công 6.3.21.2 Giới thiệu về No-IP No-IP là dịch vụ được cung cấp cho những ai có nhu cầu làm web server hoặc các dịch vụ chạy trên nền IP mà không có IP tĩnh, hiện No-IP cung cấp dịch vụ miễn phí cho người dùng cá nhân, sau khi đăng ký thành công trên trang Web https://www.no-ip.com/ bạn sẽ sở hữu được 3 host miễn phí. Cách thức hoạt động: Khi bật router, ISP cung cấp cho ta 1 địa chỉ IP động, IP này sẽ thay đổi sau 24h từ khi được cung cấp, do đó các dịch vụ như remote extension của VoIP sẽ cần phải cập nhật lại IP sau mỗi ngày làm việc, công việc này sẽ rất nhàm chán và làm mất thời gian của admin. No-IP là một trong các giải pháp để giải quyết vấn đề này. Mỗi khi IP thay đổi, No-IP sẽ tự động cập nhật lại IP mới tương ứng với host mà chúng ta đã đăng kí với họ. Ví dụ như ta dùng Host “mypbx.no-ip.info” là địa chỉ web của server Asterisk, khi IP của Router thay đổi thì dịch vụ No-ip sẽ cập nhật IP mới vào host này, ta không cần quan tâm đến IP này nữa, tất cả bây giờ chỉ là khai báo host là xong. Để cập nhật mới IP thay đổi của Router, No-ip cung cấp cho ta một công cụ là Dynamic Update Client (DUC), ta cài đặt chương trình này vào PC cùng mạng LAN với Server, có thể Download tại địa chỉ: http://www.no-ip.com/client/ducsetup.exe.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 125
Hình 6.61 Cửa sổ giao diện chương trình DUC
Hình 6.62 Các Host được đăng kí trên No-IP Như vậy sau này, ở bất cứ nơi đâu chỉ cần có mạng Internet là ta vẫn có thể truy cập vào giao diện Web FreePBX Server của chúng ta với địa chỉ như sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 126
Hình 6.63 Đăng nhập FreePBX thông qua Host
Hình 6.64 Truy cập giao diện FreePBX thông qua Host 6.3.21.3 Cấu hình Remote Extension Remote Extension cho phép các thuê bao có thể truy cập vào PBX Server ở bất cứ nơi nào trên mạng Internet giống như việc đăng nhập trong mạng Local nội bộ công ty. Chức năng này mang tính linh hoạt và hữu dụng cho những nhân viên có công việc hoạt động ở bên ngoài công ty và thường xuyên liên lạc với các nhân viên khác trong công ty.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 127
Việc thiết lập Remote Extension giống như việc thiết lập cho một Extension bình thường trong nội bộ nhưng cần lưu ý việc thông số quan trọng, đó là “nat = yes” để cho phép các Extension bên ngoài có thể truy cập về PBX Server của mình.
Hình 6.65 Thiết lập NAT cho Remote Extension Đồng thời ta cần khai /ect/asterisk/sip_nat.conf như sau:
báo
một
số
thông
số
khác
trong
file
nat = yes externhost = mypbx.no-ip.info localnet = 192.168.1.0/255.255.255.0 externrefresh = 10 Các bước thiết lập thông số trên X-Lite giống như trước nhưng chỉ khác ở chỗ Domain của Server:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 128
Hình 6.66 Thông tin đăng nhập của X-Lite thông qua Host
Hình 6.67 Remote Extension đăng nhập thành công Sau khi cấu hình thì Extension 103 vẫn có thể kết nối gọi về cho các điện thoại khác trong công ty bình thường như đang trong nội bộ.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 129
6.3.22 Thiết lập Trunk cho các cuộc gọi trong FreePBX 6.3.22.1 Trunks Để kết nối với những hệ thống bên ngoài như PSTN thì chúng ta cần phải có những đường Trunk. Đây là những đường kết nối trực tiếp với những nhà cung cấp dịch vụ như PSTN hay VSP (VoIP Service Provider) mà chúng ta phải trả phí cho họ hoặc là những đường kết nối trực tiếp hai Server Asterisk với nhau. Những đường Trunk này sẽ định tuyến cho những số đăng kí từ trong hệ thống kết nối với những thuê bao của thế giới bên ngoài. Nếu công ty có nhiều chi nhánh ở các vùng khác nhau thì chúng ta nên mua Trunk của các nhà cung cấp dịch vụ gần đó nhất, như thế sẽ tiết kiệm chi phí cho các cuộc gọi qua VoIP.
Hình 6.68 Mô hình kết nối các Trunk của công ty Trong phạm vi đồ án này, nhóm thực hiện đề tài sử dụng 2 Trunk để kết nối ra bên ngoài: Đường dây PSTN ở Việt Nam với số điện thoại bàn là (061)3855659. Nhà cung cấp dịch vụ VoIP Flowroute (www.flowroute.com) với user name: 85594878, password: 6gdeYFtbMadP, và không mua số DID Number. Lưu ý: vì đề tài mang tính chất thử nghiệm nên nhóm thực hiện đề tài không mua trực tiếp VoIP Trunk mà chỉ sử dụng Account dùng thử dịch vụ VoIP của nhà cung cấp Flowroute. Vì mỗi khi ta đăng kí 1 Account trên www.flowroute.com thì nhà cung cấp cho phép ta sử dụng miễn phí SIP Trunk với tài khoản là $0.25 có thể được dùng để gọi thử đến bất cứ thuê bao nào trên thế giới với cước phí mỗi cuộc gọi là $0.05/phút (tương đương với khoảng thời gian cho phép là 5 phút với mục đích là để kiểm tra thử chất lượng cuộc gọi). Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Hình 6.69 Tạo Trunk trong FreePBX 6.3.22.1.2 Tạo ZAP Trunk Chọn “Trunks” > “Add ZAP Trunk” và điền các thông số như sau:
Hình 6.70 Tạo ZAP Trunk Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 130
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 131
Trunk Discription: ZAP Trunk (Tên của ZAP Trunk). Dial Rules: quy tắc bấm số để có thể sử dụng đường trunk. Zap Identifier: mặc định là g0, được hiểu là cổng nối với line PSTN. Ở đây ta đặt tên là 1 (cùng với số kênh của Card X100P). Với mỗi đường trunk tạo xong, chúng ta phải định tuyến những cuộc gọi cho các số trong tổng đài có thể gọi ra bên ngoài qua những đường trunk này. 6.3.22.1.3 Tạo SIP Trunk Ở đây ta sẽ tạo đường Trunk với nhà cung cấp dịch vụ VoIP Flowroute. Thông tin chi tiết và cách cấu hình để FreePBX có thể đăng ký Trunk được với nhà cung cấp dịch vụ được hướng dẫn trên trang web của Flowroute https://www.flowroute.com/accounts/interconnection/configurator/. Chọn “Trunks” rồi chọn “Add SIP Trunk” và điền các thông số như sau:
Hình 6.71 Tạo SIP Trunk Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 132
Sau khi chọn “Submit changes” và “Reload” ta dùng lệnh “sip show registry” để kiểm tra SIP Trunk đã được đăng kí chưa.
Hình 6.72 Đăng ký SIP Trunk thành công 6.3.23 Outbound Routes (Định tuyến cuộc gọi ra) Đây là nơi chúng ta định tuyến những cuộc gọi ra thế giới bên ngoài cho các số đăng ký trong tổng đài PBX của chúng ta. Như đã đề cập ở trên, với mỗi đường Trunk thì ta sẽ tạo một quy tắc định tuyến cuộc gọi ra bên ngoài cho chúng ở mục Outbound Routes. Chúng ta sẽ tạo một đường Route tên “PSTN” thông qua ZAP Trunk để gọi cho các thuê bao trong nước Việt Nam bằng đường line PSTN và một đường Route tên “via_flowroute” thông qua SIP Trunk để thực hiện cho các cuộc gọi quốc tế. Đầu tiên tạo Route cho đường line PSTN. Chọn “Outbound Routes” rồi chọn “Add Route” và điền các thông số như hình dưới:
Hình 6.73 Cấu hình OutBound Route cho ZAP Trunk Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 133
Route Name: PSTN. Dial Pattern: 0Z. (là Pattern để gọi các số liên tỉnh cũng như các số di động trong nước) và NXXXXXX (là Pattern để thực hiện cho các cuộc gọi nội hạt). Trunk Sequence: ZAP/1 (tên của ZAP Trunk). Sau đó ta tạo tiếp đường Outbound kết nối với đường Trunk của nhà cung cấp dịch vụ VoIP. Chọn “Outbound Routes” rồi chọn “Add Route” và điền các thông số như sau:
Hình 6.74 Cấu hình OutBound Route cho SIP Trunk Route Name: via_flowroute. Dial Pattern: 00|. (là Pattern để thực hiện các cuộc gọi quốc tế). Trunk Sequence: SIP/flowroute (tên của SIP Trunk). 6.3.24 Một số kết quả thực hiện a. Kết quả thực hiện cuộc gọi từ bên ngoài vào nội bộ (từ một số điện thoại di động 01685078238 đến Softfone Extension 100) qua đường Line PSTN Việt Nam như sau: Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 134
Hình 6.75 Cuộc gọi bên ngoài vào nội bộ Ta có thể quan sát tiến trình thiết lập cuộc gọi của tổng đài thông qua lệnh “set verbose 15”
Hình 6.76 Tiến trình cuộc gọi vào nội bộ trên CLI Ta có thể thấy các dòng lệnh như: o Executing Dial(“DAHDI/1-1”, “SIP/100|20|W”): đang thiết lập cuộc gọi từ bên ngoài qua DAHDI Trunk đến tài khoản SIP/100. o Called 100: đã kết nối đến Extension 100. o SIP/100 is ringing: Softfone 100 đang rung chuông. o SIP/100 answered DAHDI/1-1: Softfone 100 đã trả lời, cuộc gọi đã kết nối thành công. b. Kết quả thực hiện cuộc gọi từ Softfone trong nội bộ tổng đài gọi số thuê bao di động 01685078238 thông qua đường Line PSTN Việt Nam như sau: Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 135
Hình 6.77 Cuộc gọi từ nội bộ ra bên ngoài thông qua ZAP Trunk
Hình 6.78 Tiến trình cuộc gọi ra bên ngoài thông qua ZAP Trunk trên CLI Ta có thể thấy các dòng lệnh như: o Executing Dial(“SIP/100”, “DAHDI/1/01685078238|300|W”): đang thiết lập cuộc gọi từ tài khoản SIP/100 đến thuê bao số 01685078238 qua DAHDI Trunk có tên là “1”. o Called 1/01685078238: kết nối đến thuê bao số 01685078238. o DAHDI/1-1 answered SIP/100: cuộc gọi đã kết nối thành công. c. Kết quả thực hiện cuộc gọi từ Softfone trong nội bộ gọi số thuê bao quốc tế 1.562.6846327 ở nước Mỹ thông qua mạng VoIP của nhà cung cấp dịch vụ Flowroute (USA). Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 136
Hình 6.79 Cuộc gọi từ nội bộ ra bên ngoài thông qua SIP Trunk
Hình 6.80 Tiến trình cuộc gọi ra bên ngoài thông qua SIP Trunk trên CLI Ta có thể thấy các dòng lệnh như: o Executing Dial(“SIP/100”, “SIP/flowroute/15626846327|300|W”): đang thiết lập cuộc gọi từ tài khoản SIP/100 đến thuê bao số 15626846327 (bên USA) qua SIP Trunk có tên là “flowroute”. o Called flowroute/15626846327: kết nối đến thuê bao số 15626846327. o SIP/flowroute answered SIP/100: cuộc gọi đã kết nối thành công.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 137
6.4 Một số chức năng của A2Billing 6.4.1 Providers and trunks Sau đây chúng ta sẽ thực hiện các thiết lập để có thể tạo ra các số Card Number để thực hiện cuộc gọi. Chúng ta cần phải làm khá nhiều các thiết lập trước khi có số Card Number có thể gọi điện được. Trước tiên là qui định các đường gọi ra bên ngoài gọi là các Trunks. Chúng ta đã thiết lập một trunk gọi điện ra ngoài PSTN trong FreePBX với tên là ZAP/1. Ta sẽ thiết lập nó cho A2Billing. 6.4.1.1 Providers Providers là các nhà cung cấp dịch vụ thoại để giúp cho công ty có thể liên lạc ra bên ngoài. Hiện tại ta có hai nhà cung cấp dịch vụ phổ biến đó là PSTN Provider với đường Line điện thoại truyền thống, và VoIP Provider liên lạc thông qua đường truyền Internet. Ở menu bên tay trái, chọn “Providers”. Đầu tiên ta chọn “Add Provider”, ta sẽ đặt tên là “PSTN Provider”. Provider name: PSTN Provider. Description: tùy ý.
Hình 6.81 Thiết lập Provider Chọn “Confirm Data”, và ta đã có “PSTN Provider” được liệt kê trong “Provider List”. Ta có thể Edit hoặc Delete nếu cần thiết. Thực hiện tương tự với Provider có tên là “VoIP Provider”
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 138
Hình 6.82 List Provider được thiết lập 6.4.1.2 Trunks Sau khi tạo hai Providers xong ta tiến hành tạo Trunk trong mục “Add Trunk”. Đầu tiên ta sẽ tạo một ZAP Trunk với nhà cung cấp dịch vụ PSTN, điền vào những thông tin sau: VoIP-Provider: PSTN Provider (tên nhà cung cấp dịch vụ PSTN đã tạo ở trên). Label: PSTN Trunk (tên của Trunk). Provider Tech: DAHDI (do ta cài gói Dahdi hỗ trợ cho Card giao tiếp PSTN). Provider IP: 1 (tên của đường ra PSTN ta đã đặt trong FreePBX). Additional Parameter: để trống. Status: Active (kích hoạt Trunk). Các mục Add Prefix và Remove Prefix sẽ cho ta các cách gọi điện phù hợp với nhu cầu. Tuy nhiên khi ta để trống thì sẽ thuận tiện nhất.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 139
Hình 6.83 Thiết lập ZAP Trunk Chọn “Confirm Data”. Bây giờ trong “Trunk List” sẽ có 2 trunk hiện ra là “Zap label” và “default”. Ta sẽ delete trunk „default‟ đi vì nó không có công dụng gì.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 140
Tương tự như vậy, ta thiết lập trunk cho nhà cung cấp dịch vụ VoIP.
Hình 6.84 Thiết lập SIP Trunk Chú ý: Mặc dù là Provider IP nhưng nếu ta chỉ điền domain IP của nhà cung cấp dịch vụ thì A2Billing không thể đăng kí (register) được với nhà cung cấp dịch vụ và sẽ không thực hiện cuộc gọi được. Đây cũng là một trong những lỗi nhỏ mà A2Billing chưa hoàn thiện. Chọn „List Trunk‟ ta sẽ thấy 2 đường Trunk ra ngoài đã được thiết lập như sau:
Hình 6.85 Danh sách Trunk đã thiết lập 6.4.2 Rate Cards Bây giờ đến lúc ta thiết lập một số Ratecards. Như trên ta đã nói Ratecards được dùng để ta qui định chi phí thực hiện cuộc gọi đến một địa điểm cụ thể nào đó. Ta sẽ tạo 2 Ratecards, một Ratecards “Domestic” cho các cuộc gọi trong nước sử dụng PSTN Trunk, và một Ratecards “International” cho các cuộc gọi ra nước ngoài thông qua VoIP Trunk, tại vì cước phí khi thực hiện một cuộc gọi quốc tế thông qua VoIP Trunk sẽ rẻ hơn rất nhiều so với khi ta thực hiện gọi trực tiếp từ PSTN Trunk. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 141
Đầu tiên ta sẽ thiết lập chi phí cho các cuộc gọi qua đường dây PSTN cho tất cả các cuộc gọi trong nước. Mở mục “RATES” ở bên trái và chọn “RateCards”.
Hình 6.86 Tạo RateCard Điền vào những thông tin sau: Tariffname: Domestic. Start date: default. Expiry date: default. Trunk: Zap label. DNID Prefix: all. CallerID Prefix: all.
Hình 6.87 Tạo RateCard cho các cuộc gọi trong nước
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 142
Chọn “Confirm Data”. Ta sẽ có kết quả” local” đã hiện trong “List RateCard”. Ta cũng có thể edit hoặc delete các Rate Card nếu cần thiết. Và ta cũng tạo RateCard “International” thông qua VoIP Trunk.
Hình 6.88 Tạo RateCard cho các cuộc gọi quốc tế Sau khi chọn “Confirm Data” ta sẽ thấy “RateCards List” như sau:
Hình 6.89 Danh sách các RateCard đã được thiết lập 6.4.3 Rates Rate là chi phí thực hiện cuộc gọi đến một nơi nào đó và cách tính cước cuộc gọi do ta sẽ quy định dựa theo Dial Prefix của mỗi quốc gia khác nhau cũng như khu vực của quốc gia đó. Ví dụ nước Anh có Prefix là 44, nhưng trong đó sẽ phân biệt: 441, 442, 443 là Prefix để gọi cho điện thoại bàn ở nước Anh và 4477, 4478, 4479 là Prefix để gọi cho số di động ở nước Anh.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 143
Ta có thể tìm hiểu và tham khảo các Prefix này ở mục PROVIDERS:
Hình 6.90 Danh sách Prefix của các quốc gia trên thế giới Ta có thể xóa và bổ sung các Prefix nếu cần thiết. Chọn “Rates” và chọn “Add Rate” ở bên trái để tạo Rate cho các cuộc gọi quốc tế. Điền vào các thông số sau:
Hình 6.91 Tạo Rate cho các cuộc gọi quốc tế Ratecard: International (dùng SIP Trunk cho cuộc gọi quốc tế). Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 144
Dial Prefix: 1562 (Prefix của United States). Buying Rate: 1 (số tiền ta trả cho nhà cung cấp dịch vụ, 1USD/phút). Buyrate Min Duration: để trống (thời gian ngắn nhất cho 1 cuộc gọi – đơn vị: giây). Buyrate Billing Block: để trống (Block số giây cho 1 cuộc gọi – đơn vị: giây).
Hình 6.92 Thiết lập thông số cho Rate các cuộc gọi quốc tế Selling Rate: 2 (số tiền ta bán lại cho người dùng, 2USD/phút). Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 145
Sellrate Min Duration: để trống (thời gian ngắn nhất cho 1 cuộc gọi – đơn vị: giây). Sellrate Billing Block: để trống (Block số giây cho 1 cuộc gọi – đơn vị: giây). Connect Charge: để trống (phí tính khi một cuộc gọi được kết nối). Disconnect Charge: để trống (phí tính khi một cuộc gọi không được kết nối). Minimum Call Cost: để trống (mức phí thấp nhất cho một cuộc gọi). Start Date: default. Stop Date: default. Start Time: default. End Time: default. Trunk: NOT DEFINED (tên đường Trunk dùng cho điểm đếm của cuộc gọi này, hoặc Not Defined để dùng Trunk của RateCard). Thực hiện tương tự cho Rate thực hiện cuộc gọi đến nước Anh, Canada
Hình 6.93 Danh sách các Rate các nước quốc tế Ta đã tạo Rate cho cuộc gọi quốc tế đến Mỹ và Anh sử dụng ZAP Trunk với tên là “flowroute” mà ta đã đăng kí với nhà cung cấp dịch vụ và đã thiết lập trong FreePBX. Vấn đề tiếp theo là các cuộc gọi trong nước thì sao? Ta sẽ tạo thêm một Rate nữa cho mục đích thực hiện cuộc gọi trong nước thông qua SIP Trunk – đường line điện thoại truyền thống của nhà cung cấp dịch vụ PSTN trong nước.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 146
Chọn “Add Rate” và điền các thông tin như sau:
Hình 6.94 Tạo Rate cho các cuộc gọi trong nước Các thiết lập thực hiện giống như đối với cuộc gọi quốc tế chỉ cần thay đổi một số thông số sau: RateCard: Domestic (dùng ZAP Trunk cho cuộc gọi trong nước). Dial Prefix: defaultprefix (sẽ sử dụng Trunk này nếu cuộc gọi được thực hiện với những Prefix chưa được thiết lập trong “Rates List”).
Hình 6.95 Danh sách các Rate các cuộc gọi trong nước và quốc tế Chú ý: với VoIP ta thường sử dụng cùng lúc nhiều nhà cung cấp dịch vụ. Với một prefix chúng ta có thể tạo nhiều Rate khác nhau ứng với các Trunk khác nhau đó. Khi đó A2Billing sẽ lựa chọn đường ra cho các cuộc gọi theo tiêu chí LCR (least cost routing) hoặc LCD (least cost dialing) mà chúng ta sẽ đề cập sau. Chọn “Confirm Data”. Bây giờ chúng ta có 2 Rate. Chúng ta có thể thiết lập thêm nhiều Rate khác nhau. Tùy thuộc vào đường ra của cuộc gọi hoặc do cách ta tính tiền người dùng customer… Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 147
6.4.4 Call plan Call plan là một nhóm các RateCards. Tại sao chúng ta cần phải tạo nhóm các RateCards. Đó là vì mục đích tiết kiệm tiền bằng cách hướng các cuộc gọi theo các trunk hợp lý để đạt được một trong 2 tiêu chí: LCR (least cost routing) hay LCD (least cost dialing). Hầu hết các chương trình có chức năng tính tiền cuộc gọi đều tích hợp hai thuật toán LCR và LCD. Nhất là khi chúng ta có nhiều đường ra để thực hiện một cuộc gọi. LCR (Least Cost Routing): LCR sẽ sử dụng trunk mà ta mua vào rẻ nhất. Vì thế sẽ tiết kiệm chi phí cho ta. LCD (Least Cost Dialing): LCD thì sẽ sử dụng trunk mà customer của ta gọi đến đến rẻ nhất. Vì thế sẽ tiết kiệm chi phí cho customer. Callplan sẽ hữu ích khi ta thuê nhiều đường SIP Trunk ở những nước khác nhau. VD: nếu ta thuê ba SIP Trunk ở ba quốc gia khác nhau như: USA, Pháp, Úc. Vì mỗi nhà cung cấp dịch vụ VoIP ở mỗi quốc gia đó sẽ có giá cước khác nhau cho cùng một đích gọi nên khi đó thuật toán LCD và LCR mới có thể phát huy tác dụng của nó. Vì chúng ta cũng không có sử dụng nhiều nhà cung cấp dịch vụ nên ở đây nhóm thực hiện đề tài sẽ chỉ tạo một “Call Plan” đơn giản. Chọn mục “RateCard” bên trái và chọn “Create Call Plan”. Điền vào những thông tin sau: Name: CALL. LC Type: LCD (ta sẽ tiết kiệm chi phí cho customer). Package: No Package Offer (nếu không cài đặt dịch vụ khuyến mãi cho Callplan này, nếu có ta chọn “Offer”). Remove Inter Prefix: No (không loại bỏ Prefix gọi quốc tế (00 hoặc 011) trước khi thực hiện số cần gọi. Chẳng hạn như từ Việt nam gọi qua Anh, ta phải nhấn 0044 với 00 là Prefix gọi quốc tế từ Việ nam, 44 là mã nước của Anh, nếu ta chọn “Yes” thì chỉ có 44 được truyền đi khi ta thực hiện cuộc gọi). Đối với các nhà cung cấp dịch vụ VoIP thì hầu như chúng ta không cần nhấn Inter Prefix khi thực hiện cuộc gọi quốc tế, do đó khi tính cước cuộc gọi họ chỉ quan tâm đến Prefix – Country Code của quốc gia cần gọi mà thôi.
Hình 6.96 Tạo Call Plan Sau đó ta Add cả 2 Rate Card của ta là “International” và “Domestic” vào Call Plan “Call”. Như vậy Customer của ta sẽ thực hiện được cả điện thoại trong nước qua đường dây PSTN và điện thoại quốc tế qua nhà cung cấp dịch vụ VoIP. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 148
Hình 6.97 Add các RateCard vào CallPlan 6.4.5 Customers Đến đây chúng ta đã thiết lập hoàn tất những nền tảng cần thiết để thực hiện cuộc gọi qua A2Billing. Bây giờ chúng ta bắt đầu sử dụng những thiết lập đó cho việc tạo ra các Customers. Một Customer thực chất là một số Card Number cho người dùng sử dụng để gọi giống như những thẻ VoIP đang được bán rộng rãi trên thị trường Việt Nam. Trước tiên, chọn “Customers” bên tay trái, chọn “Add::Search”. Và điền vào những thông tin sau:
Hình 6.98 Tạo Customer (1) Account Number: default (thường là 10 số được phát một cách ngẫu nhiên) WebUI Login: có thể để default hoặc thay đổi, đây là Username để khách hàng Login vào trang web người dùng. WebUI Password: có thể để default hoặc thay đổi, đây là password của khách hàng để Login vào trang web người dùng. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 149
Balance: 100.00 (số tiền ta tạo ra cho Card – đơn vị: USD)
Hình 6.99 Tạo Customer (2) Điền thông tin cá nhân của người dùng. Có thể khai báo ở đây hoặc người dùng có thể khai báo hoặc thay đổi trên web Customer khi Login vào tài khoản của họ.
Hình 6.100 Tạo Customer (3) Payment Type: Prepaid Card (dùng loại Card tài khoản trả trước). Callplan: CALL. Status: ACTIVE. Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 150
Simultaneous Access: Simultaneous Access (cho phép card này được sử dụng cùng lúc bởi nhiều người).
Hình 6.101 Tạo Customer (4) Enable Expiry: No Expiry (không có hạn sử dụng). Expity Date: ngày hết hạn sử dụng Card, mục này có tác dụng khi “Enable Expiry: Expire Date”. Expiry Days: số ngày sử dụng Card, mục này có tác dụng khi “Enable Expiry: Expire Days Since First Use/ Expire Days Since Creation”. Create SIP Config: Yes (cho phép tự động tạo SIP config). Create IAX Config: No. Chọn “Confirm Data” để thêm customer này vào list customer. Ta có thể tạo thêm bao nhiều Customer tùy ý. Chọn “List Customers” để xem những Customers ta đã có, ta có thể edit hoặc delete nếu cần thiết.
Hình 6.102 Danh sách customer đã thiết lập Một cách khác để tạo một lượng lớn Customers cùng một lúc là sử dụng chức năng“Generate Customers”. Ta có thể tạo ra 10,50,100,… cards cùng 1 lúc. Điền vào những thông tin như hình sau và chọn “Generate Cards”.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 151
Hình 6.103 Tạo nhiều Customer cùng lúc Lưu ý: trong A2Billing các khái niệm như Customer, Account Code, Account Number, PIN Number, Card Number được coi là như nhau. 6.4.6 Kết hợp FreePBX và A2Billing Chúng ta đã tạo ra các Cards thành công. Để thực hiện được cuộc gọi ra bên ngoài ta cần phải kết nối Asterisk với A2Billing. Bây giờ ta sẽ quy định bất kì cuộc gọi nào trong nội bộ ra ngoài đều phải bấm số 777 để được thông qua A2Billing để quản lý việc tính cước cho từng nhân viên trong công ty. Ta phải thay đổi Pattern trong mục Outbound Route của FreePBX cho cả 2 Trunk. Đối với ZAP Trunk:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Hình 6.104 Liên kết FreePBX và A2Billing (1) Đối với SIP Trunk:
Hình 6.105 Liên kết FreePBX và A2Billing (1)
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 152
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 153
Chúng ta cần tạo một extension cho A2Billing. Với Asterisk chúng ta cần edit lại file extensions.conf. Vì các thuê bao trong tổng đài nội bộ có Context là “frominternal” nên ta cần thêm một số dòng lệnh như sau: nano /etc/asterisk/extensions.conf Trong context [from-internal-custom], thêm vào những dòng sau: exten => 777,1,Answer exten => 777,n,Wait exten => 777,n,AGI(a2billing.php|1) exten => 777,n,Hangup Sau khi chỉnh sửa lại file Extensions.conf ta save và reload lại Asterisk. Như vậy bây giờ, tất cả các Extension trong công ty chúng ta muốn thực hiện cuộc gọi ra ngoài phạm vi công ty sẽ phải gọi đến số 777 (ngoài số 777 ra sẽ không thể thực hiện được cuộc gọi ra ngoài với bất kì số nào khác). Chờ 1 giây và sau đó sẽ đi qua hệ thống A2Billing. Ta có thể thay đổi số 777 bằng bất cứ số nào khác ta muốn. Bây giờ từ một extension 100 muốn gọi ra ngoài sẽ bấm số 777. Ta sẽ nghe yêu cầu nhập số PIN number. PIN number chính là số Card Number. Đánh vào 10 chữ số, chương trình sẽ thông báo số tiền còn lại của Card và yêu cầu ta quay số muốn gọi với kết thúc là dấu thăng # (pound key). Dựa vào Prefix của số điện thoại đó chương trình sẽ ra thông báo thời gian ta được phép gọi. Ví dụ, ta thực hiện một cuộc gọi cho số điện thoại di động ở Việt Nam với cấu trúc cuộc gọi như sau: 777 (gọi đến A2Billing) 7837063549# (PIN number) 01685078238# (số điện thoại bàn trường ĐH.BK) 6.4.7 Một số kết quả thực hiện với A2Billing. Ở đây nhóm thực hiện đề tài sẽ thực hiện 2 cuộc gọi: một cho số điện thoại di động ở Việt Nam qua đường PSTN và hai là cho một số ở USA qua nhà cung cấp dịch vụ VoIP flowroute. a/ Từ Softfone Extension 100 nhấn 777 để thực hiện cuộc gọi cho số di động 01685078238 ở Việt Nam qua đường dây PSTN, ta sẽ nghe yêu cầu nhập số PIN Number, thông báo số tiền còn lại trong tài khoản và thời gian tối đa mà ta có thể thực hiện cuộc gọi, theo các bước sau: Nhấn: 777. Nghe: “Please enter your complete PIN number…” Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 154
Nhấn: 7837063549#. Nghe: “You have 87 dolars and 80 cents”, “Please enter the number you wish to call, then press the pound key…” Nhấn: 01685078238#. Nghe: “You have 439 minutes to call…”
Hình 6.106 Cuộc gọi từ nội bộ cho số điện thoại trong nước
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 155
Hình 6.107 Tiến trình cuộc gọi từ nội bộ cho số điện thoại trong nước Để ta có thể theo dõi chi tiết quá trình thực hiện cuộc gọi của A2Billing. Ta set lệnh sau: set verbose 15. Trên command line sẽ hiện ra: o Playing „prepaid-enter-pin-number‟: yêu cầu nhập số PIN Number. o Playing „prepaid-you-have‟: số tiền có trong tài khoản. o Playing „prepaid-enter-dest‟: yêu cầu nhập số điện thoại cần gọi. o Playing „prepaid-minutes‟: thời gian cuộc gọi tối đa. o Called 1/01685078238: cuộc gọi được kết nối qua đường PSTN với Trunk DAHDI/1. o DAHDI/1-1 answered SIP/100: cuộc gọi đã kết nối thành công. b/ Từ Softfone Extension 100 nhấn 777 để thực hiện cuộc gọi cho số 15626846327 ở USA qua nhà cung cấp dịch vụ VoIP, ta sẽ nghe yêu cầu nhập số PIN Number, thông báo số tiền còn lại trong tài khoản và thời gian tối đa mà ta có thể thực hiện cuộc gọi.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 156
Hình 6.108 Tiến trình cuộc gọi từ nội bộ cho số điện thoại quốc tế Ta có thể theo dõi quá trình thực hiện cuộc gọi thông qua Command Line như hình trên. o Playing „prepaid-enter-pin-number‟: yêu cầu nhập số PIN Number. o Playing „prepaid-you-have‟: số tiền có trong tài khoản. o Playing „prepaid-enter-dest‟: yêu cầu nhập số điện thoại cần gọi. o Playing „prepaid-minutes‟: thời gian cuộc gọi tối đa. o Called flowroute/15626846327: cuộc gọi được kết nối qua đường SIP Trunk với tên là “flowroute”. o SIP/flowroute answered SIP/100: cuộc gọi đã kết nối thành công. 6.4.8 Một số chức năng khác của A2Billing 6.4.8.1 Call Report Trong Cal Report có một chức năng quan trọng không thể thiếu trong bất kỳ dịch vụ tổng đài nào đó là CDRs (Call Detail Record) hỗ trợ cho việc lưu trữ các thông tin cuộc gọi trong cơ sở dữ liệu để tiện cho việc quản lý, tra cứu và thống kê.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 157
Hình 6.109 Thông tin chi tiết các cuộc gọi trong A2Billing Trong A2Billing ta có thể theo dõi, thống kê các thông tin cuộc gọi theo các tiêu chí như: Theo ID của Customer. Theo Customer number. Theo Callplan, Trunk, Provider, Rate. Theo khoảng thời gian. Theo số điện thoại đã gọi hoặc đã được gọi, CallerID,… 6.4.8.2 Tự động cập nhật Card Number cho các Extension Trong quá trình thực hiện các cuộc gọi từ bên trong công ty ra bên ngoài, thì nhân viên công ty sẽ cảm thấy phiền phức khi cứ phải nhập đi nhập lại số PIN Number cho mỗi cuộc gọi ra ngoài trên máy điện thoại hoặc Softfone trên máy tính của mình. Để giải quyết vấn đề trên thì FreePBX và A2Billing cho phép ta cấu hình để có thể ghi nhớ lại số PIN Number cho các Extension trong nội bộ công ty. Ta có 2 cách thiết lập. Cách thứ nhất: Thiết lập trong FreePBX Trong FreePBX ta chọn Extension đã thiết lập muốn bổ sung chức năng bỏ qua việc nhập mã số PIN Number, sau đó nhập số Card Number của Customer vào ô AccountCode như hình sau:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 158
Hình 6.110 Thiết lập Accountcode cho Extension Cách thứ hai: Thiết lập trong A2Billing Tự động cập nhật CallerID của Extension vào trong Card Number của Customer sau lần gọi thứ nhất. Khi đó, trong những lần gọi kế tiếp ta thực hiện cuộc gọi từ điện thoại của mình, thông qua Caller ID thì hệ thống sẽ tự nhận biết máy của bạn và kết nối mà không cần phải nhập mã PIN Number. Vào SYSTEM SETTING, chọn Global List và thay đổi các thông số như sau:
Hình 6.111 Tự động phát Caller ID cho Customer
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 159
Vào CUSTOMERS, chọn Caller-ID để kiểm tra xem CallerID đã được Add vào Account Number hay chưa.
Hình 6.112 Danh sách Caller ID của Customer Như vậy, từ đây về sau mỗi khi nhân viên thực hiện cuộc gọi ra ngoài cho khách hàng sẽ không còn trải qua việc nhập mã số PIN Number dài dòng và mất thời gian như trước. Tuy nhiên, việc này không mang tính bảo mật tài khoản cao bởi vì khi bạn đi vắng không có mặt ở bàn làm việc của mình, thì người khác có thể dùng điện thoại của mình để gọi ra ngoài làm ảnh hưởng đến số tiền trong tài khoản hiện có của bạn. 6.4.8.3 Package offer ( Gói khuyến mãi hỗ trợ dịch vụ) Trong A2Billing còn có các gói khuyến mãi hỗ trợ dịch vụ cho người dùng như sau: Vào PACKAGE OFFER, chọn Add và nhập các thông số:
Hình 6.113 Tạo gói hỗ trợ dịch vụ Label:
tên gói khuyến mãi.
Package Type: Unlimited calls (Cuộc gọi không giới hạn). Number of Free Calls (Số cuộc gọi được miễn phí). Free Second (Số giây được miễn phí trong tuần hoặc tháng). Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Billing Type:
Trang 160
Monthly (Miễn phí tính theo tháng). Weekly (Miễn phí tính theo tuần).
Starting Day: 7).
Ngày bắt đầu áp dụng gói khuyến mãi: Monthly (1-31), Weekly (1-
Free Units:
Số giây được miễn phí hoặc số cuộc gọi được miễn phí.
Sau khi thiết lập xong ta cần Add tên RATE cần được áp dụng các gói khuyến mãi này.
Hình 6.114 Add các gói khuyến mãi cho các Rate Khi đó Rate gọi đến nước Anh sẽ được áp dụng các gói khuyến mãi mà ta đã thiết lập. 6.4.9 Giao diện web người dùng A2Billing 6.4.9.1 Giới thiệu Giống như hầu hết các nhà cung cấp dịch vụ VoIP. A2Billing cho phép người dùng kiểm tra tài khoản của mình, coi số dư tiền trong tài khoản, các cuộc gọi đã thực hiện hoặc thay đổi thông tin cá nhân, mật khẩu… Việc này được thực hiện khá dễ dàng và trực quan qua giao diện web. Kết nối đến giao diện web người dùng bằng địa chỉ sau: http://192.168.1.10/customer/ Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 161
Ta sẽ được yêu cầu nhập User và password. User ở đây là số WebUI Login (không phải số Card Number) và Password là WebUI Password tạo ra trong quá trình tạo Customer (hoặc do quản trị viên tự qui định).
Hình 6.115 Giao diện đăng nhập của người dùng A2Billing Sau khi đăng nhập thành công. Ta sẽ vào trang “Account information”. Ở đây ta có thể chỉnh sửa lại thông tin cá nhân nếu cần thiết.
Hình 6.116 Giao diện người dùng Trên đây chỉ là những chức năng cơ bản nhất của A2Billing. A2Billing còn nhiều chức năng khác nữa như: thống kê cuộc gọi, báo cáo, khóa cuộc gọi, tạo CID… Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 162
Khi kết hợp đầy đủ chúng ta sẽ có một hệ thống đáp ứng tốt những nhu cầu của doanh nghiệp hoặc sử dụng như một nhà cung cấp dịch vụ VoIP đầu cuối. 6.4.9.2 Một số chức năng sử dụng trên giao diện người dùng 6.4.9.2.1 Call history (Lịch sử các cuộc gọi) Người dùng có thể xem lại thông tin chi tiết tất cả các cuộc gọi mình đã thực hiện.
Hình 6.117 Lịch sử các cuộc gọi trong A2Billing 6.4.9.2.2 Speed dial (Quay số nhanh) Người dùng có thể thiết lập chức năng quay số nhanh cho Card Number của mình. Sau khi thiết lập chức năng, sau này khi thực hiện cuộc gọi ta chỉ cần quay số ngắn gọn (0-9) đại diện cho những số mình thường xuyên liên lạc.
Hình 6.118 Thiết lập chức năng quay số nhanh Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 163
6.4.9.2.3 Ratecard Người dùng có thể xem cước phí thực hiện cuộc gọi đến các quốc gia khác nhau do công ty cung cấp.
Hình 6.119 Xem giá bán RateCard 6.4.9.2.4 Simulator (Mô phỏng cuộc gọi) A2Billing còn hỗ trợ chức năng mô phỏng cuộc gọi, giúp cho người dùng biết trước được tài khoản của mình sẽ thực hiện với số cần gọi là bao nhiêu phút, cước phí bao nhiêu.
Hình 6.120 Mô phỏng cuộc gọi 6.5 Kết luận Chương này đã trình bày một cách chi tiết các dịch vụ của tồng đài nội bộ Asterisk và phần mềm tính cước A2Billing. Ngoài các chức năng cơ bản như một tổng đài nội bộ, Asterisk còn cung cấp thêm rất nhiều tính năng, tiện ích trong các gói phần mềm sử dụng mã nguồn mở, miễn phí, cho phép người sử dụng có thể chủ động khai báo, cài đặt theo nhu cầu như Voicemail, điện thoại hội nghị, các dịch vụ tương tác hoặc phân phối cuộc gọi tự động, nhạc chuông linh động và phong phú với nhiều dạng khác nhau, trong khi đó, các tổng đài PBX thông thường chỉ cung cấp các dịch vụ cơ bản cho việc chuyển mạch, kết nối các thuê bao hoặc nếu muốn có thêm dịch vụ thì phải trang bị thêm các thiết bị phần cứng hoặc phần mềm bản quyền. Các tính năng này đã đáp ứng hầu hết các nhu cầu liên lạc của doanh nghiệp. Thông qua giao diện Web, ta có thể giám sát, vận hành, cấu hình từ bất kỳ đâu và bất cứ khi nào. Với các ưu điểm vận hành ổn định trên hạ tầng viễn thông sẵn có của doanh nghiệp, linh hoạt trong việc cài đặt các dịch vụ cho phù hợp với nhu cầu, cắt Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 164
giảm chi phí cuộc gọi đến mức thấp nhất giữa các chi nhánh, văn phòng và cuộc gọi quốc tế khi kết hợp với các nhà cung cấp dịch vụ điện thoại quốc tế, Asterisk đã được triển khai phổ biến ở các nước có nền kinh tế phát triển. Đây chính là minh chứng rõ ràng nhất về ưu điểm của hệ thống mã nguồn mở miễn phí mà mạnh mẽ này.
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Chương 7
Trang 165
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
7.1 Kết luận Đồ án đã trình bày được khái quát công nghệ VoIP và đưa ra mô hình ứng dụng rất thực tế bởi vì nó xuất phát từ nhu cầu của các doanh nghiệp. Đó là việc xây dựng tổng đài điện thoại IP PBX dựa trên phần mềm mã nguồn mở Asterisk được cấu hình thông qua giao diện Web FreePBX và thực hiện giải pháp tính tiền điện thoại cho tổng đài này dựa trên phần mềm mã nguồn mở A2Billing. Hiện nay, ở các quốc gia phát triển, công nghệ mà nhóm thực hiện đề tài đang nghiên cứu đã được ứng dụng khá rộng rãi trong các công ty vừa và nhỏ. Hơn thế nữa, VoIP đã, đang sẽ trở thành một thành phần không thể thiếu được của công nghệ mạng tiên tiến Next Generation Network (NGN). Nhìn chung, việc thiết lập, cấu hình hệ thống IP PBX thông qua giao diện FreePBX đáp ứng một cách tinh tế nhu cầu cho người sử dụng: giao diện cấu hình đơn giản dễ sử dụng, dễ dàng quản lý, kiểm soát thông tin chi tiết hệ thống, mang tính linh hoạt cao cho việc cập nhật trực tuyến, cải tiến hệ thống với nhiều Module tùy theo nhu cầu của người sử dụng. Bên cạnh đó, giải pháp tính tiền cuộc gọi VoIP đã giải quyết được các nhu cầu chính của một công ty chẳng hạn như: theo dõi và tính cước các cuộc gọi ra bên ngoài cho các phòng ban và chi nhánh, quản lý cuộc gọi của các nhân viên ra bên ngoài công ty, báo cáo và thống kê các cuộc gọi hàng ngày, hàng tháng, tự động tối ưu lựa chọn kết nối với nhà cung cấp VoIP để tiết kiệm chi phí, gọi điện thoại qua web… 7.2 Hướng phát triển Do thời gian thực hiện đề tài có hạn, nên nội dung luận văn chỉ đề cập đến các vấn đề như: thiết lập hệ thống IP PBX Asterisk trên giao diện GUI FreePBX với các chức năng cơ bản của một tổng đài nội bộ, và kết hợp phần mềm A2Billing để cung cấp giải pháp tính cước trong doanh nghiệp, chủ yếu để kiểm soát các cuộc gọi bên trong nội bộ ra bên ngoài công ty. Nếu có thời gian nghiên cứu thì nhóm thực hiện đề tài sẽ phát triển hệ thống theo các hướng sau đây: - Về phần cứng: ngoài việc giao tiếp với FX106 sử dụng card X100P của hãng Digium hoặc các gateway có cổng FXO, chúng ta có thể cấu hình để tương thích với các Card giao tiếp các luồng số như E1, T1, tạo nên một tổng đài lớn với dung lượng lên tới hàng chục, thậm chí hàng trăm kênh thoại. - Nghiên cứu về chức năng CRM, cụ thể với phần mềm SugarCRM để quản lý toàn bộ thông tin khách hàng đối với việc ứng dụng trong quy mô doanh nghiệp: Từ những thông tin cá nhân, sở thích khách hàng cho đến toàn bộ hoạt động liên quan khách hàng. Bạn cần biết khách hàng này đã giao dịch với cty bao nhiêu lần, nội dung của từng lần giao dịch là gì? Rồi bao nhiêu cuộc gọi, cuộc hẹn gặp với khách hàng trước đây, nội dung là gì? Bao nhiêu mail đã được gởi, nội dung như thế nào? Tất cả SugarCRM đều đáp ứng tốt. - Kết nối nhiều server Asterisk với chung một cơ sở dữ liệu để có thể đáp ứng nhu cầu cho các công ty lớn đa quốc gia. Ta sẽ kết hợp nhiều Server cách xa nhau về Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 166
mặt địa lý trên thế giới nhưng chỉ dùng chung một hệ cơ sở dữ liệu thống nhất. Trong quá trình phát triển này, chúng ta sẽ phải giải quyết rất nhiều vấn đề phát sinh chẳng hạn như chất lượng cuộc gọi (độ trễ, độ trượt, mất gói), bảo mật các cuộc gọi quan trọng, sao lưu dữliệu,...Dưới đây là mô hình tham khảo với 3 server Asterisk sử dụng một Database:
Hình 7.1 3 server Asterisk sử dụng chung 1 Database. - Sử dụng một SIP proxy: Asterisk không phải là một SIP proxy, Asterisk chỉ hỗ trợ giao thức SIP. Trong SIP, các thiết bị sẽ đăng kí với SIP server, và server này sẽ cho phép các thiết bị thực hiện giao tiếp với nhau. Khi một lượng lớn các thiết bị SIP được dùng, một SIP Proxy sẽ được dùng để quản lý việc đăng kí và kết nối sao cho hiệu quả nhất. Asterisk thì lại không đóng vai trò như một SIP Proxy, các thiết bị SIP có thể đăng kí với Asterisk nhưng khi số lượng đăng kí tăng lên, Asterisk sẽ không thể quản lý tốt. Asterisk chỉ kiểm soát tốt trong phạm vi 100 thiết bị. Do đó một hướng phát triển khác của đề tài là sử dụng một SIP Express Router (SER) để giúp Asterisk quản lý một lượng lớn các thiết bị SIP. Đây là mô hình tham khảo:
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Hình 7.2 Mô hình SER
Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 167
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Trang 168
Tài liệu tham khảo Tài liệu nước ngoài [1].
Ben Sharif, Elastix without Tears, 2008.
[2].
Ben Sharif, Trixbox-2 without Tears, 2007.
[3].
Colman Carpenter, David Duffett, Nik Middleton, Asterisk 1.4, PACKT Publishing, Birmingham – Mumbai, 2009.
[4].
David Gomillion & Barrie Dempster, Building Telephony Systems with Asterisk, PACKT Publishing, 2006.
[5].
Flavio E. Goncalves, Configure Guide for Asterisk PBX, 2007.
[6].
Jared Smith, Jim Van Meggelen & Leif Madsen, Asterisk – The Future of Telephony, O‟Reilly, 2007.
Tài liệu tiếng Việt [7].
Lê Quốc Toàn, Sách Asterisk Tiếng Việt.
[8].
Nguyễn Thị Quỳnh Trang, Tổng Đài Asterisk và Công Nghệ VoIP, Trường Đại học Bách Khoa – Đà Nẵng, 2009.
[9].
Phan Quốc Khanh & Nguyễn Mỹ Ngân, Xây Dựng Hệ Thống IP Call Center Dựa Trên Mã Nguồn Mở Asterisk, Trường Đại học Sư Phạm Kỹ Thuật HCM, 2011.
[10]. Phạm Thanh Phong & Nguyễn Lê Linh, Giải Pháp Tính Cước Cho Hệ Thống PBX Asterisk, Trường Đại học Bách Khoa TP Hồ Chí Minh, 2008. Các địa chỉ Web http://www.asterisk.org/downloads http://www.asterisk2billing.org/ http://www.baonguyen.vn http://www.data4ict.com/tutorials/a2billing/a2billing.asp http://www.forum.asterisk2billing.org/ http://www.freepbx.org/book/export/html/1855 http://www.my.opera.com/asteriskvn/blog http://www.sysadminman.net/documentation.html http://www.sysadminman.net/livedemo.html http://www.trixbox.org/ http://www.voip.com.vn/forum/ http://www.voip-info.org/
Tài liệu tham khảo