You are on page 1of 168

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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 Trang vii

LIỆT KÊ TỪ VIẾT TẮT


AAA Authentication – Authorization - Accounting
ACD Automatic Call Distribution
ACK Acknowledgement
ADSL Asymmetric Digital Subcriber Line
AGI Asterisk Gateway Interface
API Application Program Interface
ATA Analog Telephone Adapter
B2BUA Back to Back User Agent
BRI Basic Rate Interface
CDR Call Detail Record
CGI Common Gateway Interface
CLASS Custom Local Area Signaling Service
CLI Command Line Interface
CODEC Compression/Decompression Algorithm
CRM Customer Relationship Management
Cseq Command Sequence
DAHDI Digium Asterisk Hardware Device Interface
DHCP Dynamic Host Configuration Protocol
DID Direct Inward Dialing
DISA Direct Inward System Access
DNID Dial Number Identifier
DNS Domain Name System
DSL Digital Subcriber Line
DUC Dynamic Update Client
DTMF Dual Tone Multi-Frequency
FXO Foreign Exchange Office
FXS Foreign Exchange Station
GPL General Public License
GSM Global System For Mobile Communications
GUI Graphical User Interface
HTTP Hyper Text Transport Protocol
IAX Inter Asterisk Exchange
ISDN Integrated Services Digital Network
ISP Internet Service Provider
IVR Interactive Voice Response
LAN Local Area Network
LCD Least Cost Dialing
LCR Least Cost Routing
MF Multi-Frequency
MOH Music On Hold
MP3 MPEG-1 Audio Layer 3
NAT Network Address Translation

Giới thiệu
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang viii

NGN Next Generation Networks


OSS Operations Support System
PBX Private Branch Exchange
PC Personal Computer
PCM Pulse Code Modulation
PIN Personal Identification Number
PRI Primary Rate Interface
PSTN Public Switch Telephone Network
RCTP RTP Control Protocol
RPM Red Hat Package Manager
RTP Real Time Protocol
SDP Session Description Protocol
SER SIP Express Router
SIP Session Initial Protocol
SS7 Signaling System 7
TCP Transmission Control Protocol
UA User Agents
UAC User Agent Client
UAS User Agent Server
UDP User Datagram Protocol
URI Universal Resource Identifier
URL Universal Resource Location
URL Uniform Resource Locator
VoIP Voice Over Internet Protocol
VSP VoIP Service Provider
WAN Wide Area Network
WAV Waveform audio format

Giới thiệu
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 9

Chương 1 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à ring-
down, 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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 22

Chương 2 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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 user2@alp.sev.com (đị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à host1@seq.com
để 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à 87604309@sev.alp.com.

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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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ố non-
standard. 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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Đặc tính chính Kích thước Mục đích sử dụng
Frame

Không yêu cầu bản tin


Mini 4 bytes Vận chuyển dữ liệu thoại
ACK từ IAX bên kia

Yêu cầu sự xác nhận từ Vận chuyển dữ liệu đòi hỏi độ


Full 12 bytes
bên kia tin cậy như bản tin báo hiệu

Video
Không yêu cầu bản tin frame:6 bytes Vận chuyển video hay nhiều
Meta
ACK từ IAX bên kia Trunk miniframe chỉ với một header
frame:8 bytes

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 Trang 33

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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 34

Chương 3 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 IP-
PBX. 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 Trang 35

thoại tương tự. 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.

Dễ dàng mở rộng, nâng cấp và bảo


Khó mở rộng, nâng cấp và bảo dưỡng.
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


5-10 1-GHz x86, 512 MB RAM
hoặc nhà riêng

Hệ thống cho doanh


15 3-GHz x86, 1 GB RAM
nghiệp nhỏ

Hệ thống thương mại cỡ Dual CPUs hoặc triển khai trên


>15
vừa và lớ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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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: <?php phpinfo(); ?>, 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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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: <your passoword>
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/asterisk-
1.4.42.tar.gz
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-
1.4.13.tar.gz
http://downloads.asterisk.org/pub/telephony/dahdi-linux-
complete/releases/dahdi-linux-complete-2.4.0+2.4.0.tar.gz
http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-
gsm-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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 52

Chương 4 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

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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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: <put your Ubuntu server IP address here>
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 Trang 63

Chương 5 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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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ác hàm AGI Cú pháp và tính chất

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.
Trả về giá trị:
CHANNEL STATUS
 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


Xóa một mục trong cơ sở dữ liệu của Asterisk ở một khóa
DATABASE DEL đượ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


Thêm vào hoặc update một mục trong cơ sở dữ liệu của
DATABASE PUT
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.


Thực thi ứng dụng quay số cụ thể gồm cả các tùy chọn.
EXEC 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]


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.
GET FULL
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 filename escape_digits [timeout] giống như


GET OPTION
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


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
RECORD FILE 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


Đọ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ị:
SAY DATE
 -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


Đọc chuỗi các số chỉ định, kết thúc nếu người dùng nhấn
SAY DIGITS
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”


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.
SEND TEXT
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 time


SET AUTOHANGUP
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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]


Thiết lập hoặc hủy bỏ chức năng phát nhạc chờ music-on-
SET MUSIC ON
hold.
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


Thiết lập hoặc cập nhật cho các tên biến được chỉ định bởi
SET VARIABLE
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 <a2billing-createdb-user.sql
Tiến hành cài đặt cơ sơ dữ liệu cho A2billing bằng cách chạy file script install-
db.sh
./install-db.sh
Trong quá trình cài đặt ta cần khai báo các thông tin sau:
Enter Database Name: mya2billing
Enter Hostname: localhost

Chương 6 Giới thiệu và cài đặt A2Billing


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 74

Enter UserName: a2billinguser


Enter Password: a2billing
Sau khi cài đặt xong ta cần truy nhập vào cơ sở dữ liệu vừa tạo để kiểm tra lại
mysql mya2billing -u a2billinguser -pa2billing
Kiểm tra các table trong database a2billing đã cài đặt đầy đủ chưa, nếu cài đặt
đã hoàn thành ta sẽ thấy kết quả như sau:
mysql> 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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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/”]?custom-
freepbx-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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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


Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 vào địa chỉ
http://192.168.1.10/admin sẽ xuất hiện giao diện đăng nhập như sau:

Chương 7 Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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<Speed dial code>
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 báo một số thông số khác trong file
/ect/asterisk/sip_nat.conf như sau:
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 130

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
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 152

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
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à “from-
internal” 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)
<Please enter your complete PIN number…>
7837063549# (PIN number)
<You have 100 dolars…>
<Please enter the number you wish to call, then press the pound key…>
01685078238# (số điện thoại bàn trường ĐH.BK)
<You have 500 minutes to call…>
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
Xây dựng hệ thống PBX Asterisk và giải pháp tính cước A2Billing Trang 160

Billing Type: Monthly (Miễn phí tính theo tháng).


Weekly (Miễn phí tính theo tuần).
Starting Day: Ngày bắt đầu áp dụng gói khuyến mãi: Monthly (1-31), Weekly (1-
7).
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 Trang 165

Chương 7 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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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 Trang 167

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
Ket-noi.com
Ket-noi.com kho
kho tai
tai lieu
lieu mien
mien phi
phi
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

You might also like