HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ THÀNH PHỐ HỒ CHÍ MINH
------oOo------
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Ngành: Điện tử - Viễn thông Hệ: Hoàn chỉnh Đại học Chính quy
Niên khóa: 2006 - 2008
Đề tài:
NGHIÊN CỨU HOẠT ĐỘNG
VÀ TRIỂN KHAI MẠNG IP PBX ASTERISK
Mã số: 08406360117
Giáo viên hướng dẫn: Ths. Phạm Đình Nguyên
Sinh viên thực hiện: Trần Hoàng Vinh
Lớp: Đ06VTH1Năm 2008
LỜI MỞ ĐẦU
Trong giai đoạn phát triển hiện nay, nhiều doanh nghiệp đã thay đổi và phát triển
nhiều chi nhánh với địa bàn hoạt động rộng lớn. Cùng với sự phát triển của các giải
pháp IP, sự phát triển của hệ thống mạng truyền dữ liệu đặc biệt là Internet. Tất cả đã
tạo điều kiện để những giải pháp trên nền IP hình thành và phát triển. Một trong số đó là
giải pháp IP PBX Asterisk cung cấp cho doanh nghiệp giải pháp điện thoại trên nền
VoIP, phù hợp với chi phí và yêu cầu hoạt động của doanh nghiệp.
Khoá luận tốt nghiệp nghiên cứu về hoạt động và cách triển khai tổng đài IP PBX
Asterisk. Được chi làm 5 chương chính:
Chương 1: Tổng quan về tổng đài IP PBX Asterisk: trình bày các khái niệm chung
cơ bản liên quan đến tổng đài IP PBX Asterisk.
Chương 2: Cài đặt tổng đài IP PBX Asterisk: hướng dẫn để cài đặt thành công một
tổng đài IP PBX Asterisk, các công cụ hỗ trợ trong việc cấu hình và vận hành tổng đài.
Chương 3: Tìm hiểu cách cấu hình Asterisk: nghiên cứu sâu hơn về cách cấu hình các
chức năng trong tổng đài IP PBX Asterisk.
1.3.2 Codec và chuyển dịch codec...........................................................................14
1.3.3 Các giao thức..................................................................................................14
1.3.4 Các ứng dụng..................................................................................................14
1.4 Mô tả tổng quan tổng đài IP PBX Asterisk....................................................15
1.5 So sánh giữa các loại tổng đài..........................................................................16
1.5.1 Điện thoại sử dụng mô hình PBX/Softswitch cũ.............................................16
1.5.2 Điện thoại dùng hệ thống Asterisk..................................................................16
1.6 Xây dựng một hệ thống kiểm tra ....................................................................17
1.6.1 Một FXO, một FXS.........................................................................................17
1.6.2 Nhà cung cấp dịch vụ VoIP, ATA...................................................................17
1.6.3 Board FXO không đắt tiền, ATA.....................................................................17
1.7 Một số ứng dụng của Asterisk.........................................................................18
1.7.1 IP PBX............................................................................................................18
1.7.2 Sử dụng IP trong các tổng đài PBX cũ...........................................................19
1.7.3 Bỏ qua chi phí gọi điện thoại đường dài........................................................20
1.7.4 Server ứng dụng (IVR, điện thoại hội nghị, Voicemail)..................................20
1.7.5 Media Gateway...............................................................................................21
1.7.6 Trung tâm giao tiếp chăm sóc khách hàng - Contact Center Platform (Call
Center).....................................................................................................................22
1.8 VoIP với Asterisk.............................................................................................22
1.8.1 Các ưu điểm của VoIP....................................................................................22
1.8.1.a Tính hội tụ.............................................................................................................22
1.8.1.b Chi phí cơ sở hạ tầng............................................................................................23
1.8.1.c Tiêu chuẩn mở.......................................................................................................23
1.8.1.d Sự tích hợp giữa máy tính và điện thoại..............................................................23
1.8.2 Kiến trúc VoIP của Asterisk............................................................................23
1.8.3 Các giao thức VoIP và mô hình OSI...............................................................24
1.8.4 Làm sao để chọn một giao thức?....................................................................25
1.8.4.a SIP - giao thức thiết lập phiên..............................................................................25
1.8.4.b IAX - Inter Asterisk eXchange..............................................................................25
2.3.2.b Phần mềm WINSCP..............................................................................................46
CHƯƠNG 3: TÌM HIỂU CÁCH CẤU HÌNH ASTERISK...............................47
3.1 Tìm hiểu các tập tin cấu hình trong Asterisk.................................................47
3.2 Ngữ pháp của Asterisk.....................................................................................47
3.2.1 Nhóm đơn........................................................................................................48
3.2.2 Các tùy chọn đối tượng kiểu ngữ pháp thừa kế..............................................48
3.2.3 Dạng thực thể phức hợp.................................................................................49
3.3 Tìm hiểu cấu hình một giao tiếp PSTN...........................................................49
3.3.1 Cài đặt X100P.................................................................................................50
3.3.2 Cài và cấu hình driver card X100P................................................................50
3.4 Tìm hiểu cấu hình điện thoại IP SIP...............................................................50
3.4.1 Phần chung [general].....................................................................................50
3.4.2 Phần Client.....................................................................................................51
3.5 Tim hiều sơ đồ quay số.....................................................................................52
3.5.1 Số nội bộ (Extensions)....................................................................................52
3.5.1.a Một số mẫu số (pattern)........................................................................................52
3.5.1.b Các ví dụ về số nội bộ (extensions)......................................................................53
3.5.2 Số ưu tiên (Priorities).....................................................................................53
3.5.3 Ứng dụng (Applications).................................................................................53
3.5.4 Ngữ cảnh (Contexts).......................................................................................54
3.6 Tìm hiểu cách tạo một sơ đồ quay số..............................................................55
3.6.1 Ví dụ cơ bản....................................................................................................55
3.6.2 Một ví dụ khác.................................................................................................55
3.6.3 Các kênh cầu nối sử dụng ứng dụng dial().....................................................56
3.7 Tìm hiểu cách tạo một hệ thống IVR..............................................................57
3.7.1 Ứng dụng background() ................................................................................57
3.7.2 Ứng dụng record() .........................................................................................57
3.7.3 Ứng dụng playback() ...................................................................................58
3.7.4 Ứng dụng read() ............................................................................................58
3.7.5 Ứng dụng gotoif() .........................................................................................58
Hình 13: VoIP trong mô hình OSI.................................................................................15
Hình 14: Cài đặt CentOS - Khởi động việc cài đặt.......................................................22
Hình 15: Cài đặt CentOS - Giao diện bắt đầu cài đặt CentOS....................................22
Hình 16: Cài đặt CentOS - Chọn ngôn ngữ..................................................................23
Hình 17: Cài đặt CentOS - Chọn kiểu bàn phím...........................................................23
Hình 18: Cài đặt CentOS - Cấu hình thiết lập ổ cứng và phân vùng ổ cứng...............23
Hình 19: Cài đặt CentOS - Phân vùng ổ cứng cho CentOS.........................................24
Hình 20: Cài đặt CentOS - Thiết lập địa chỉ IP............................................................24
Hình 21: Cài đặt CentOS - Chọn múi giờ.....................................................................25
Hình 22: Cài đặt CentOS - Nhập password Console cho hệ thống..............................25
Hình 23: Cài đặt CentOS - Chọn cách cài đặt..............................................................25
Hình 24: Cài đặt CentOS - Chọn các gói hỗ trợ cho Asterisk......................................26
Hình 25: Cài đặt CentOS - Chọn kiểu loader khởi động..............................................26
Hình 26: Cài đặt CentOS - Chuẩn bị cài đặt ..............................................................27
Hình 27: Cài đặt CentOS - Quá trình cài đặt...............................................................27
Hình 28: Tải các gói cài đặt Asterisk .........................................................................28
Hình 29: Khi chạy configure cho compile ..................................................................29
Hình 30: Tuỳ chọn menu sau khi tạo menu bằng lệnh make menuselect......................29
Hình 31: Sau khi dùng lệnh make install thành công...................................................30
Hình 32: Tạo các tập tin cấu hình mẫu.........................................................................30
Hình 33: Tạo các tài liệu chương trình của Asterisk....................................................30
Hình 34: Cài đặt asterisk-addons ..............................................................................31
Hình 35: Giao diện bắt đầu cài đặt Trixbox.................................................................33
Hình 36: Chọn loại bàn phím .....................................................................................33
Hình 37: Chọn Vủng thời gian cho hệ thống................................................................33
Hình 38: Password để cấu hình Asterisk......................................................................34
Hình 39: Tiến trình cài đặt Trixbox 1...........................................................................34
Hình 40: Tiến trình cài đặt Trixbox 2...........................................................................34
Hình 41: Giao diện cấu hình qua Web của Trixbox.....................................................34
Hình 42: Giao diện phần mềm Putty - Đăng nhập........................................................36
và các mạng VoIP. Vì Asterisk có nhiều tính năng hơn một tổng đài PBX, ta không chỉ
có những nâng cấp cho tổng đài PBX đang tồn tại mà còn có thể có nhiều thứ mới như:
Kết nối các nhân viên làm việc từ nhà đến một văn phòng PBX thông qua
mạng Internet.
Kết nối nhiều văn phòng ở nhiều nơi khác nhau trên nền mạng IP, mạng riêng
hay ngay cả mạng internet.
Cho phép các nhân viên có thể tích hợp Web và email với Voicemail.
Xây dựng các ứng dụng giống như IVR cho phép các kết nối đến hệ thống
hàng đợi của bạn hay các ứng dụng khác.
Cho phép các nhân viên làm việc di động truy cập vào PBX của công ty từ
bất kỳ nơi nào với chỉ một kết nối băng thông rộng hay kết nối VPN.
Và nhiều thứ khác nữa…
Asterisk bao gồm nhiều tài nguyên cao cấp chỉ tìm thấy trong các hệ thống cao cấp
ví dụ như:
Nhạc chờ cho các khách hàng khi đang đợi trong các hàng đợi cuộc
gọi, dòng hỗ trợ phương tiện và các file MP3.
Các hàng đợi cuộc gọi, nơi mà một nhóm agent có thể trả lời các cuộc
điện thoại và giám sát các hàng đợi.
Tích hợp với văn bản qua giọng nói và nhận dạng thoại.
Các dữ liệu chi tiết được chuyển đổi từ dạng tập tin văn bản và các cơ
sở dữ liệu SQL.
Khả năng kết nối PSTN thông qua cả 2 dạng đường dây số và tương
tự.
1.1.1 Vai trò của Digium đối với Asterisk
Digium một công ty ở Huntsville Alabama là người tạo ra và là nhà phát triển chính
của Asterisk. Bên cạnh việc trở thành nhà tài trợ chính của sự phát triển của Asterisk.
Digium còn sản xuất ra các card giao tiếp điện thoại và những phần cứng khác cho các
tổng đài PBX Asterisk.
Digium đưa ra Asterisk với 3 dạng bản quyền khác nhau:
+ Asterisk bản quyền thuộc cộng đồng (General Public License GPL). Đây là dạng
Với những tính năng cao cấp này thì Asterisk rẽ hơn nhiều lần so với PBX truyền thống.
Còn khi đem so sách tổng đài PBX Asterisk với tổng đài PBX tương tự giá rẽ thì không
công bằng bởi vì nó có rất nhiều tính nằng mà trong các hệ thống PBX tương tự không
có.
Điểm lợi dể thấy nhất từ phía khách hàng là tính độc lập của Asterisk. Một vài nhà
sản xuất ngày nay không cần phải gởi cho khách hàng mật khẩu hay tài liệu cấu hình gì
cả. Với Asterisk bạn có thể làm gì tùy thích, người sử dụng được hoàn toàn tự do và hơn
nữa nó có thể truy cập với giao diện chuẩn.
1.2.2 Môi trường phát triển nhanh chóng và dễ dàng
Asterisk có thể được mở rộng bằng cách sử dụng các ngôn ngữ kịch bản giống như
PHP và Perl với các giao diện AMI và AGI. Asterisk là mã nguồn mở và mã nguồn của
nó có thể được chỉnh sửa bởi người sử dụng. Mã nguồn được viết hầu hết trên ngôn ngữ
lập trình ANSI C.
- Trang 11 -
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
1.2.3 Giàu tính năng
Asterisk có hàng loạt các chức năng mà không thể tìm thấy hoặc là tùy chọn trong các
tổng đài PBX truyền thống (ví dụ như voicemail, CTI, ACD, IVR, nhạc chờ và ghi âm).
1.2.4 Nội dung động trên điện thoại
Asterisk được lập trình trên ngôn ngữ C và các ngôn ngữ thông thường khác trong
môi trường phát triển ngày nay. Khả năng cung cấp nội dung động hầu như không có
giới hạn.
1.2.5 Kiểu quay số linh hoạt và mạnh
Một điểm mạnh nữa của Asterisk nếu như bạn so sánh với các tổng đài PBX, ngay
cả những thứ đơn giản như LCR (Định tuyến chi phí thấp Least Cost Routing) không
có trong PBX hay là tùy chọn. Thì với Asterisk thì việc lựa chọn tuyến tốt nhất dễ dàng
và chính xác.
1.2.6 Mã nguồn mở chạy trên nền Linux
Một trong những tính năng mạnh nhất của Asterisk là cộng đồng của nó. Khi bạn
truy cập vào wiki (www.voip-info.org), các danh sách phân phối email và các diễn đàn.
Card Zaptel (thường do Digium sản xuất)
+ Wildcard T410P - 4 giao tiếp E1/T1 (chỉ sử dụng PCI 3.3 V)
+ Wildcard T405P - 4 giao tiếp E1/T1 (chỉ sử dụng PCI 5.0 V)
+ TE110P - 1 cổng giao tiếp E1/T1
+ TDM400P - 4 giao tiếp analog FXO or FXS
+ TDM2400 - 24 cỗng FXS or FXO
Các board trên sử dụng các driver kênh chan_zap
+ Card Linux
+ Quicknet Phonejack và linejack có thể được sử dụng
- Trang 13 -
Voicemail, ĐT Hội
Nghị, Thẻ Gọi, Danh
Bạ, Tính Cước…
Các ứng dụng Asterisk API
Các kênh Asterisk API
Dịch Codec
Quản lý I/O,
Lập Lịch
Bộ nạp
Module động
Chuyển mạch
PBX lõi
Chạy ứng dụng
Dịch Codec API
Định dạng file API
GSM, ALaw, Ulaw, G.723
G.729, ADPCM, MP3,
Speex, LPC10
GSM, WAV, G723af,
MP3
Gần đây giao thức báo hiệu SIP thường được sử dụng. H.323 được sử dụng trong
các hệ thống VoIP cũ và hầu hết các hệ thống cũ dùng giao thức này. IAX là một chọn
lựa khác đang trở nên phổ biến vì chúng làm việc tốt với NAT Tranversal và có thể tiết
kiệm được băng thông.
Asterisk hỗ trợ các giao thức:
+ SIP
+ H323
+ IAXv1 e v2
+ MGCP
+ SCCP (Cisco Skinny)
+ Nortel unistim
1.3.4 Các ứng dụng
Để làm cấu nối từ một điện thoại này đến một điện thoại khác thì một ứng dụng gọi
là “bộ quay số” được sử dụng. Hầu hết các tính năng trong Asterisk giống như
voicemail và cuộc gọi hội nghị được thực hiện như là các ứng dụng. Ta có thể thấy các
- Trang 14 -
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
ứng dụng Asterisk bằng cách sử dụng lệnh “show applications” trong console, có thể
thêm các ứng dụng từ các phần Asterisk-addons từ nhà cung cấp thứ ba hoặc ngay cả
một vài ứng dụng cũng làm được.
1.4 Mô tả tổng quan tổng đài IP PBX Asterisk
Hình 2: Tổng quan tổng đài IP PBX Asterisk
Asterisk là một mã nguồn PBX mở hoạt động giống như một PBX lai, các công nghệ
tích hợp như TDM1 và điện thoại IP. Asterisk sẵn sàng cho đáp ứng tương tác thoại IVR
(Interactive Voice Response) và phân phối cuộc gọi tự động ACD (Automatic call
distribution) nó phát triển mở các ứng dụng mới. Trong hình bên trên, ta có thể thấy rằng
các kết nối Asterisk đến telcos và các tổng đài PBX đang tồn tại sử dụng các giao tiếp
tương tự và số và cũng hỗ trợ điện thoại tương tự và IP. Nó có thể hoạt động như là một
softswitch, media gateway, voicemail, thoại hội nghị và nhạc chờ.
- Trang 15 -
Messaging
Softswitch
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
Trong hệ thống Asterisk các chức năng mới đều được tích hợp trong hệ thống Asterisk
và không cần phải đầu tư thêm nhiều để sử dụng và vận hành những tính năng này.
1.6 Xây dựng một hệ thống kiểm tra
Hình 5: Hệ thống Asterisk 1x1
Khi thực hiện một giải pháp Asterisk, bước đầu tiên của chúng ta là tạo ra một hệ
thống kiểm tra. Hệ thống kiểm tra đơn giản nhất là PBX 1x1 với chỉ một đường điện
thoại và một line. Có rất nhiều cách tạo. Chúng ta hãy thử một vài trong số:
1.6.1 Một FXO, một FXS
Cách đầu tiên và đơn giản nhất để xây dựng một hệ thống kiểm tra là mua một board
mạch TDM400 của Digium với một cổng FXO và một cổng FXS. Kết nối cổng FXO
vào đường line đang tồn tại và FXS vào một điện thoại tương tự. Ở đây chúng ta có kiểu
tổng đài PBX 1x1.
1.6.2 Nhà cung cấp dịch vụ VoIP, ATA
Đây là một tuỳ chọn. Trong trường hợp này chúng ta sẽ đăng ký với nhà cung cấp
thoại để có được trung kế SIP và sẽ phải mua một bộ tương thích điện thoại tương tự
dùng SIP. Bạn sẽ có thể chi ít hơn 100$ nếu bạn đã có máy tính rồi.
1.6.3 Board FXO không đắt tiền, ATA
Đây là cách để bắt đầu. Có một vài loại V.90 fax/modem làm việc được với Asterisk
và như là một FXO board. Một vài board của Digium đầu tiên được tạo ra sử dụng
những loại này (X100P và X101P). Những board này là những V.90 fax/modem cũ
chipset của Mororola và Intel (chipsets (Motorola 68202-51, Intel 537PU, Intel 537PG,
Intel Ambient MD3200). Chúng không dể tìm ra vì chúng không còn đươc sản xuất nữa;
tuy nhiên, một vài cái đã được bán như một dạng X100P. Để có được FXS bạn có thể sử
- Trang 17 -
IP Phone
Server Linux
Asterisk
khả năng kết nối đến các nhà cung cấp dịch vụ VoIP.
- Trang 19 -
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
1.7.3 Bỏ qua chi phí gọi điện thoại đường dài
Hình 8: Bỏ qua chi phí gọi điện thoại đường dài
Một ứng dụng rất hữu ích cho VoIP là tính kết nối các chi nhánh với nhau thông qua
Internet hay một mạng WAN. Việc sử dụng một kết nối dữ liệu có sẵn cho phép bạn bỏ
qua (bypass) chi phí điện thoại đường dài trong các kết nối viễn thông giữa những văn
phòng chính và các chi nhánh.
1.7.4 Server ứng dụng (IVR, điện thoại hội nghị, Voicemail)
Hình 9: Asterisk như một server ứng dụng
Asterisk còn có thể được sử dụng như một server ứng dụng cho tổng đài PBX đang
sử dụng hay có thể được kết nối trực tiếp đến PSTN. Asterisk có thể làm được các dịch
vụ như voicemail, nhận fax, thu âm cuộc gọi, IVR được kết nối đến một cơ sở dữ liệu.
- Trang 20 -
Telco
T1/Analog
T1/Analog
Asterisk PBX
IVR Server
Conference Server
Voicemail
Unified Messaging
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
Việc sử dụng Asterisk như một server ứng dụng làm giảm chi phí một cách đáng kể nếu
đem so sánh với những giải pháp khác.
1.7.5 Media Gateway
Hình 10: Asterisk như một media gateway
Hầu hết các nhà cung cấp VoIP sử dụng SIP chuyển đến máy chủ tất cả những đăng
ký, thông tin khu vực và sự xác thực của người dùng SIP. Dù sao chăng nữa họ phải gởi
bên trong như ứng dụng nền. Thiết bị kết hợp máy tính điện thoại CTI (Computer
telephony integration) được thực hiện thông qua việc sử dụng AMI (Asterisk Manager
interface), thu âm và báo cáo được xây dựng trong Asterisk.
Cho một trung tâm giao tiếp outbound, một bộ tuyên đoán hay bộ quay số tốt là
thành phần chính. Mặc dù nhiều bộ quay số đang có sẵn từ mã nguồn mở Asterisk
nhưng nó không khó nếu ta tự xây dựng.
Một trung tâm giao tiếp hỗn hợp cho phép các hoạt động inbound và outbound đồng
thời, thiết kiệm tiền bằng cách sử dụng tốt hơn thời gian của các agent. Nó cho phép sử
dụng Asterisk và cơ chế ACD của nó để thực hiện giải pháp hỗn hợp.
1.8 VoIP với Asterisk
1.8.1 Các ưu điểm của VoIP
1.8.1.a Tính hội tụ
Ưu điểm chính của VoIP là tính kết hợp dữ liệu và thoại trong mạng để giảm chi phí
(tính hội tụ). Tuy nhiên, nếu sự phân tích chỉ là việc giảm chi phí cho thoại không thì có
- Trang 22 -
1-800
ACD
Ringall, RoundRobin, Mrmemory
LeastRecent, Priority
Agent 1 Agent 2 Agent N
Hàng Đợi Cuộc Gọi
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
thể không đủ để thực hiện VoIP. Việc giảm chi phí được đưa ra bởi các công ty viễn
thông khá nhanh trở nên rẻ hơn và quan trọng là nó diễn ra trước khi đệ trình VoIP.
1.8.1.b Chi phí cơ sở hạ tầng
Mặt khác, việc sử dụng một kiến trúc hạ tầng mạng đơn làm giảm chi phí được kết
hợp với những phần thêm vào, bỏ ra và thay đổi. Việc IP phổ dụng mang đến cho công
nghệ VoIP nhiều thiết bị mới như là cell phone, PDA được nhúng trong hệ thống và
máy tính xách tay (laptop).
1.8.1.c Tiêu chuẩn mở
Các kênh Asterisk API
Dịch Codec
Quản lý I/O,
Lập Lịch
Bộ nạp
Module động
Chuyển mạch
PBX lõi
Chạy ứng dụng
Dịch Codec API
Định dạng file API
GSM, ALaw, Ulaw, G.723
G.729, ADPCM, MP3,
Speex, LPC10
GSM, WAV, G723af,
MP3
ADTRAN VOFR –
ISDN – SIP – H323
Modem Thoại, Thiết
bị khách hàng,
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
VoIP tương ứng với một tập các giao thức khác nhau làm việc chung với nhau. Các
lớp khác nhau trong mô hình OSI được giới thiệu trong giao tiếp VoIP. Hình bên trên sẽ
giúp ta có thể hiểu được vai trò của mỗi giao thức và mối quan hệ giữa chúng với nhau.
Là lớp đầu tiên trong 4 lớp chỉ là một mạng dữ liệu giống như mạng Internet trong
kinh doanh và gia đình. Bạn có thể sử dụng một vài giao thức QoS giống như là
“diffserv” hay “cbwfq” để ưu tiên hoá các gói thoại và nâng cao chất lượng thoại, hầu
hết các giao thức VoIP sử dụng giao thức RTP giao thức thời gian thực như là giao thức
truyền tải chọn lựa.
Trong lớp phiên (session), các giao thức có nhiệm vụ thiết lập và giải toả các cuộc
- Trang 25 -