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
3.8 Xây dụng một hệ thống IVR 58
3.8.1 Thu âm lời chào 59
3.8.2 Tạo ra hệ thống IVR 59
CHƯƠNG 4: XÂY DỰNG MỘT TỔNG ĐÀI THỰC TẾ 60
4.1 Mô tả các bước thực hiện 60
4.2 Mô tả chức năng và hoạt động của tổng đài 60
4.3 Cấu hình phần cứng 60
4.4 Cài đặt tổng đài Asterisk 60
4.5 Chuẩn bị và cài đặt các thiết bị FXS, FXO 60
4.6 Cấu hình các thông số trong tổng đài 64
4.7 Thiết lập các Client và kiểm tra cuộc gọi 65
CHƯƠNG 5: ĐÁNH GIÁ CHUNG VÀ HƯỚNG MỞ CỦA ĐỀ TÀI 66
5.1 Đánh giá chung 66
5.1.1 Ưu điểm 66
5.1.2 Những điểm hạn chế 66
5.1 Hướng mở của đề tài 67
TÀI LIỆU THAM KHẢO 68
MỤC LỤC CÁC HÌNH
Hình 1: Kiến trúc của Asterisk 4
Hình 2: Tổng quan tổng đài IP PBX Asterisk 6
Hình 3: Điện thoại sử dụng mô hình PBX/Softswitch cũ 7
Hình 4: Điện thoại dùng hệ thống Asterisk 7
Hình 5: Hệ thống Asterisk 1x1 8
Hình 6: Tổng đài IP PBX 9
Hình 7: Sự tích hợp Asterisk với hệ thống tổng đài PBX cũ 10
Hình 8: Bỏ qua chi phí gọi điện thoại đường dài 11
Hình 9: Asterisk như một server ứng dụng 11
Hình 10: Asterisk như một media gateway 12
Hình 11: Asterisk hoạt động như một Trung tâm giao tiếp 13
Hình 12: Kiến trúc VoIP của Asterisk 15
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
Hình 43: Giao diện phần mềm Putty - Cửa sổ lệnh 36
Hình 44: Giao diện phần mềm WINSCP - Đăng nhập 37
Hình 45: Giao diện phần mềm WINSCP - Sử dụng 37
Hình 46: TDM400P card 52
Hình 47: FXO module (S100M - màu đỏ), FXS Module (X100M - màu xanh) 52
Hình 48: Thiết lập các thông số X-lite 56
MỤC LỤC CÁC BẢNG
Bảng 1: Bảng so sách các giao thức 17
Bảng 2: Các kiểu ngữ pháp trong Asterisk 39
Bảng 3: Danh sách tham khảo các driver của Digium 53
TỪ VIẾT TẮT
ACD Automatic call distribution Phân phối cuộc gọi tự động
CTI Computer telephony integration Thiết bị kết hợp máy tính điện thoại
DSP Digital Signal Processors Bộ xử lý tín hiệu số
GPL General Public License Bản quyền thuộc cộng đồng
IVR Interactive Voice Response Đáp ứng tương tác thoại
LCR Least Cost Routing Định tuyến chi phí thấp
MGCP Media Gateway Control Protocol Giao thức điều khiển cổng phương tiện
RTP Real Time Protocol Giao thức thời gian thực
TCP Transmission Control Protocol Giao thức điều khiển truyền tải
UDP User Data Protocol Giao thức gói dữ liệu người dùng
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
1.1 Giới thiệu Asterisk - Asterisk là gì?
Asterisk là một “phần mềm mã nguồn mở” được cài đặt một lần trên một máy tính
PC có các giao tiếp tương ứng đi kèm với phần cứng, có thể được sử dụng như là một
PBX với đầy đủ tính năng cho người sử dụng gia đình, công ty, các nhà cung cấp dịch
vụ VoIP và viễn thông. Asterisk còn là một cộng đồng mã nguồn mở và là một sản
phẩm thương mại của Digium. Sử dụng miễn phí và thay đổi tự do để phù hợp với các
yêu cầu của mình. Asterisk cho phép khả năng kết nối thời gian thực giữa mạng PSTN
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
được sử dụng nhiều nhất. Nó bao gồm tất cả các tính năng, miễn phí trong sử dụng và tự
do thay đổi tuân theo các luật bản quyền mà GPL đưa ra.
- Trang 10 -
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
+ Asterisk phiên bản thương mại: là một phiên bản mới gần đây. Nó không có một
số các tính năng mở rộng trong GPL. Phiên bản thương mại được sử dụng trong một vài
công ty không thể sử dụng phiên bản GPL, hầu hết là vì họ không muốn đưa mã nguồn
của họ đi kèm với Asterisk. Phiên bản GPL yêu cầu bất kỳ sự phát triển nào trong phiên
bản GPL phải được công khai mã nguồn.
+ Asterisk OEM: hầu hết được sử dụng bởi các nhà sản xuất PBX khi họ không
muốn cộng đồng biết phần mềm của sản phẩm của họ xuất thân từ Asterisk.
1.1.2 Dự án Zapata và các mối quan hệ của nó với Asterisk
Dự án Zapata được phát triển bởi Jim Dixon người còn có trách nhiệm trong việc
phát triển phần cứng được sử dụng trong Asterisk. Chú ý rằng phần cứng cũng là mã
nguồn mở và vì thế nó có thể được sử dụng bởi bất kỳ công ty nào khác. Digium,
Sangoma và Varion là một vài công ty sản xuất card chính cho tổng đài Asterisk PBX.
Có thể tham khảo dự án Zapata tại địa chỉ:
http://www.asteriskdocs.org/modules/tinycontent/index.php?id=10
Chức năng chính của phần cứng Asterisk là sử dụng bộ xử lý CPU của máy tính để xử
lý âm thanh, triệt nhiễu và chuyển đổi mã. Ngược với hầu hết các card hiện tại sử dụng bộ
xử lý tín hiệu số (DSP - Digital Signal Processors) để thực hiện những công việc này.
Quyết định sử dụng bộ xử lý CPU của máy tính làm giảm giá thành của mạch một cách
nhanh chóng. Vì thế các bản mạch của Digium rẽ hơn nhiều lần so với các các bản mạch
đang tồn tại khác ví dụ như của Dialogicm Aculab và những công ty khác, vì chúng
không cần yêu cầu các DSP đắt tiền. Vấn đề của các bản mạch này là chúng yêu cầu
nhiều CPU và một CPU yếu có thể làm ảnh hưởng đến chất lượng thoại.
1.2 Vì sao chọn Asterisk?
1.2.1 Giảm chi phí một cách mạnh mẽ
Nếu so sánh một tổng đài PBX truyền thống với Asterisk với các giao tiếp số và điện
thoại. Asterisk chỉ rẽ hơn một ít so với các tổng đài PBX này. Tuy nhiên, Asterisk thật
sự không cần trả tiền khi thêm vào các chức năng như voicemail, ACD, IVR và CTI.
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.
Việc đệ trình Asterisk thường nhanh chóng và bất kỳ lỗi gì của nó đều tìm ra. Asterisk
có thể là phần mềm điện thoại PBX được kiểm tra nhiều nhất trên thế giới. Từ các phiên
bản 1.0 đến 1.2 có hơn 3000 sự thay đổi và các lỗi trong mã nguồn được sửa chửa. Tiến
trình này đảm bảo rằng ta có một mã vừa có tính ổn định vừa hầu như không có lỗi.
1.2.7 Các giới hạn trong kiến trúc của Asterisk
Một vài giới hạn trong Asterisk đến từ việc sử dụng trong mô hình thiết kế điện
thoại Zapata. Trong kiểu thiết kế này, Asterisk sử dụng CPU của máy tính để xứ lý các
kênh thoại thay vì sử dụng các card DSP chuyên dụng thường thấy trong các hệ thống
khác. Mặc dù điều này cho phép nó giảm nhiều chi phí trong giao diện phần cứng. Một
hệ thống trở nên phụ thuộc vào CPU của máy tính. Asterisk nên chạy trên một máy tính
chuyên dụng và có cấu hình phần cứng phù hợp với xử lý thoại. Thường nên sử dụng
Asterisk trên một VLAN độc lập để tránh broadcast tiêu tốn nhiều băng thông của CPU
(bão broadcast từ các vòng lặp hay của virus). Một vài card giao tiếp mới từ nhiều nhà
cung cấp bao giờ cũng bao gồm cả DSP để triệt nhiễu, codec và đảm nhiệm các tính
năng khác. Nó làm cho Asterisk tốt hơn.
1.3 Kiến trúc của Asterisk
- Trang 12 -
CHƯƠNG I: TỔNG QUAN VỀ TỔNG ĐÀI IP PBX ASTERISK
Hình 1: Kiến trúc của Asterisk
Hình trên mô tả kiến trúc cả Asterisk. Tiếp theo chúng ta sẽ giải thích các thành phần
liên quan đến kiến trúc như các kênh, codec mã hóa giải mã và các ứng dụng.
1.3.1 Các kênh
Một kênh tương đương với 1 line thoại, nhưng trong định dạng số nó thường bao
gồm bởi một hệ thống báo hiệu tương tự hoặc số hay sự kết hợp của codec và các giao
thức báo hiệu (ví dụ như SIP-GSM, IAX - quy luật µ). Ban đầu tất cả các kết nối điện
thoại là tương tự và có nhiều tiếng dội và nhiễu. Sau đó, hầu hết các hệ thống đều
chuyển đổi qua các hệ thống số, với âm thoại tương tự được chuyển đổi thành dạng số
bởi PCM trong hầu hết các trường hợp. Kiểu này cho phép việc truyền dẫn với tốc độ
64kbps không cần nén.
Phần cứng TDM hỗ trợ:
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
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
+ Card ISDN và các driver
+ ISDN4Linux - driver cũ, không khuyến khích sử dụng
+ ISDN CAPI
+ Voicetronix: 4,8 và 16 cổng analog. Bây giờ họ còn sản xuất các card E1/T1.
Những card này cũng sử dụng các driver kênh chan_zap
1.3.2 Codec và chuyển dịch codec
Chúng ta thường cố gắng để có nhiều kết nối có thể trên một mạng dữ liệu. Codec
cho phép các tính năng mới trong thoại số. Bộ nén tính hiệu là một phần quan trọng
nhất, Vì nó cho phép tỉ lệ nén 8-1. Những tính năng khác bao gồm bộ phát hiện thoại, bộ
giấu mất gói mất và bộ tạo cân bằng nhiễu. Những codec trên đều có bên trong Asterisk
và những codec này có thể được chuyển đổi từ dạng này sang dạng khác. Bên trong
Asterisk sử dụng một slinear như định dạng dòng khi nó cần chuyển đổi từ một codec
này đến một codec khác. Một vài codec trong Asterisk được hỗ trợ chỉ cho kiểu pass-
through và những kiểu codec này không thể dịch được.
Hỗ trợ các codec sau:
+ G.711 ulaw (USA) - (64 Kbps)
+ G.711 alaw (Europe) - (64 Kbps)
+ G.723.1 - chỉ cho kiểu pass-through
+ G.726 - (16/24/32/40kbps)
+ G.729 - cần bản quyền (8Kbps)
+ GSM - (12-13 Kbps)
+ iLBC - (15 Kbps)
+ LPC10 - (2.5 Kbps)
+ Speex - (2.15-44.2 Kbps)
1.3.3 Các giao thức
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 -
Không có nhận xét nào:
Đăng nhận xét