Professional Documents
Culture Documents
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
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
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
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
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
Đ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.
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.
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.
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.
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
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
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
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ả.
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.
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.
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:
• 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.
• 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.
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.
\
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.
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.
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
Đầ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.
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
Đầ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.
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ầ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.
Đầu tiên userB sẽ gửi một bản tin REGISTER đến Registrar Server để đăng kí.
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:
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.
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
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
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ư:
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).
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
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...
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
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
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.
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.
• 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
Đâ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
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.
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ể.
3.2.4.3 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị
Ứ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.
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
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:
Bảng 3.2 Yêu cầu về phần cứng đối với tổng đài Asterisk
/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:
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.
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
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.
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:
Hình 3.12 Cửa sổ giao diện sau khi đăng nhập 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
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.
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
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:
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
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:
Để đả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
root@ubuntu:~# dahdi_tool
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
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
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.
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.
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.
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.
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.
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
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.
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.
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
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:
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:
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.
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.
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ụ.
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.
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
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
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.
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
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
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:
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:
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
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
Để 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:
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
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.
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.
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
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.
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.
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
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
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
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
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:
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:
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
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.
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
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
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
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
Để 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
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:
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
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
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:
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
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:
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
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”
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:
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:
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:
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
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
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:
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.
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.
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”)
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
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.
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
Để 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:
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:
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
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
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
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
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.64 Truy cập giao diện FreePBX thông qua Host
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.
Đồ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
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.
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
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
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.
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
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
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
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
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
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
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
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
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.
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:
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.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
Sau khi chọn “Confirm Data” ta sẽ thấy “RateCards List” như sau:
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
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
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
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
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
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
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:
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)
Đ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ọ.
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
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
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
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
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.
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ố:
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
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.
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.
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.
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 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:
- 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
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