Professional Documents
Culture Documents
LỜI CẢM ƠN
Để hoàn thành đồ đề tài tốt nghiệp này, chúng em đã được sự giúp đỡ của rất
nhiều người. Việc cám ơn sau khi hoàn thành đề tài tốt nghiệp là một điều tất yếu.
Trước hết chúng em xin được cảm ơn các thầy cô giáo trong bộ môn Viễn Thông và
nhất là cô Phạm Thị Xuân Phương, người đã chịu trách nhiệm hướng dẫn đề tài này.
Cô đã tạo hướng đi, hướng dẫn, giúp đỡ và tạo điều kiện tốt nhất để chúng em có
thể hoàn thành tốt công việc được giao. Những kiến thức mà chúng em có được
trong quá trình hoàn thành luận văn chắc chắn sẽ giúp ích rất nhiều cho chúng em
sau này.
Kế đến, chúng em xin cảm ơn gia đình, bạn bè, những người đã khích lệ tinh
thần, hỗ trợ kinh phí trong quá trình thực hiện luận văn. Xin cảm ơn các thành viên
cộng đồng mã nguồn mở, những người tiên phong luôn muốn làm cho thế giới hoàn
thiện hơn về công nghệ, đã không ngần ngại chia sẽ kỹ thuật cũng như công nghệ.
Một lần nữa xin cảm ơn tất cả mọi người!
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -1-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
MỤC LỤC:
MỤC TIÊU, YÊU CẦU VÀ HƯỚNG GIẢI QUYẾT ĐỀ TÀI..............................10
Chương 1: CÁC GIAO THỨC TRUYỀN TẢI VÀ BÁO HIỆU TRONG .............12
MẠNG VoIP .........................................................................................................12
1.1 VoIP là gì? ...................................................................................................12
1.2 Giao thức TCP/IP.........................................................................................13
1.2.1 Giới thiệu về mạng IP............................................................................13
1.2.2 Giao thức IP (Internet Protocol).............................................................15
1.2.3 Địa chỉ IP ..............................................................................................17
1.2.4 Định tuyến - Routing .............................................................................18
1.2.5 Giao thức TCP (Transport Control Protocol) .........................................18
1.2.6 UDP (User Data Protocol) ....................................................................19
1.3 RTP (Real Time Protocol)............................................................................20
1.4 RTCP (Real-time Transport Control Protocol) .............................................23
1.5 RSVP (Resource Reservation Protocol) .......................................................24
1.6 Bộ giao thức H.323 ......................................................................................26
1.7 SIP (Session Initation Protocol) ...................................................................29
1.8 MGCP ( Media Gateway Control Protocol)..................................................32
1.9 NAT (Network address translator) ...............................................................35
1.10 Giao thức IAX (Inter Asterisk eXchange) ..................................................35
Chương 2: TỔNG QUAN VỀ ASTERISK ............................................................37
2.1 Giới thiệu .....................................................................................................37
2.2 Kiến trúc asterisk .........................................................................................38
2.3 Một số tính năng cơ bản ..............................................................................40
2.3.1 Voicemail (hộp thư thoại) ......................................................................41
2.3.2 Call Forwarding(chuyển cuộc gọi).........................................................41
2.3.3 Caller ID (hiển thị số gọi) ......................................................................42
2.3.4 Automated attendant (chức năng IVR)...................................................42
2.3.5 Time and Date .......................................................................................42
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -2-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -3-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -4-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -5-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -6-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -7-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 3.6 a) Máy điện thoại vai trò FXO kết nối với FXS (PSTN), Hình b) PBXkết
nối với FXO và FXS, Hình c) ATA đóng vai trò như FXS để kết nối với máy điện
thoại vai trò FXO...................................................................................................51
Hình 3.7: Điện thoại VoIP .....................................................................................52
Hình 3.8: Điện Thoại Softphone ............................................................................53
Hình 3.9 Card TDM22B gồm 4 port 2 FXS và 2 FXO...........................................53
Hình 3.10: Thiết bị ATA .......................................................................................54
Hình 3.11: Các thuật toán codec ............................................................................55
Hình 3.12: Nguyên nhân gây ra jitter .....................................................................57
Hình 4.1: Cấu trúc thư mục ...................................................................................65
Hình 4.2: Một ví dụ về file cấu hình ......................................................................68
Hình 4.3: Các kiểu ảnh hưởng trong tập tin cấu hình .............................................68
Hình 5.1: mô hình đơn site ....................................................................................86
Hình 5.2: Mô hình đa site phân tán ........................................................................88
Hình 5.3: Mô hình đa site tập trung .......................................................................89
Hình 5.4: Mô hình đa site kết hợp..........................................................................90
Hinh 5.5: Mô hình triển khai hệ thống asterisk ......................................................91
Hình 5.6: Grandstream 488....................................................................................93
Hình 5.7: Giao diện cổng phone của Grandstream 488 ..........................................94
Hình 5.8: Giao diện cổng line của Grandstream 488 ..............................................95
Hình 5.9 : Card X100P ..........................................................................................95
Hình 5.10: Cấu hình điện thoại x-lite ................................................................... 101
Hình 5.11: Khai báo user điện thoại x-lite............................................................ 102
Hình 5.12: Cấu hình điện thoại zoiper ................................................................. 102
Hình 5.13: Khai báo user điện thoại zoiper .......................................................... 103
Hình 5.14: Mô hình thực hiện cuộc gọi nội bộ cùng giao thức ............................. 104
Hình 5.15: Các bản tin trong cuộc gọi nội bộ....................................................... 105
Hình 5.16: Mô hình thực hiện cuộc gọi nội bộ khác giao thức ............................. 106
Hình 5.18: Các bản tin cuộc gọi ra ngoài PSTN.................................................. 108
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -8-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.19: Mô hình minh họa thực hiện dịch vụ IVR .......................................... 109
Hình 5.20: Các bản tin khi thực hiện chuyển cuộc gọi tức thời ............................ 113
Hình 5.21: Các bản tin khi thực hiện chuyển cuộc gọi khi bận............................. 114
Hình 5.22: Các bản tin thực hiện chuyển cuộc gọi khi không trả lời .................... 116
Hình 5.23: Các bản tin khi thực hiện dịch vụ transfer .......................................... 117
Hình 5.24: Các bản tin khi thực hiện dịch vụ call parking.................................... 120
Hình 5.25: Các bản tin khi thực hiện dịch vụ call pickup ..................................... 121
Hình 5.26: Mô hình thực hiện hội nghị ................................................................ 122
Hình 5.27: Các bản tin khi thực hiện chức năng hội nghị..................................... 127
Hình 5.28: Mô hình thực hiện dịch vụ DISA ....................................................... 129
Hình 5.29:Các gói tin khi thực hiện dịch vụ DISA............................................... 131
Hình 5.30: Giao diện web chi tiết cuộc gọi .......................................................... 139
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC -9-
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Ngày nay với việc phát triển bùng nổ của công nghệ mạng. Hầu hết các công
ty đều xây dựng một mạng LAN hay một mạng WAN riêng cho mình. Việc tích
hợp mạng thoại dựa trên hạ tầng mạng sẵn có sẽ làm giảm chi phí lắp đặt cũng như
sử dụng khi gọi nội bộ. Việc nghiên cứu một vài mô hình ứng dụng mạng điện thoại
trên cơ sở đã có mạng hạ tầng sẵn có để áp dụng triển khai cho các doanh nghiệp
vừa và nhỏ là một điều cần thiết. Hiện nay, trên thực tế đã có rất nhiều doanh
nghiệp trong và ngoài nước đã xây dựng mạng điện thoại trên nền tảng IP cho riêng
mình sử dụng các server tổng đài của các hãng khác nhau. Đề tài sẽ xây dựng và
thiết kế một hệ thống thoại đáp ứng trong thực tế cho các doanh nghiệp nhỏ.
*Mục tiêu
Mục tiêu đặt ra là hệ thống thoại thực hiện sẽ có một server tổng đài thực
hiện xử lí các cuộc gọi trong mạng nội bộ và đi ra ngoài. Các thuê bao nội bộ trong
mạng gọi cho nhau mà doanh nghiệp không phải tốn một chi phí về cước viễn thông
nào. Hơn nữa, hệ thống sẽ được xây dựng các dịch vụ như voicemail, chuyển cuộc
gọi, hội nghị v.v. mà chỉ có ở những tổng đài số đắt tiền.
*Yêu cầu
Các điện thoại trong mạng LAN có thể gọi cho nhau, cũng như gọi ra ngoài
PSTN, gọi ra ngoài internet thông qua một nhà cung cấp dịch vụ VoIP. Tất cả đều
được xử lí thông qua một server. Các thuê bao ở ngoài gọi vào sẽ nghe được lời
chào của doanh nghiệp đã được định trước. Các thuê bao nội bộ có thể sử dụng
được nhiều dịch vụ như mong muốn. Xây dựng một trang web hiển thị chi tiết các
cuộc gọi đã gọi. Sử dụng một cơ sở dữ liệu cần thiết để hệ thống có thể đáp ứng
theo thời gian thực.
* Hướng giải quyết đề tài:
Chọn lựa server là phần mềm mã nguồn mở chuyển mạch asterisk được cài
trên cơ sở hệ điều hành linux. Hai PC sử dụng hai softphone có hai giao thức báo
hiệu khác nhau. Một analogphone thông qua ATA tham gia vào hệ thống. Hai
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 10 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
gateway trong đó một là gắn trong khe PCI và một là gắn ngoài để kết nối hệ thống
ra ngoài PSTN. Tất cả việc xử lí cuộc gọi sẽ được lập trình trong phần mềm chuyển
mạch asterisk.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 11 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Chương 1
CÁC GIAO THỨC TRUYỀN TẢI VÀ BÁO HIỆU TRONG
MẠNG VoIP
1.1 VoIP là gì?
VoIP (Voice over Internet Protocol) là một công nghệ cho phép truyền thoại
sử dụng giao thức mạng IP, trên cơ sở hạ tầng sẵn có của mạng internet. Voip là
một trong những công nghệ viễn thông đang được quan tâm nhất hiện nay không
chỉ đối với nhà khai thác, các nhà sản xuất mà còn cả với người sử dụng dịch vụ.
VoIP có thể vừa thực hiện mọi loại cuộc gọi như trên mạng điện thoại kênh
truyền thống (PSTN) đồng thời truyền dữ liệu trên cơ sở mạng truyền dữ liệu. Do
các ưu điểm về giá thành dịch vụ và sự tích hợp nhiều loại hình dịch vụ nên voip
hiện nay được triển khai một các rộng rãi.
Dịch vụ điện thoại voip là dịch vụ ứng dụng giao thức IP, nguyên tắc của
VoIP bao gồm việc số hoá tín hiệu tiếng nói, thực hiện việc nén tín hiệu số, chia
nhỏ các gói nếu cần và truyền gói tin này qua mạng, tới nơi nhận các gói tin này
được ráp lại theo đúng thứ tự của bản tin, giải mã tín hiệu tương tự phục hồi lại
tiếng nói ban đầu.
Các cuộc gọi trong VoIP dựa trên cơ sở sử dụng kết hợp cả chuyển mạch
kênh và chuyển mạch gói. Trong mỗi loại chuyển mạch đều có ưu, nhược điểm
riêng của nó. Trong kỹ thuật chuyển mạch kênh giành riêng cho một kênh truyền
giữa hai thiết bị đầu cuối thông qua các node chuyển mạch trung gian. Trong
chuyển mạch kênh tốc độ truyền dẫn luôn luôn cố định (nghĩa là băng thông không
đổi) , với mạng điện thoại PSTN tốc độ này là 64kbps, truyền dẫn trong chuyển
mạch kênh có độ trễ nhỏ.
Trong chuyển mạch gói các bản tin được chia thành các gói nhỏ gọi là các
gói, nguyên tắc hoạt động của nó là sử dụng hệ thống lưu trữ và chuyển tiếp các gói
tin trong nút mạng. Đối với chuyển mạch gói không tồn tại khái niệm kênh riêng,
băng thông không cố định có nghĩa là có thể thay đổi tốc độ truyền, kỹ thuật chuyển
mạch gói phải chịu độ trễ lớn vì trong chuyển mạch gói không quy định thời gian
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 12 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
cho mỗi gói dữ liệu tới đích, mỗi gói có thể đi bằng nhiều con đường khác nhau để
tới đích, chuyển mạch gói thích hợp cho việc truyền dữ liệu vì trong mạng truyền
dữ liệu không đòi hỏi về thời gian thực như thoại, để sử dụng ưu điểm của mỗi loại
chuyển mạch trên thì trong voip kết hợp sử dụng cả hai loại chuyển mạch kênh và
chuyển mạch gói.
1.2 Giao thức TCP/IP
1.2.1 Giới thiệu về mạng IP
Mạng IP là các loại mạng dữ liệu sử dụng chồng giao thức TCP/IP trong đó
sử dụng giao thức IP cho lớp mạng (lớp 3) còn ở lớp truy nhập mạng (lớp 2) có thể
là giao thức của mạng LAN, x25, Frame Relay, PPP...IP là từ viết tắt của Internet
Protocol phiên bản 4 là phiên bản hiện được sử dụng nhiều nhất, ta thường viết IPv4
để chỉ ra phiên bản của giao thức này, ngoài ra còn có phiên bản 6 (IPv6).
Để thuận tiện cho việc thiết kế và cài đặt mạng thì người ta thường sử dụng
phương pháp thiết kế theo kiểu phân lớp. Mỗi thành phần hệ thống mạng được xem
như một kiến trúc đa tầng, trong đó các tầng ở trên thì được xây dựng trên cơ sở
tầng ngay dưới nó, mỗi lớp sẽ thực hiện một chức năng riêng nào đó và sẽ được các
lớp liền kề nó sử dụng. Bằng cách này sẽ tạo ra được rất nhiều lợi ích. Đầu tiên là
dễ dàng hơn cho việc thiết kế bởi vì sẽ rất khó khăn nếu như thực hiện toàn bộ chức
năng trên một lớp, bằng cách chia ra các lớp ta chỉ cần thực hiện chức năng của
từng lớp một có thể điều này không dễ dàng hơn nhưng ta giải quyết công việc một
cách hiệu quả hơn. Một lợi ích khác đó là khả năng thích ứng, giả sử như ta muốn
thay đổi phần mềm thì lúc đó ta chỉ cần thay đổi ở lớp có liên quan. Có hai mô hình
phân lớp tiêu biểu đó là mô hình tham chiếu mở OSI (Opening System
Interconnection) và mô hình TCP/IP.
Mô hình tham chiếu OSI là mô hình chuẩn có 7 lớp được thiết kế bởi tổ chức
tiêu chuẩn quốc tế ISO (International Standard Organization). Mô hình chỉ đưa ra
công việc mỗi lớp nên thực hiện ví dụ như việc sử dụng giao thức nào chứ không đi
vào chi tiết. Khi thực hiện trong thực tế dựa trên mô hình này có một số lớp gần như
trống rỗng nhưng có lớp rất phức tạp tuy nhiên đây là mô hình chuẩn và là mô hình
tiêu biểu cho phương pháp thiết kế phân lớp.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 13 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 1.2: Đóng gói dữ liệu của user thành khung Ethernet
Trong các mô hình phân lớp thì khi dữ liệu được truyền từ lớp trên xuống
các lớp dưới thì mỗi lớp đều thêm vào phần điều khiển của mình để đảm bảo việc
truyền dữ liệu được chính xác. Mỗi thông tin điều khiển này gọi là header và được
đặt ở phần trước dữ liệu. Việc thêm vào phần header ở mỗi lớp trong quá trình
truyền nhận tin gọi là sự đóng gói (encapsulation). Quá trình nhận dữ liệu diễn ra
theo thứ tự ngược lại mỗi lớp sẽ tách phần header của nó ra trước khi chuyển dữ
liệu lên lớp trên. Trên thực tế cấu trúc dữ liệu của mỗi lớp được cấu tạo tương thích
với lớp trên hay lớp dưới nó để cho việc truyền nhận dữ liệu được hiệu quả hơn.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 14 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Bit 0-3 Bit 4-7 Bit 8-10 Bit 11- Bit 16- Bit 20- Bit 24- Bit 28-
15 19 23 27 31
Phiên Chiều Độ ưu Loại Độ dài tổng
bản dài tiêu tiên dịch vụ
đề
Số liệu gói dữ liệu Phân mảnh
Thời gian sống Giao Thức Tổng kiểm tra
Địa chỉ nguồn
Địa chỉ đích
Tuỳ chọn
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 15 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Độ ưu tiên ( Precedence): Trường này có chiều dài 3 bit, giá trị nằm trong
khoảng từ 0 (000) đến 7 (111). Nó chỉ rõ độ ưu tiên của gói trong trường
hợp mạng bị tắt nghẽn. Nếu bộ định tuyến bị tắt nghẽn và cần bỏ một số gói
dữ liệu, nó sẽ bỏ các gói dữ liệu có độ ưu tiên cao nhất.
- Loại dịch vụ (TOS): Trường 5 bit này đặc tả các tham số về dịch vụ, có
dạng cụ thể như sau:
- Loại dịch vụ
-D -T -R -C -X
Trong 5 bit này có một bit dự phòng (x). Cho dù các bit đều có thể lấy
giá trị 0 hoặc 1, nhưng trong một gói dữ liệu chỉ có một bit được đặt 1.
+ 00000: Bình thường
+ 00010: Giá nhỏ nhất
+ 00100: Độ tin cậy cao nhất
+ 10000: Độ trễ nhỏ nhất
- Độ dài tổng (Total Length IP): Trường 16 bit này cho biết chiều dài tính
theo byte của cả gói dữ liệu.
- Số hiệu gói dữ liệu (Datagram Identification): Trường 16 bit này cùng với
các trường khác (như địa chỉ nguồn và địa chỉ đích) dùng để định danh duy
nhất cho một gói dữ liệu trong khoảng thời gian nó vẫn tồn tại trên liên
mạng. Giá trị này được tăng lên một đơn vị mỗi khi có gói dữ liệu được
trạm gởi đi. Do vậy giá trị này sẽ quay lại không mỗi khi trạm đã gửi đi
65535 gói dữ liệu.
- Phân mãnh (Fragmentation): Trường dữ liệu này được sử dụng khi gói
phân mãnh.
- Thời gian sống (Time to live): Trường 8 bit này quy định thời gian tồn tại
(tính bằng giây) của gói dữ liệu trong liên mạng để tránh tình trạng gói dữ
liệu bị chuyển vòng quanh trên liên mạng. Thời gian này được trạm gửi đặt
và được giảm đi 1 khi gói dữ liệu qua bộ định tuyến trên mạng.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 16 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Giao thức (Protocol): Trường 8 bit này cho biết giao thức tầng trên sử
dụng dịch vụ của IP. Gói dữ liệu của IP có thể được đóng gói dữ liệu từ
nhiều giao thức tầng trên, chẳng hạn TCP, UDP và ICMP. Trường này chỉ
rõ giao thức đích cuối cùng mà gói dữ liệu IP phải chuyển.
- Tổng kiểm tra (checksum): Trường 16 bit này chứa mã kiểm tra lỗi CRC
(chỉ kiểm ta phần tiêu đề).
- Địa chỉ nguồn (Source Address): Trường 32 bit này chứa địa chỉ IP của
trạm nguồn.
- Địa chỉ đích (Destination Address): Trường 32 bit này chứa địa chỉ IP của
trạn đích.
1.2.3 Địa chỉ IP
Địa chỉ được sử dụng để giao nhận IP datagram từ nguồn đến đích. Mỗi
datagram đều cần phải có địa chỉ nguồn và địa chỉ đích. Các trường tương ứng trong
IP header phải mang tên tương tự. Các địa chỉ IP có độ dài 32 bit.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 17 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
được miêu tả ở hình 1.4. Có tất cả 5 lớp khác nhau. Chúng được nhận dạng bởi 4 bit
quan trọng đầu tiên. Các lớp khác nhau định độ dài của phần mạng và phần host
khác nhau. Nó còn chỉ rõ số lượng của mạng con và host của mỗi mạng. Ví dụ trong
lớp A phần mạng có độ dài là 7 bit và phần host có độ dài là 24 bit.
1.2.4 Định tuyến - Routing
Định tuyến là chức năng của lớp 3 - Lớp mạng (Theo mô hình OSI). Nó thực
hiện việc này một cách phân tầng và có tổ chức cho phép nhiều địa chỉ riêng rẽ
được nhóm lại với nhau và được coi như là một đơn vị riêng lẻ cho đến lúc cần địa
chỉ cụ thể cho việc gửi dữ liệu cuối cùng. Định tuyến là một tiến trình thực hiện
việc tìm kiếm một đường đi tốt nhất từ một thiết bị tới một thiết bị khác. Thiết bị
chính thực hiện việc này là router, tuy nhiên ngoài router ra còn có một số các thiết
bị khác có thể thực hiện chức nâng này như là switch lớp 3, tường lửa.
Một router có chức năng duy trì và cập nhật bảng định tuyến khi có sự thay
đổi về cấu trúc vật lý mạng - topology (thực hiện bởi giao thức định tuyến). Khi một
gói tin đến router thì router phải sử dụng bảng định tuyến để quyết định gửi gói tin
đó đến đâu từ đó đưa gói tin đó ra cổng tương ứng. Router là thiết bị lớp mạng (lớp
3) sử dụng một hay nhiều tham số định tuyến để quyết định đường đi tốt nhất cho
gói tin tùy theo giao thức định tuyến mà nó sử dụng.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 18 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
được đảm bảo về tính chính xác và độ tin cậy, khi liên kết không còn đủ độ
tin cậy thì liên kết sẽ bị huỷ bỏ và thiết lập lại. Khi hoàn tất việc truyền
thông các liên kết sẽ được giải phóng. Để thực hiện việc thiết lập liên kết
các modul TCP sử dụng một cơ chế đặc biệt gọi là “bắt tay ba chiều” (three
way handshake).
- Bảo đảm tính chính xác: Giao thức TCP cung cấp các tham số để kiểm tra
cũng như sửa là sequence number, ACK (Acknowledge) và checksum. Các
segment được đánh số hiệu tuần tự do vậy dễ dàng loại bỏ các segment bị
thu được nhiều lần hoặc các segment không đạt yêu cầu. Các segment sau
khi thu được sẽ được kiểm tra nhờ trường checksum. Nếu chúng được thu
đúng thì sẽ phát lại tín hiệu ACK khẳng định. Nếu segment bị thu lỗi,
segment sẽ bị loại bỏ và nó sẽ được phát lại. Nhờ ACK mà các segment lỗi
hay bị mất sẽ được phát lại bảo đảm được tính chính xác của dữ liệu.
- Ngoài ra giao thức TCP còn cung cấp một số chức năng điều khiển luồng
và điều khiển tắc nghẽn (flow control và congestion control) cho phép kiểm
soát và tránh được sự tắc nghẽn trên mạng.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 19 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
lý số hiệu cổng để phân biệt giữa nhiều chương trình được chạy trên cùng một máy
tính. Hơn nữa cấu trúc của UDP datagarm đơn giản nên thời gian trễ truyền dẫn
cũng như thời gian xử lý cũng ngắn hơn do đó tốc độ truyền sẽ nhanh hơn. Các
chương trình dựa vào giao thức UDP thường được sử dụng trong phạm vi hẹp (local
environment) hơn là trong phạm vi rộng như Internet.
Bit 0-3 Bit 4-7 Bit 8-11 Bit 12- Bit 16- Bit 20- Bit 24- Bit 28-
15 19 23 27 31
Cổng nguồn Cổng đích
Độ dài tổng Tổng kiểm tra
Dữ liệu
Message Length (16 bit): chỉ rõ độ dài phần UDP datagram (tính theo byte) bao
gồm cả phần header và phần data. Độ dài nhỏ nhất của UDP datagram là 8 byte khi
chỉ có phần header.
Checksum (16 bit): mã kiểm soát lỗi.
1.3 RTP (Real Time Protocol)
RTP được coi như một giao thứ truyền từ đầu cuối đến đầu cuối (end to end)
phục vụ truyền dữ liệu thời gian thực như audio và video. RTP thực hiện việc quản
lý về thời gian truyền dữ liệu và nhận dạng dữ liệu được truyền. Nhưng RTP không
cung cấp bất cứ một cơ chế nào đảm bảo thời gian truyền và cũng không cung cấp
bất cứ một cơ chế nào giám sát chất lượng dịch vụ. Sự giám sát và đảm bảo về thời
gian truyền dẫn cũng như chất lượng dịch vụ được thực hiện nhờ hai giao thức
RTCP và RSVP.
Tương tự như các giao thứ truyền dẫn khác, gói tin RTP (RTP packet) bao
gồm hai phần là header (phần mào đầu) và data (dữ liệu). Nhưng không giống như
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 20 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
các giao thức truyền dẫn khác là sử dụng các trường trong header để thực hiện các
chức năng điều khiển, RTP sử dụng một cơ chế điều khiển độc lập trong định dạng
của gói tin RTCP để thực hiện các chức năng này.
* Cấu trúc gói tin RTP:
VER P X CC M PT Sequence Number
Timestamp
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 21 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
các ứng dụng mà những thông tin này không được định nghĩa trong các chỉ
dẫn của giao thức RTP.
- Payload Type (7 bit): chỉ rõ loại thông tin được chứa trong các gói.
- Serquence Number (16 bit): cung cấp số thứ tự của các gói. Cách này như
một cơ chế giúp bên thu có thể thu đúng thứ tự các gói tin, nhận ra gói tin
bị mất. Các gói tin bị mất sẽ không được truyền lại, chúng sẽ được phía thu
khắc phục bằng cách sử dụng một thuật toán để tái tạo lại các gói tin bị mất.
Giá trị khởi đầu của trường sequence number là ngẫu nhiên để đảm bảo tính
an toàn thông tin.
- Time-stamp (32 bit): là tham số đánh dấu thời điểm byte đầu tiên được lấy
mẫu trong gói RTP. Giá trị time-stamp khởi đầu là ngẫu nhiên, các gói RTP
phát đi liên tiếp có thể có cũng giá trị time-stamp nếu chúng cùng được phát
đi một lúc. Ví dụ với một bức ảnh số, chúng thường được cắt ra làm nhiều
phần khác nhau và mỗi phần được chứa trong một gói. Những gói đó khác
nhau về thứ tự (sequence number) nhưng chúng có cùng một giá trị time-
stamp.
- Syschronisation source (SSRC) identifier: số nhận dạng nguồn của gói dữ
liệu. Nếu ứng dụng muốn truyền dữ liệu có nhiều dạng khác nhau trong
cùng một thời điểm (ví dụ là tín hiệu audio và video) thì sẽ có những phiên
truyền riêng cho mỗi dạng dữ liệu. Sau đó ứng dụng sẽ tập hợp các gói tin
có cùng nhận dạng SSRC. Số nhận dạng này được gán một cách ngẫu
nhiên.
- Contribute source (CSRC) identifer (độ dài thay đổi): ví dụ tại một điểm
đích nào đó mà những tín hiệu audio đến đích cần trộn lại với nhau thì giá
trị CSRC sẽ là tập hợp tất cả các giá trị SSRC của các nguồn mà gửi tín
hiệu đến điểm đích đó. Trường CSRC có thể chứa tối đa là 15 số nhận dạng
nguồn SSRC.
- Extension header (độ dài thay đổi): chứa các thông tin thêm của gói RTP.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 22 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 23 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Source description (SDES): thông báo bao gồm các thông số mô tả nguồn
như tên, vị trí,...
- Application (APP): thông báo cho phép truyền các dữ liệu ứng dụng.
* Cấu trúc gói tin RTCP
VER P Report Packet Type Length
Conunter
Report
Trong đó:
Version (2 bit): chỉ rõ version của giao thức RTP hiện tại đang cài đặt.
Hiện tại các giao thức RTP đang được sử dụng là version 2.
Padding (1 bit): có chức năng như một bit cờ chỉ rõ xem trong gói có các
byte được chèn thêm hay không.
Report counter (5 bit): chỉ rõ số thông báo chứa trong gói (mỗi nguồn có
một thông báo).
Packet type (8 bit): xác định loại thông báo của gói (SR hoặc RR hoặc
APP).
Length (16 bit): chỉ rõ độ dài của gói.
Report (độ dài thay đổi): chứa các thông báo chi tiết.
1.5 RSVP (Resource Reservation Protocol)
Giao thức RSVP được sử dụng như một giao thức báo hiệu hỗ trợ cho RTP.
Mục đích của RSVP là cung cấp một cơ chế đảm bảo băng thông cho các hoạt động
của các ứng dụng. RSVP gửi tham số chất lượng dịch vụ QoS kết hợp với các dữ
liệu thời gian thực được truyền trên mạng TCP/IP. Hỗ trợ giao thức RTP, giao thức
RSVP có thể giải quyết các lỗi xảy ra trên đường truyền để đảm bảo các tham số
chất lượng. Thật vậy, giao thức RTP chỉ hỗ trợ việc truyền thông điểm – điểm và
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 24 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
không quản lý các tham số liên kết trên mạng. RSVP không những tác động ở máy
phát, máy thu mà còn tác động trên cả các router trong mạng.
RSVP thiết lập và duy trì kết nối duy nhất cho một luồng dữ liệu, xác lập một
hệ thống quản lý thứ tự các gói và tạo modun điều khiển để quản lý các nguồn tài
nguyên của các nút mạng khác nhau. RSVP đưa ra một mô hình tối ưu để liên kết
các dữ liệu từ một nguồn tới nhiều đích. RSVP đóng vai trò quản lý một cách lập
các host đích để tự thích nghi các tham số chất lượng giữa khả năng cung cấp và
nhu cầu đáp ứng.
Việc dành riêng các tài nguyên được yêu cầu bởi bên thu bằng cách phát một
yêu cầu chất lượng dưới dạng một bản tin RSVP tương thích với nhu cầu của
chúng. Thực tế sử dụng RSVP nhằm đảm bảo chất lượng trong việc truyền tin. Để
đảm bảo đường truyền thông suốt các điểm cuối phải hoạt động ở chế độ kết nối.
Máy thu phải thường xuyên gửi các bản tin RSVP đến các router để đảm bảo thông
suốt đường truyền.
RSVP hoạt động trên cơ sở xử lý các gói tin theo một yêu cầu chất lượng
dịch vụ QoS. Hai thành phần chính thực hiện chức năng này là flowspec và
filterspec. Flowspec có chức năng kiểm tra luồng dữ liệu được truyền như một yêu
cầu dịch vụ của các ứng dụng mà kết quả là đưa ra một yêu cầu về chất lượng dịch
vụ QoS. Flowspec đưa ra một yêu cầu chất lượng dịch vụ còn filterspec có nhiệm
vụ lọc bỏ các gói tin mà không đảm bảo yêu cầu về chất lượng dịch vụ, những gói
này sẽ được cung cấp một phương thức truyền tốt nhất có thể đáp ứng yêu cầu chất
lượng dịch vụ. Mối quan hệ của flowspec và filterspec được mô tả trên hình vẽ.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 25 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 26 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Terminal: là các đầu cuối trong mạng, có thể là điện thoại IP hoặc là các
PC…
- Gateway: thực hiện chuyển đổi giữa các định dạng audio, video và dữ
liệu. Nó đồng thời thực hiện việc thiết lập và huỷ bỏ cuộc gọi trong mạng
IP và mạng chuyển mạch (Switched Circuit Network – SCN).
- Gatekeeper: cung cấp việc điều khiển cấp độ cuộc gọi đến các đầu cuối
của H323.
- MCU: hỗ trợ hội nghị với 3 hay nhiều đầu cuối H323.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 27 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 28 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Gatekeeper trả lời đáp ứng thông điệp ARQ vừa gởi bằng thông điệp ACF
- Khi đầu cuối muốn gọi nhận diện được đầu cuối cần gọi, nó sẽ bắt đầu
thiết lập cuộc gọi căn bản.
- Trước khi đầu cuối được gọi đồng ý nhận cuộc gọi đến nó gởi thông điệp
ARQ đến gatekeeper để nhận được quyền cho phép.
1.7 SIP (Session Initation Protocol)
SIP là giao thức báo hiệu cuộc gọi được định nghĩa bởi IETF. Nó thường
được sử dụng để tạo, hoặc sửa đổi hoặc kết thúc phiên truyền thông đa phương tiện.
Các phiên truyền thông này có thể được thiết lập với một hoặc nhiều bên tham gia.
* Các thành phần của SIP:
PSTN
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 29 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Location server: Chúng ánh xạ địa chỉ của yêu cầu đến host hiện hành nơi
mà user có thể được đến.
- Register server: Chúng là những server mà chấp nhận những yêu cầu đăng
ký từ các user agent. Register thường là vùng phụ cùng với proxy server và
redirect server. Tuy nhiên nó cũng hữu dụng cho việc di động của user và
cho việc nhận thực của user cũng như thu tiền dịch vụ. Tính chất này cũng
được sử dụng cho các rãnh (track) user.
* Các bản tin trong giao thức SIP và phản hồi:
- INVITE: Bắt đầu thực hiện cuộc gọi bằng cách gởi bản tin mời đầu cuối
khác tham gia.
- ACK: Bản tin này khẳng định máy trạm đã nhận được bản tin trả lời bản
tin INVITE.
- CANCEL: huỷ yêu cầu nằm trong hàng đợi.
- REGISTER: Đầu cuối SIP sử dụng bản tin này để đăng ký với máy chủ
đăng ký.
- OPTIONS: Sử dụng để xác định năng lực của máy chủ.
- INFO: Sử dụng để tải các thông tin như là âm báo DTMF.
Ngoài ra còn có một số bản tin khác như là: NOTIFY, SUBCRIBE,
UNSUBCRIBE, UPDATE, MESSAGE, REFER, PRACK, …
Các bản tin phản hồi:
- 1xx: (PROVISIONAL) Phản hồi tạm thời, cho biết đã nhận được yêu
cầu, tiếp tục quá trình yêu cầu.
- 2xx: (SUCCESS) Thông báo đã nhận được đầy đủ, hiểu và chấp nhận.
- 3xx: (REDIRECTION) Thông báo cần có các bản tin khác để hoàn thành
yêu cầu.
- 4xx: (CLIENT ERORR) Thông báo yêu cầu chứa cấu trúc sai hoặc
không được đáp ứng ở server
- 5xx: (SERVER ERORR) Thông báo server không thể đáp ứng được yêu
cầu có cấu trúc hợp lệ.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 30 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- 6xx: (GLOBAL FAILURE) Thông báo yêu cầu không thể xử lý được ở
bất cứ server nào.
Hình 1.16: Tiến hành cuộc gọi trong SIP với proxy server
- UAC (user agent client) khởi đầu gởi một bản tin INVITE đến proxy
server.
- Proxy server, nếu cần thiết thì sẽ truy vấn location server để tìm ra đường
dẫn của bên nhận và địa chỉ IP của nó.
- Proxy server gởi bản tin INVITE đến UAC của bên nhận.
- Nếu UAS (user agent server) của bên tham gia xác nhận các tham số của
cuộc gọi có thể chấp nhận được thì nó sẽ đáp ứng xác thực lại đến proxy
server.
- Proxxy server trả lời lại cho UAC khởi đầu.
- UAC khởi đầu phát một bản tin ACK.
- Proxy server chuyển tiếp bản tin này đến bên UAS nhận.
UAC và UAS bây giờ đã có đầy đủ thông tin cần thiết để thiết lập các phiên
truyền thông RTP.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 31 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 32 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 33 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Sau khi xác nhận cuộc gọi này là có thể dựa trên các số được gọi, call
agent chỉ dẫn bằng cách gởi thông điệp CRCX (create a connection) để chỉ
dẫn cho gateway tạo một kết nối với đầu cuối của nó.
- Gateway trả lời lại thông điệp trên với thông điệp miêu tả phiên nếu nó có
khả năng đáp ứng kết nối này. Miêu tả phiên chỉ định địa chỉ IP và port
UDP tối thiểu cho việc sử dụng phiên truyền thông RTP sau. Gatewway
không miêu tả phiên cho phía từ xa của cuộc gọi, và kết nối đi vào trạng
thái chờ.
- Call agent chuẩn bị và gởi một thông điệp yêu cầu kết nối đến gateway B.
Trong yêu cầu này, call agent cung cấp các miêu tả phiên được chứa từ
gateway B. Yêu cầu kết nối được đưa đến một đầu cuối đơn.
- Gateway B trả lời yêu cầu với các miêu tả phiên của nó. Chú ý rằng
gateway B có cả hai miêu tả phiên và nó nó nhận ra làm thế nào để thiết
lập phiên RTP của nó.
- Call agent chuyển tiếp miêu tả phiên đến gateway A trong thông điệp yêu
cầu kết nối sửa đổi MRCX (Modify Connection Request). Yêu cầu này có
thể chứa yêu cầu khai báo đóng gói mà miêu tả các báo hiệu thích hợp và
các sự kiện của giai đoạn thiết lập cuộc gọi. Bây giờ thì gateway A và
gateway B có miêu tả phiên cần thiết để thiết lập các phiên RTP mà các
audio vận chuyển qua đó.
- Ở phần kết thúc của cuộc gọi, một trong các đầu cuối nhận ra sự chuyển
tiếp gác máy. Trong ví dụ này, user trên gateway A gác máy. Bởi vì call
agent đã yêu cầu gateway phải thông báo sự kiện này nên gateway thông
báo cho call agent.
- Call agent gửi yêu cầu hủy kết nối DLCX (Delete Connection Request)
đến mỗi gateway.
- Gateway hủy kết nối và trả lời lại.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 34 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 35 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
đề 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 5 bức thư vào một phong bì sẽ tiết
kiệm hơn so vớ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ế.
Tóm lại: 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ư:
+ Tối thiểu sử dụng băng thông.
+ Trong suốt với NAT.
+ Hiệu quả với cơ chế trung kế.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 36 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Chương 2
TỔNG QUAN VỀ ASTERISK
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 37 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
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.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 38 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
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…
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 39 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
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.
Hệ thống cũng bao gồm 4 chức năng API (Application Program Interface)
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.
2.3 Một số tính năng cơ bản
Ngoài những tính năng tương tự như tổng đài PBX, Asterisk còn có thêm nhiều
tính năng khác mà chỉ có thể có được ở những tổng đài rất đắt tiền. Đó là các tính
năng:
Voicemail Services with Directory
Conferencing Server
Packet Voice Server
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 40 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 41 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Đây là tính năng thường được sử dụng trong hệ thống Asterisk. 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.
2.3.3 Caller ID (hiển thị số gọi)
Chức năng này rất hữu dụng khi một ai đó gọi đến và ta muốn biết chính xác
là gọi từ đâu và trong một số trường hợp biết chắc họ là ai.
Ngoài ra Caller ID còn là chức năng cho phép chúng ta xác nhận số thuê bao
gọi đến có nghĩa là dựa vào caller ID chúng ta có tiếp nhận hay không tiếp nhận
cuộc gọi từ phía hệ thống Asterisk. Ngăn một số cuộc gọi ngoài ý muốn.
2.3.4 Automated attendant (chức năng IVR)
Chức năng tương tác thoại có rất nhiều ứng dụng trong thực tế, khi gọi điện
thoại đến một cơ quan hay xí nghiệp thuê bao thường nghe thông điệp như :“Xin
chào mừng bạn đã gọi đến công ty chúng Tôi hãy nhấn phím 1 để gặp phòng kinh
doanh, phím 2 gặp phòng kỹ thuật…” sau đó tuỳ vào sự tương tác của thuê bao gọi
đến, hệ thống Asteisk sẽ định hướng cuộc gọi theo mong muốn.
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á đô la hiện nay như thế nào, hay kết quả xổ số … tất các những mong
muốn trên đều có thể thực hiện qua chức năng tương tác thoại.
2.3.5 Time and Date
Vào từng thời gian cụ thể cuộc gọi sẽ định hướng đến một số điện thoại hay
một chức năng cụ thể khác, ví dụ trong công ty giám đốc muốn chỉ cho phép nhân
viên sử dụng máy điện thoại trong giờ hành chánh còn ngoài giờ thì sẽ hạn chế hay
không cho phép gọi ra bên ngoài.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 42 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 43 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
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.
2.4.3 Kết nối giữa các server Asterisk
Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị
trị địa lý khác nhau nhằm giảm chi phí đường dài. Ví dụ Công ty Mẹ có trụ sở đặt
tại nước Mỹ và các Chi nhánh đặt tại Việt Nam với các địa điểm Thành phố Hồ Chí
Minh và Hà Nội. Thông qua mạng WAN của Công Ty các cuộc gọi nội bộ giữa các
vị trí khác nhau sẽ làm giảm chi phí đáng kể.
2.4.4 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ố triển khai. 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.
2.4.5 Chức năng Phân phối cuộc gọi tự động ACD (Automatic Call Distribution)
Đâ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.
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 mười 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.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 44 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Chương 3
MỘT SỐ KHÁI NIỆM TRONG HỆ THỐNG ASTERISK
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 45 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
trường hợp người gọi nhấc máy nhưng không quay số khoảng 15s thì tổng đài sẽ
ngưng phát Dial tone và phát Busy tone vế phía thuê bao.
φ=425±25Hz
φ=425±25Hz
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 46 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Nếu số đầu không nằm trong tập thuê bao của tổng đài thì tổng đài sẽ
phục vụ như một liên đài qua trung kế và gởi toàn bộ phần định vị số quay
sang tổng đài đối phương để giải mã.
- Nếu số đầu là mã gọi chúc năng đặc biệt thì tổng đài sẽ phục vụ chức năng
đó để phục vụ cho thuê bao.
3.1.3.Âm hiệu hồi âm chuông (Ring back tone)
Khi tổng đài cấp chuông cho thuê bao bị gọi đồng thời cung cấp cho thuê bao
gọi âm hiệu hồi âm chuông để báo cho thuê bao gọi biết đã kết nối với thuê bao đối
phương, chờ thuê bao đối phương nhấc máy. Âm hiệu này có tần số φ=425±25Hz
(Hình 3.3), cùng nhịp với dòng chuông.
v 4s không 2s có
φ=425±25Hz
φ=20±25Hz
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 47 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 48 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
697 1 2 3 A
770 4 5 6 B
852 7 8 9 C
941 * 0 # D
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 49 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 50 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 3.6 a) Máy điện thoại vai trò FXO kết nối với FXS (PSTN), Hình b)
PBXkết nối với FXO và FXS, Hình c) ATA đóng vai trò như FXS để kết nối
với máy điện thoại vai trò FXO.
3.4.2 Báo hiệu Analog giữa đầu cuối và tổng đài
Khi chúng ta nhấc mấy điện thoại để gọi thì nghe tín hiệu mời quay số, khi
cuộc gọi gọi đầu bên kia bị bận thì chúng ta nghe tín hiệu bận (busy tone) các loại
tín hiệu như vậy gọi là các tín hiệu báo hiệu analog. Các tín hiệu như: mời quay số,
tín hiệu bận, rung chuông, trạng thái nhấc gác máy. Các loại tín hiệu trên được trao
đổi giữa thiết bị FXO và FXS.
Có nhiều phương thức báo hiệu khác nhau ứng với từng nơi sử dụng, vì thế
tại nơi kết nối với đường dây điện thoại cần xem xét họ đang sử dụng phương thức
báo hiệu gì, từ đó chúng ta khai thác loại tín hiệu báo hiệu cho thích hợp, các
phương thức báo hiệu như Loop Start, Ground Start. Một minh họa cho việc sử
dụng sai phương thức báo hiệu là khi chúng ta khai báo phương thức báo hiệu giữa
hệ thống Asterisk và đường dây điện thoại khác nhau thì dẫn đến Asterisk sẽ không
nhận biết được tín hiệu gác máy, điều này sẽ làm cho asterisk không báo giờ giải
tỏa được cuộc gọi để thực hiện cuộc gọi mới.
3.4.3 Báo hiệu giữa các tổng đài
SS7 hệ thống báo hiệu số 7 được phát triển bởi AT&T và ITU là hệ thống
báo hiệu chuyển các cuộc gọi giữa các tổng đài trong mạng PSTN. Trong hệ thống
báo hiệu số 7 tín hiệu chuyển tải trên đường trung kế kết nối giữa hai tổng đài gồm
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 51 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
có hai mạch riêng, một cho thoại và một cho báo hiệu, như vậy thoại và báo hiệu có
thể chuyển trên hai kênh vật lý khác nhau.
3.5 Thiết Bị VoIP
3.5.1 Voip Phone
Đây là thiết bị phần cứng kết nối với mạng VoIP giống như máy điện thoại
để bàn thông thường nhưng dành cho VoIP, cần phải thực hiện cấu hình trước khi
sử dụng.
Lưu ý một số tính năng khi thực hiện mua thiết bị điện thoại VoIP:
- Low bandwidth : hỗ trợ Codec nào, G729 là tốt nhất hiện nay.
- Web Interface : Phải có giao tiếp thiết lập cấu hình thân thiện dễ sử
dụng.
- Audio Interface : Có speaker phone hay không?
Giá thành của điện thoại voip IP đắc hơn điện thoại thông thường, giá
khoảng trên dưới 100$ một cái.
3.5.2 Softphone
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à firewall không bị khóa.
Sử dụng softphone với hệ thống Asterisk nên dùng softphone với công nghệ
giao thức mới dành cho Asterisk đó là IAX.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 52 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 53 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 54 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
làm giảm các tần số cao hay âm lượng lớn. Luật A tốt hơn trong việc nén tín hiệu
mức thấp và có tỉ số nén tín hiệu trên nhiễu tốt hơn. Luật u thường được sử dụng ở
Bắc Mỹ, còn luật A thường được sử dụng ở châu Âu.
Asterisk cung cấp việc chuyển đổi hoàn hảo giữa các chuẩn nén với nhau.
Các chuẩn nén gồm có:
Chuẩn nén Tốc độ
16 bit tuyến tính 128 kbps
G.711u (luật u) 64 kbps
G.711a (luật A) 64 kbps
IMA-ADPCM 32 kbps
GSM 6.10 12 kbps
MP3 biến đổi
LPC-10 2.4 kbps
Hình 3.11: Các thuật toán codec
Thêm vào đó, các chuẩn nén khác như G.723.1 và G.729 có thể đi qua một
cách trong suốt. Thông thường, người ta sử dụng bộ nén và giải nén luật A, luật u
hay tuyến tính cho băng DTMF. Hầu hết các chuẩn nén có độ mất mát dữ liệu tương
đối lớn khi truyền fax.
Mục tiêu cuối cùng là các thuật toán đưa ra phải đảm bảo chất lượng cuộc
gọi nhất và tiết kiệm băng thông nhất.
G729 là thuật toán codec tốt nhất hiện nay trong hệ thống VoIP. Với hệ
thống Asterisk để sử dụng thuật toán này cần phải mua bản quyền sử dụng vì đây là
codec không miễn phí sử dụng.
3.7 QoS – Quality of Service
Các yếu tố ảnh hưởng đến chất lượng của dịch vụ, đối với VoIP đó là các
yếu ảnh hưởng đến chất lượng tín hiệu thoại.
3.7.1 Độ trễ
Thoại là dịch vụ mang tính thời gian thực rất cao vì thế trễ là yếu tố ảnh
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 55 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
hưởng rất lớn đến chất lượng dịch vụ. Trễ được định nghĩa là khoảng thời gian tính
từ lúc tín hiệu thoại đi từ miệng người nói tới tai người nghe. Trễ là yếu tố không
thể tránh khỏi, độ trễ đối với mạng điện thoại truyền thống (mạng PSTN) khoảng từ
50ms đến 70ms, theo khiến nghị của ITU-T để đảm bảo chất lượng cho hệ thống
VoIP thì độ trễ từ đầu phát tới đầu thu hoặc ngược lại không được vượt quá 150ms,
khi mà độ trễ vượt quá 400ms đến 500ms thì không thể chấp nhận được.
Các nguyên nhân gây ra trễ bao gồm : Trễ trên mạng lưới, trễ trên bộ mã hóa
giải mã, trễ trong quá trình đóng gói, trễ bộ đệm, trễ xử lý tiếng nói…
3.7.2 Độ trượt(Jitter)
Nguyên nhân gây ra trượt là gói tín hiệu thoại trong quá trình truyền từ
nguồn đến đích sẽ gặp phải những điều kiện khác nhau trên mạng lưới do đó thường
đến đích với những khoảng trễ khác nhau. Đây là tính không đồng nhất của trễ. Một
nguyên nhân khác của trượt đối với ứng dụng PC to PC là do việc sử dụng hệ điều
hành phi thời gian thực, các gói tin thoại phải đợi hệ điều hành xử lý trong những
khoảng thời gian khác nhau khi mà hệ điều hành đang phải xử lý đối với các ứng
dụng khác.
Để loại bỏ tính không đồng nhất của trễ, người ta thiết kế các bộ đệm trễ
(Jitter Buffer) tại nơi đến của các gói tin, các gói tin đến với các khoảng cách khác
nhau về thời gian được lưu tại bộ đệm rồi phát khỏi bộ đệm với khoảng trễ như
nhau. Khi bộ đệm có kích thước càng lớn thì khả năng loại bỏ tính không đồng nhất
càng lớn, tuy nhiên việc sử dụng bộ đệm sẽ gây ra hiện tượng trễ trong ứng dụng
thoại, do đó cần có bài toán cân đối giữa độ trễ và độ trượt.
Ngoài 2 nguyên nhân trên còn một số nguyên nhân nữa ảnh hưởng đến chất
lượng thoại như độ mất gói, giới hạn băng thông, tiếng vọng.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 56 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 57 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
trên mạng có thể xảy ra bất cứ lúc nào, nên một số gói tin trên mạng bị mất là điều
không thể tránh khỏi.
Tác động của mất thông tin tùy thuộc vào loại ứng dụng. Điều khiển lỗi trên
mạng là một quá trình gồm hai bước, mà bước đầu tiên là xác định lỗi. Bước thứ hai
là khắc phục lỗi, nó có thể đơn giản là bên gởi truyền lại đơn vị đã mất thông tin.
Một vài ứng dụng, đặc biệt là ứng dụng thời gian thực, không thể đạt hiệu quả khắc
phục lỗi bằng cách gởi lại đơn vị tin bị lỗi. Các ứng dụng không phải là thời gian
thực thì thích hợp hơn đối với cách truyền lại thông tin bị lỗi.
Vì những lí do này, các thông số QoS mất thông tin không những nên định rõ
một giới hạn trên đối với ảnh hưởng của lỗi mà nên cho phép người sử dụng xác
định xem có sửa lỗi bằng cách truyền lại hay không. Tuy nhiên hầu hết các mạng
(đặc biệt là mạng IP) chỉ cung cấp phương tiện vận chuyển thụ động, còn xác định
lỗi, khắc phục lỗi thường được để lại cho ứng dụng của người sử dụng.
Mạng IP hoạt động trên cơ chế “cố gắng tối đa” nên độ tin cậy không cao,
mất gói thường xảy ra, đôi khi xảy ra nghẽn mạng và các gói phải nằm trong hàng
đợi của các nút mạng, xấu hơn là có thể rớt do tràn bộ đệm hoặc do độ ưu tiên của
gói thấp bị bộ định tuyến loại bỏ. Để truyền tin cậy dữ liệu trong mạng IP người ta
phải sử dụng cơ chế phát lại để truyền lại các gói bị mất, nó có thể thực hiện ở lớp
giao vận. Cơ chế phát lại được kích hoạt khi đầu cuối nhận được bản tin thông báo
mất gói. Tuy nhiên, việc phát lại có nhược điểm lớn là trễ. Đối với các ứng dụng
thời gian thực như thoại thì cơ chế phát lại không thể ứng dụng được.
Gói thực chất được xác định là mất khi trễ đầu cuối- đầu cuối của gói vượt
khỏi quá thời gian quy định. Như vậy, mất gói là gói không bao giờ đến đích (thời
gian trễ bằng vô cùng) nhưng cũng có thể là gói mặc dù đến đích nhưng sau thời
điểm quy định đặt ra của chúng (trường hợp này là mất gói do trễ). Số của gói mất
sẽ giảm khi tăng trễ bộ đệm nghĩa là tăng thời gian trễ cho phép của gói. Tuy nhiên,
tăng trễ bộ đệm đồng nghĩa với tăng trễ đầu cuối- đầu cuối (mà điều này lại ảnh
hưởng đến chất lượng, đến độ cảm nhận của người nghe). Do đó cần phải có sự cân
nhắc thỏa đáng giữa hai con số này.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 58 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Mất gói làm gián đoạn các đoạn thoại, gây nên các âm như click, mất tiếng (
trong khoảng rất ngắn) hoặc mất âm làm cho đoạn thoại không hiểu được. Vì mất
gói là điều không thể tránh khỏi, lưu lượng thoại cho phép có thể mất một số gói,
nhưng tỷ lệ mất gói này vượt quá 5% thì nó sẽ ảnh hưởng đáng kể đến chất lượng
thoại. Do vậy phải có biện pháp để giảm ảnh hưởng của mất gói đến chất lượng
thoại. Đó là kỹ thuật che giấu mất gói hay rộng hơn là kỹ thuật khôi phục mất gói,
nghĩa là làm cho người nghe không cảm nhận thấy khó chịu do tác động của mất
gói gây nên.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 59 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Chương 4
CÀI ĐẶT VÀ CẤU HÌNH ASTERISK
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 60 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
openssl
openssl-devel
gnutls-devel
gcc
gcc-c++
Thực hiện kiểm tra bằng các lệnh sau:
rpm -q bison
rpm -q bison-devel
rpm -q ncurses
rpm -q ncurses-devel
rpm -q zlib
rpm -q zlib-devel
rpm -q openssl
rpm -q openssl-devel
rpm -q gnutls-devel
rpm -q gcc
rpm -q gcc-c++
Nếu thư việc nào chưa được cài đặt, ta thực hiện cài đặt bằng lệnh:
yum install bison
yum install bison-devel
yum install ncurses
yum install ncurses-devel
yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel
yum install gnutls-devel
yum install gcc
yum install gcc-c++
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 61 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Sau khi đã chắc chắn rằng các thư viện đã được cài đặt, ta tiến hành việc cài
đặt Asterisk.
Cài đặt gói Libpri: chuyển đến thư mục chứa gói Libpri sau khi giải nén
make
make install
Cài đặt gói Zaptel: chuyển đến thư mục chứa gói Zaptel sau khi đã giải nén
make
make install
Cài đặt Asterisk: chuyển đến thư mục chứa gói Asterisk sau khi đã giải nén
./configure
make
make install
make samples
Sau khi cài đặt các gói xong, để kiểm tra, ta vào cửa sổ terminal của Fedora
Core 5 thực hiện lệnh:
asterisk -vvvvvr
reload
Quá trình cài đặt Asterisk kết thúc.
4.2 Tổ Chức Thư Mục của Asterisk
Asterisk sử dụng nhiều thư mục trên hệ thống linux để quản lý các khía cạnh
khác nhau của hệ thống, như nghi nhận bản tin thoại, các bản tin nhắc thoại, hoặc
các tập tin cấu hình. Phần này sẽ trình bày các thư mục chính yếu được tạo ra trong
quá trình lắp đặt và được cấu hình trong tập tin Asterisk.conf.
4.2.1 /etc/asterisk/
Thư mục /etc/asterisk/ chứa tất cả các tập tin cấu hình của hệ thống Asterisk
ngoại trừ tập tin Zaptel.conf được đặt tại thư mục /etc/. Phần cứng Zaptel đầu tiên
được phát triển bởi Jim Dixon thuộc nhóm Zapata Telephony Group để giao tiếp
giữa máy tính với mạng điện thoại, mà Asterisk lại sử dụng phần cứng này, với lý
do đó mà file cấu hình zaptel.conf không nằm trong thư mục /etc/asterisk/.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 62 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
4.2.2 /usr/lib/asterisk/modules/
Thư mục /usr/lib/asterisk/modules/ chứa tất cả các module cần thiết để
asterisk hoạt động. Bên trong thư mục là các ứng dụng khác nhau, các codec, các
định dạng âm thanh(format) và các kênh thông tin(channel). Theo mặc định
Asterisk sẽ nạp tất cả các module vào lúc khởi động. Chúng ta có thể không cho nạp
một module bất kỳ bằng cách không khai báo sử dụng trong tập tin modules.conf.
Lưu ý khi không cho nạp module thì phải biết chắc module đó không làm ảnh
hưởng hoạt động của asterisk nếu không lỗi sẽ xuất hiện.
4.2.3 /var/lib/asterisk
Thư mục /var/lib/asterisk/ chứa tập tin astdb và một số thư mục con. Tập tin
astdb định vị thông tin cơ sở dữ liệu của Asterisk giống như Microsoft Windows
Registry.
Các thư mục con của thư mục /var/lib/asterisk/ bao gồm:
- Thư mục agi-bin/ chứa các script của người dùng mà Asterisk có thể định
vị sử dụng qua các ứng dụng AGI. AGI là phần giao tiếp với ngôn ngữ lập
trình script để thực hiện một số công việc của Asterisk từ bên ngoài.
- Thư mục firmware/ chứa một số phần dẻo (firmware) cho các thiết bị
khác nhau tương thích với Asterisk. Hiện tại chỉ có thư mục con /iax chứa.
Firmware cho thiếy bị IAXy của Digium. IAXy là thiết bị ATA sử dụng
giao thức IAX.
- Thư mục images/. Các ứng dụng thông tin với các kênh hỗ trợ ảnh images
thì sử dụng thư mục này. Nhưng hiện tại các kênh thông tin hầu như không
hỗ trợ truyền ảnh images nên thư mục này cũng hiếm khi được sử dụng.
Tuy nhiên nếu các thiết bị có hỗ trợ thì thư mục này trở nên hiệu dụng.
- Thư mục keys/. Asterisk có thể sử dụng hệ thống khoá public/private để
xác minh các kết nối giữa các server Asterisk thông qua chữ ký điện tử
RSA. Nếu đặt một khoá public vào thư mục /keys thì kết nối của server đầu
bên kia có thể được xác minh bằng kênh thông tin có hỗ trợ, đối với
Asterisk thì kênh giao thức IAX hỗ trợ loại xác minh này. Một khoá private
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 63 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
không bao giờ công bố, chúng ta chỉ công bố khoá public đến với server
cần nối đến, sau đó sẽ được xác minh với khoá private này. Cả hai khoá
public và private được lưu với đuôi .pub và .key đặt tại thư mục keys/.
- Thư mục mohmp3/. Khi cấu hình Asterisk sử dụng tính năng Music on
Hold, tính năng hoạt động sẽ thực hiện lấy các tập tin mp3 tại thư mục
mohmp3/. Tập tin định dạng theo chuẩn của Asterisk nên khi sử dụng các
file Mp3 thông thường cần có sự chuyển đổi thích hợp trước khi chép vào
thư mục trên để sử dụng.
- Thư mục sounds/ Tất cả các tập tin âm thanh liên quan đến nhắc thoại của
Asterisk được đặt tại thư mục sounds/. Nội dung của các tập tin chứa trong
thư mục được liệt kê qua tập tin sounds.txt đặt tại thư mục mã nguồn của
Asterisk. Còn nội dung của các tập tin âm thanh được mở rộng thêm được
liệt kê trong tập tin sounds-extra.txt đặt trong thư mục được trích ra khi
bung gói asterisk-sounds.
4.2.4 /var/spool/asterisk/
Thư mục /var/spool/asterisk/ chứa nhiều thư mục con bao gồm outgoing/,
qcall, tmp/, voicemail/. Asterisk luôn kiểm qua thư mục outgoing và qcall vì đây là
hai thư mục chứa các tập tin dạng text chứa thông tin yêu cầu cuộc gọi. Các tập tin
đó cho phép tạo ra cuộc gọi đơn giản bằng cách chép tập tin đúng cấu trúc quy định
vào thư mục outgoing/. Sau đây là cấu trúc cây thư mục:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 64 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 65 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
4.2.7 /var/log/asterisk/cdr-csv
Thư mục /var/log/asterisk/cdr-csv được sử dụng để lưu chi tiết cuộc gọi
CDR. Thông tin mặc định về chi tiết thông tin cuộc gọi lưu trữ trong tập tin
Master.CVS, nhưng thường thì ứng với mỗi mã accountcode sẽ tạo một thư mục
riêng để lưu chi tiết cuộc gọi cho máy đó.
4.3 Một số lệnh thao tác trên hệ thống asterisk
Asterisk có hai thành phần được xây dụng tích hợp với nhau và chạy song
song nhau:
- Asterisk Server bình thường chạy ở chế độ nền (background) giống các
sevices trong window.
- Asterisk Client ở chế độ dòng lệnh CLI giao tiếp với Asterisk Server, thực
thi các lệnh để kiểm tra, hay xem các thông tin của server.
Để Chạy và dừng Asterisk ở chế độ nền chúng ta thực hiện lệnh sau:
#/etc/init.d/asterisk (start|stop)
Một khi Asterisk đã chạy chúng ta có thể chuyển qua chế độ CLI từ dấu nhắc
lệnh của linux như sau:
#asterisk –r
Khi vào chế độ lệnh nếu muốn thoát về lại dấu nhắc linux chúng ta dùng
lệnh:
CLI>exit
*Các lệnh cơ bản thực hiện tại CLI>:
Bất cứ khi nào chỉnh sửa các tập tin cấu hình chúng ta đều cần phải nạp lại
để các thay đổi có hiệu lực, điều đó thực hiện bằng lệnh:
#CLI>reload
Bậc chế độ debug cho kênh thông tin SIP hoặc IAX2
#CLI> IAX2 debug
#CLI> SIP debug
Tắt chế độ debug cho kênh thông tin SIP hoặc IAX2
#CLI> IAX2 no debug
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 66 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 67 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Extention.conf
;
;Đây là các dòng chú thích
[section]
Key=value ; gán giá trị cho biến
[section2]
Key=>object ; Gán giá trị cho đối tượng
[cisco]
Type=friend
Secret=12345
Complex Host=192.168.16.5
Mỗi entity nhận sip.conf
Entity Context=NoiBo
một ngữ cảnh iax.conf
[xten]
Type=friend
Secret=6789
Host=dynamic
Context=NoiBo
Hình 4.3: Các kiểu ảnh hưởng trong tập tin cấu hình
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 68 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Extention.conf
[section]
object1=> op1,op2,op3
object2=> op1b,op2b,op3b
Trong ví dụ trên mỗi dòng tương ứng với các toán tử khác nhau object1 có
các toán từ op1, op2, op3 trong khi đó object2 lại có các toán từ op1b, op2b, op3b.
4.5.2 Option inheritance
Đây là cấu hình kiểu thừa kế thường được cấu hình trong các file
zapata.conf, agent.conf. Với kiểu cấu hình này thì các dòng phía dưới có thể thừa kế
các thông số dòng phía trên, tương ứng với mỗi section các dòng phía dưới có thể
thay đổi các thông số cho tương ứng.
Ví dụ:
Extention.conf
[section]
Op1=bas
Op2=adv
Object1=>1
Op1=int
Object1=>2
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 69 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Extention.conf
[entity1]
Op1=value1
Op2=value2
[entity2]
Op1=value3
Op2=value4
Entity1 có các giá trị value1 và value2 cho thông số op1 và op2, trong khi đó
cũng là thông số op1 và op 2 nhưng có các giá trị khác là value3 và value4 cho
entity2.
4.6 Giới Thiệu DialPlan
Dialplan là trái tim của hệ thống asterisk. Dialplan cho biết các cuộc gọi sẽ
được xử lý như thế nào qua hệ thống asterisk. Dialplan bao gồm tập hợp các dòng
lệnh hay các ứng dụng theo một trình tự nào đó mà hệ thống phải thực hiện để đáp
ứng nhu cầu chuyển mạch cuộc gọi. Để hiểu rõ và cấu hình thành công hệ thống
asterisk thì điều kiện tiên quyết là phải biết như thế nào dialplan hoạt động.
Dialplan là công việc thiết lập cho hoạt động của hệ thống như định hướng
các cuộc gọi vào và ra hệ thống, đó là một danh sách các bước hay các lệnh liên tục
nhau để thực hiện một tác vụ nào đó mà hệ thống phải thực hiện theo. Khác biệt với
các hệ thống điện thoại truyền thống tất cả các công việc cấu hình hệ thống đều là từ
phía người sử dụng.
Hệ thống chúng ta có hoàn chỉnh tốt hay không phụ thuộc rất nhiều vào việc
chúng ta hiểu rõ vào dialplan hay không?.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 70 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Trong phần này sẽ tập trung đi vào thực hiện diaplan ở mức nền tảng thực
hiện cuộc gọi trước khi đi sâu tìm hiểu kỹ phần sau.
Dialplan được cấu hình qua tập tin extension.conf, liên quan đến việc cấu
hình dialplan có những khái niệm cần nắm đó là:
+ Extentions: Điện thoại nội bộ
+ Priorities: Thứ tự thực hiện
+ Applications: Các ứng dụng
+ Contexts: Các ngữ cảnh
4.6.1 Extentions
Dialplan là một tập gồm nhiều extention, khi một cuộc gọi tương ứng với
extention nào thì ứng dụng cho cuộc gọi đó sẽ được thực hiện. Extention có thể đơn
giản với một đích danh cụ thể như 8051, thanhhieu hay là một pattern được thực
hiện như _9xxx.
Ví dụ:
/etc/asterisk/extention.conf
exten=>8051,1,dial(sip/8051,20)
exten=>8051,2,hangup()
“exten=>” giống nhau cho mỗi dòng thực hiện trong dialplan, 8051 là số
điện thoại mà thuê bao quay hay là extention, còn các con số 1 và 2 là các priorites
tức là thứ tự thực hiện các lệnh. Khi thuê bao quay số 8051 thì đỗ chuông máy ip
sip 8051 nếu trong vòng 20 giây mà thuê bao không nhấc máy thì kết thúc cuộc gọi.
Extension là thành phần mà asterisk thực hiện theo, được kích hoạt khi có
cuộc gọi vào extension chính là con số mà thuê bao đó cần gọi. Trong mỗi ngữ cảnh
sẽ có thể có nhiều extension. Extenstion chính là hạt nhân để hệ thống xác định
cuộc gọi cần thực hiện. Extenstion hoàn chỉnh gồm có các phần : exten =>
Name,priority,application( )
Trong đó:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 71 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Priority (Mỗi extension có thể bao gồm nhiều bước mỗi bước được gọi là
“priority”)
- Application (or command) Thực hiện một ứng dụng cụ thể nào đó cho
cuộc gọi.
/etc/asterisk/extention.conf
exten => Tương ứng với mỗi ứng dụng thực hiện
7325010 Con số nhận được khi thuê bao chủ gọi quay số.
1, 2 là các “priority” thứ tự được thực hiện 1 rồi tới 2…
Trong ví dụ của chúng ta con số 7325010 sẽ được gửi đến kênh zap/1 rung
chuông tối đa 20 giây. Nếu sau 20 giây không trả lời thì cuộc gọi sẽ được định
hướng đến hộp thư thoại u7325010 chữ u ở đây có nghĩa là “ 'u'navailable
message”.
4.6.2 Priorities – Thứ tự thực hiện
Priorities là thứ tự thực hiện các ứng dụng trong dialplan, khi thứ tự “1”
được thực hiện thì kế tiếp là ứng dụng tại thứ tự số “2” được thực hiện, kể từ vertion
1.2 của Asterisk thay vì sử dụng gán một con số cụ thể cho thứ tự thực hiện như
trên thì ở đây có thể gán ký tự “n” cho mọi dòng “exten=>” điều này sẽ nói với
asterisk là ứng dụng với thứ tự tiếp theo sẽ thực hiện.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 72 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Ví dụ:
/etc/asterisk/extention.conf
exten=>8051,2,hangup()
exten=>8051,1,dial(sip/8051,20)
Ở ví dụ trên dòng có thứ tự “2” đứng trước dòng có thứ tự “1”, nhưng khi
thực hiện diaplan thì dòng có thứ tự Priorities “1” ưu tiên thực hiện trước bất kể thứ
tự sắp xếp như thế nào.
Ví dụ :
/etc/asterisk/extention.conf
exten=>8051,n,dial(sip/8051,20)
exten=>8051,n,hangup()
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 73 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
dụng để xây dựng để tạo ra các lựa chọn trong hệ thống trả lời tự động.. Cấu trúc
của nó như sau:
exten => 123,1,Background(hello-world)
Ứng dụng goto() được sử dụng để gởi cuộc gọi đến ngữ cảnh (context),
extension, và thứ tự của extension (priority) khác. Ứng dụng goto được sử dụng làm
cho việc lập trình di chuyển các cuộc gọi giữa các phần của dialplan một cách dễ
dàng. Cấu trúc của ứng dụng Goto() cho phép chúng ta chuyển đến các ngữ cảnh,
extension và priority đích như mong muốn, ví dụ như:
exten => 123,1,Goto(context,extension,priority)
Trong ví dụ này, chúng ta sẽ sử dụng ứng dụng Background() và Goto() để
tạo ra một dialplan, cho phép người gọi tương tác với hệ thống bằng cách nhấn
phím trên bàn phím điện thoại. Bắt đầu với việc sử dụng Background() để chấp
nhận việc nhấn phím từ người gọi:
[incoming]
exten => s,1,Answer( )
exten => s,2,Background(enter-ext-of-person)
Trong hai câu lệnh trên, khi có số gọi đến hệ thống sẽ trả lời và chúng ta sẽ
phát file âm thanh enter-ext-of-person.gsm. Chúng ta sẽ thêm vào hai extensions để
thực hiện tương tác khi người gọi ấn phím 1 hoặc 2.
[incoming]
exten => s,1,Answer( )
exten => s,2,Background(enter-ext-of-person)
exten => 1,1,Playback(digits/1)
exten => 2,1,Playback(digits/2)
Trong các câu lệnh trên, khi có người gọi đến, người gọi sẽ nghe lời chào:
“Please enter the number you wish to call”. Nếu người gọi nhấn một, họ sẽ nghe
đọc số 1, nếu nhấn 2, người gọi sẽ nghe số 2. Tiếp đến chúng ta sẽ sử dụng ứng
dụng goto() để lặp lại lời chào sau khi đã phát âm thanh đọc số:
[incoming]
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 74 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 75 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
/etc/asterisk/extention.conf
[PhongKinhDoanh]
exten => 7325010,1,Dial(SIP/${EXTEN}),20)
exten => 7325010,2,Voicemail(u${EXTEN})
[PhongKyThuat]
exten => _9.,1,Dial(SIP/${EXTEN})
Ngoài ta đối với việc cấu hình cho các kênh thoại thì ngữ cảnh ở đây là việc
xử lý các cuộc gọi tương ứng với kênh đó qua kế hoạch diaplan.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 76 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Ví dụ:
/etc/asterisk/extention.conf
[8051]
Type=friend
Context=Tu_SIP
………………
[8052]
Type=friend
Context=noibo
………………
/etc/asterisk/extention.conf
[noibo]
exten=>8051,1,dial(sip/8051,20)
exten=>8051,2,hangup()
[Tu_SIP]
exten=>8052,1,dial(sip/8052,20)
exten=>8052,2,hangup()
Khi thuê bao 8052 nhấc máy thì Asterisk chuyển cuộc gọi này đến ngữ cảnh
[noibo] và chờ nhận con số quay, nếu thuê bao 8052 quay số 8051 thì số máy 8051
sẽ rung chuông trong vòng 20 giây, nếu qua 20 giây mà thuê bao 8051 không nhấc
máy thì cuộc gọi sẽ kết thúc.
Khi thuê bao 8051 nhấc máy thì Asterisk chuyển cuộc gọi này đến ngữ cảnh
[Tu_SIP] và chờ nhận con số quay, nếu thuê bao 8051 quay số 8052 thì số máy
8052 sẽ rung chuông trong vòng 20 giây, nếu qua 20 giây mà thuê bao 8052 không
nhấc máy thì cuộc gọi sẽ kết thúc.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 77 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 78 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
pattern nào chi tiết nhất. Ví dụ chúng tao có hai pattern được chỉ định như bên dưới,
và người gọi gọi số 555-1212:
exten => _555XXXX,1,Playback(digits/1)
exten => _55512XX,1,Playback(digits/2)
Trong trường hợp này extension thứ hai sẽ được chọn, bởi vì nó chi tiết hơn.
4.6.6 Include
Asterisk cho phép chúng ta dùng ngữ cảnh bên trong một ngữ cảnh khác
thông qua sự định hướng của lệnh include. Điều này được dùng để cấp quyền truy
cập đến các khu vực khác trong kế hoạch quay số. Chúng ta sẽ dùng chức năng
include để cho phép các thuê bao trong ngữ cảnh [internal] có thể tạo cuộc gọi ra
bên ngoài. Nhưng đầu tiên chúng ta phải tìm hiểu cấu trúc của nó.
Câu lệnh include đi kèm với ngữ cảnh mà ngữ cảnh này là ngữ cảnh đầu xa
mà bạn muốn bao gồm nó trong ngữ cảnh hiện hành.
include => context
Khi chúng ta include các ngữ cảnh khác bên trong ngữ cảnh hiện hành,
chúng ta cần phải để ý đến thứ tự mà chúng ta include chúng. Đầu tiên asterisk tính
toán phần mở rộng trong ngữ cảnh hiện hành. Nếu thành công nó include ngữ cảnh
đầu tiên, và sau đó include các ngữ cảnh khác theo thứ tự mà chúng ta cần include.
Ở đây, kế hoạch quay số của chúng ta có 2 ngữ cảnh cho cuộc gọi ra ngoài,
nhưng không có cách nào cho người trong ngữ cảnh [internal] dùng chúng. Chúng
ta khắc phục điều này bằng cách include 2 ngữ cảnh gọi bên ngoài vào trong ngữ
cảnh [internal], chẳng hạn như:
[globals]
JOHN=Zap/1
JANE=SIP/jane
OUTBOUNDTRUNK=Zap/4
[incoming]
exten => s,1,Answer( )
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 79 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[internal]
include => outbound-local
include => outbound-long-distance
[outbound-local]
exten => _9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1})
exten => _9NXXXXXX,2,Congestion( )
exten => _9NXXXXXX,102,Congestion( )
exten => 911,1,Dial(${OUTBOUNDTRUNK}/911)
exten => 9911,1,Dial(${OUTBOUNDTRUNK}/911)
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 80 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[outbound-long-distance]
exten => _91NXXNXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1})
exten => _91NXXNXXXXXX,2,Congestion( )
exten => _91NXXNXXXXXX,102,Congestion( )
Hai câu lệnh include làm cho người gọi trong ngữ cảnh [internal] có thể tạo
cuộc gọi ra bên ngoài. Chúng ta cần chú ý rằng vì mục đích bảo mật bạn nên chắc
chắn rằng ngữ cảnh [inbound] của bạn không bao giờ cho phép cuộc gọi ra bên
ngoài (nếu có sự thay đổi được thực hiện, một người có thể gọi vào hệ thống của
bạn và sau đó tạo cuộc gọi ra bên ngoài và bạn phải chịu cước phí cho cuộc gọi
đó).
4.6.7 Sử dụng Database Asterisk
Asterisk cung cấp một cơ chế mạnh mẽ cho việc lưu trữ các giá trị, gọi là
asterisk database (AstDB). AstDB cung ứng một cách đơn giản cho việc lưu trữ dữ
liệu dùng trong kế hoạch quay số.
Cơ sở dữ liệu Asterisk lưu trữ dữ liệu trong nhóm (grouping) gọi là family,
giá trị định danh được xác định bằng key, với mỗi family chỉ được dùng một key duy
nhất DB(family/key). Ví dụ ta có một family là test, với key là count. Việc lưu trữ dữ
liệu phải liên kết với family là test.
Để lưu trữ dữ liệu, ta dùng ứng dụng Set( ) gán key là count trong family là
test giá trị là 1:
exten => 456,1,Set(${DB(test/count)=1})
Nếu một key là count đã tồn tại trong test family, thì giá trị cũ sẽ bị ghi đè
bởi giá trị mới.
Truy vấn dữ liệu từ AstDB:
Để truy vấn giá trị từ cơ sở dữ liệu Asterisk và gán nó vào một biến. Ta lại sử
dụng ứng dụng Set( ) và gán nó vào một biến COUNT:
exten => 456,1,Set(DB(test/count)=1)
exten => 456,2,set(COUNT=${DB(test/count)})
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 81 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 82 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
$[${COUNT} + 1]
$[${COUNT } / 2]
Khi mà asterisk phát hiện một biểu thức trong dialplan, nó sẽ thay thế toàn
bộ biểu thức bằng giá trị của kết quả. Điều này rất quan trọng để lưu ý rằng nó sẽ
thực hiện biểu thức sau khi đã thay thế giá trị của biến. Để giải thích rõ hơn cho ý
này, chúng ta sẽ xem đoạn code sau:
Cần lưu ý rằng khi mà chúng ta gán một biến, chúng ta có thể gọi chúng
bằng tên của nó, nhưng khi mà chúng ta sử dụng giá trị của biến, chúng ta cần sử
dụng dấu dollar và dấu ngoặc ở tên biến.
exten => 321,1,Set(COUNT=3)
exten => 321,2,Set(NEWCOUNT=$[${COUNT } + 1])
exten => 321,3,SayNumber(${NEWCOUNT})
Trong lệnh thực thi thứ nhất chúng ta gán giá trị 3 cho biến COUNT.
Trong lệnh thực thi thứ hai, chỉ có ứng dụng set() được sử dụng nhưng có 3
sự kiện xảy ra:
- Asterisk thay thế ${COUNT} với số 3 trong biểu thức. Biểu thức sẽ trở j
kthành:
exten => 321,2,Set(NEWCOUNT=$ [3 + 1])
- Tiếp đến, Asterisk thực thi biểu thức, cộng một với 3, và thay thế nó với
giá trị tính toán được là 4:
exten => 321,2,Set(NEWCOUNT=4)
- Cuối cùng, giá trị 4 được gán cho biến NEWCONT bởi ứng dụng SET()
Câu lệnh thứ ba đơn giản là thực hiện ứng dụng saynumber(), có chức năng
đọc giá trị hiện tại của biến ${NEWCOUNT} (được gán giá trị 4 trong câu lệnh thứ
hai).
*Các phép so sánh:
Khi chúng ta tạo một dialplan asterisk, chúng ta đã viết một loại code với
một ngôn ngữ đặc biệt. Điều này có nghĩa là ngôn ngữ lập trình asterisk cũng có các
ký hiệu ngôn ngữ được gọi là toán tử cho phép chúng ta vận dụng với các biến.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 83 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 84 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Asterisk phân tích cú pháp rất đơn giản, nó yêu cầu chúng ta cần có ít nhất
một khoảng trống giữa toán tử và các giá trị. Thường thì câu lệnh sau sẽ không thực
hiện được như mong đợi:
exten => 123,1,Set(TEST=$[2+1])
Điều này sẽ gán biến test với chuỗi “2+1”, thay vì gán cho nó giá trị ba.
Thực tế cần phải có một khoảng trống giữa toán tử, giống như sau:
exten => 234,1,Set(TEST=$[2 + 1])
Để móc nối các biến với nhau, đơn giản đặt chúng trong biểu thức, như:
exten => 234,1,Set(NEWTEST=$[$blah{TEST}])
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 85 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Chương 5:
MÔ HÌNH THỰC HIỆN
Mô hình mạng điện thoại này được thực hiện đáp ứng cho các doanh nghiệp
nhỏ, thực hiện dựa trên cơ sở hạ tầng mạng sẵn có của doanh nghiệp.
5.1 Một số mô hình sử dụng trong thực tế
5.1.1 Mô hình đơn site
Mô hình đơn site là mô hình được sử dụng cho các doanh nghiệp mà nơi làm
việc chỉ tập trung tại một địa điểm vật lý, mạng doanh nghiệp bao gồm chỉ một site
hoặc một campus được đáp ứng bởi LAN. Cuộc gọi đi ra ngoài môi trường mạng
campus được cung cấp bởi gateway IP đến PSTN hoặc qua internet thông qua một
nhà cung cấp dịch vụ ITSP (Internet Telephony Service Provider). Bởi vì băng
thông luôn được đáp ứng đảm bảo cho các thuê bao trong mạng LAN, nên ở đây
không cần quan tâm đến việc điều khiển nạp cuộc gọi.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 86 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 87 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 88 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 89 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 90 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 91 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
có hai loại port: RJ-11 để kết nối với máy điện thoại analog thông thường
còn RJ-45 để kết nối với mạng VoIP. ATA thực sự là thiết bị FXS chuyển
đổi tín hiệu Analog sang tín hiệu số sử dụng cho mạng VoIP, để tận dụng
máy điện thoại Analog nên trang bị thiết bị ATA thay vì phải trang bị điện
thoại VoIP
- Card X100P: gắn vào Asterisk Server có 1port RJ-11 là cổng FXO kết nối
với mạng PSTN
*Yêu cầu thực hiện:
- Thực hiện cuộc gọi giữa các softphone, giữa softphone và analog phone,
thực hiện giữa các user trong mạng nội bộ với thuê bao mạng PSTN và
ngược lại thông qua Asterisk Server.
- Thực hiện các dịch vụ IVR, voicemail, fordward, transfer, conference, call
pickup, call parking, DISA, do not disturb, Asterisk realtime architecture,
Call detail record.
Để cấu hình cho một hệ thống Asterisk hoạt động, trước tiên ta sẽ phải định
nghĩa các extension, sau đó xây dựng các Dialplan thích hợp để cho các extension
kết nối được với nhau và kết nối với các thuê bao ở ngoài mạng PSTN cũng như
mạng Internet.
Trong mô hình này ta sẽ định nghĩa kế hoạch quay số như sau:
- [1xx] dùng cho điện thoại tương tự nối với Grandstream
- [2xx] dùng cho softphone SIP
- [3xx] dùng cho softphone IAX
- [9] dùng cho kết nối với mạng PSTN
-[8] gọi ra ngoài bằng internet thông qua nhà cung cấp dịch vụ VoiP
5.3 Cấu hình phần cứng
5.3.1 Cấu hình thiết bị Grandstream 488
Thiết bị Grandstream 488 dùng để kết nối điện thoại tương tự thông thường
vào mạng IP và một cổng line kết nối với PBX hoặc PSTN.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 92 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 93 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Grandstream 488 hỗ trợ giao diện web để giúp người sử dụng dễ dàng hơn
trong việc cấu hình.
- Kết nối máy tính đến cổng Ethernet của Grandstream 488
- Vào giao diện cấu hình của Grandstream 488, vào phần cấu hình cho cổng
Phone
- Cấu hình các thông số về tài khoản và mật khẩu của extension “100”
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 94 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 95 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Trước khi lắp đặt card X100P hãy tắt nguồn máy tính và kiểm tra cổng PCI
có tương thích để gắn vào hay không. Sau khi hoàn tất hãy bật máy tính trở lại và
chuẩn bị cấu hình cho card hoạt động.
Cấu hình cho card hoạt động thông qua hai file cấu hình đó là file zaptel.conf
nằm trong thư mục /etc và file zapata.conf tại thư mục /etc/asterisk, cấu hình trong
file zapata.conf để cho kênh FXO hoạt động.
Để giữ lại các cấu hình cũ nên lưu lại để đề phòng bất trắc cần khôi phục lại
về sau bằng lệnh:
#cp /etc/zaptel.conf /etc/zaptel.conf.old
#cp /etc/asterisk/zapata.conf /etc/asterisk/zapata.conf.old
/etc/zaptel.conf
fxsks=1
loadzone=us
defaultzone=us
channels=1
/etc/asterisk/zapata.conf
[channels]
Group=1
context=default ;cuộc gọi vào sẽ đến [default] qua
file extensions.conf
signalling=fxs_ks ;Sử dụng tín hiệu FXS cho kênh FXO
channel => 1 ;Đường dây điện thoại được gắn với port 1
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 96 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Sau khi cấu hình xong tiến hành nạp driver và nạp lại file cấu hình cho card
hoạt động như sau.
#Modprobe zaptel
#Modprobe wcfxo
#Ztcfg –vvvvv
#Asterisk –vvvvvgc
5.4 Khai báo kênh SIP
Trong phần này sẽ khai báo các kênh sip riêng cho từng điện thoại và
softphone sử dụng giao thức SIP, tất nhiên các thông số trong phần [general] sẽ có
hiệu lực trên các kênh này ngoại trừ tại phần khai báo các kênh này khai báo lại
thông số ở phần trên.
Sau đây là các thông số dành khai báo riêng cho từng kênh SIP:
- Name: đây là phần khai báo máy điện thoại extention ip sip, có thể là ký
tự nhưng thường là các con số quay vì trên các phím điện thoại thường là
các con số mà thôi.
- Type: Kiểu kết nối thông tin user, peer hay friend
- Host : Địa chỉ IP hay tên miền mà client kết nối với kênh này thường
dùng giá trị là “dynamic” cho tất cả client kết nối đến.
- Secret : mật khẩu để sử dụng kênh này. Máy điện thoại phía client phải
khai báo trùng với thông số này thì mới sử dụng được.
- Context: Khai báo ngữ cảnh cho thuê bao.
- Mailbox: Khai báo hộp thư thoại cho thuê bao.
- Call-limit: Khai báo bao nhiêu cuộc gọi có thể thực hiện đồng thời đối với
thuê bao.
- Group: Khai báo nhóm cho thuê bao.
- Callgroup: Khai báo nhóm gọi cho thuê bao.
- Pickupgroup: Khai báo nhóm pick up cho thuê bao.
- Barge_rooms: Khai báo phòng hội nghị cho thuê bao.
- Disallow : Khai báo codec nào không được hoạt động ứng với thuê bao.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 97 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Allow: Khai báo codec nào được hoạt động ứng với thuê bao.
Cụ thể trong file /etc/asterisk/sip.conf cấu hình các extensions 100; 200 và
9 và một extensions mysipprovider với nhà cung cấp dịch vụ VoiP:
[100]
type=peer
username=thanhphu
host=dynamic
callerid="nguyen thanh phu"<100>
secret=100
call-limit=1
disallow=all
allow=gsm
allow=ulaw
allow=alaw
canreinvite=no
context=out1
mailbox=100@default
group=1
Callgroup=1
pickupgroup=1
barge_rooms=600
[200]
type=peer
username=thanhphuoc
host=dynamic
callerid="nguyen thanh phuoc"<200>
secret=200
call-limit=1
disallow=all
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 98 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
allow=gsm
allow=ulaw
allow=alaw
context=out
mailbox=200@default
group=1
Callgroup=1
pickupgroup=1
[9]
type=peer
host=dynamic
insecure=5062
qualify=yes
canreinvite=no
context=mainmenu
dtmfmode=inband
group=1
callgroup=1
pickupgroup=1
[mysipprovider]
type=peer
secret=34410933
username=65130964
host=202.134.16.90
fromuser=65130964
fromdomain=202.134.16.90
canrenvite=no
insecure=very
qualify=yes
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 99 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
disallow=all
allow=gsm
allow=ulaw
allow=alaw
allow=g729
nat=yes
qualify=yes
context=mainmenu
register => 65130964:34410933@202.134.16.90
Ở đây sử dụng dịch vụ của nhà cung cấp dịch vụ voice777 với số đăng ký là
65130964 và mật mã 34410933. Có thể đăng ký với nhà cung cấp khác với số đăng
ký và mật mã được cấp tương ứng với nhà cung cấp dịch vụ
5.5 Khai báo kênh IAX
Khai báo các kênh iax riêng cho softphone sử dụng giao thức IAX.
Sau đây là các thông số dành khai báo riêng cho từng kênh IAX.
- Name: đây là phần khai báo máy điện thoại extention IAX, có thể là ký tự
nhưng thường là các con số quay vì trên các phím điện thoại thường là các
con số mà thôi.
- Type: Kiểu kết nối thông tin user, peer hay friend
- Host : Địa chỉ IP hay tên miền mà client kết nối với kênh này thường
dùng giá trị là “dynamic” cho tất cả client kết nối đến.
- Secret : mật khẩu để sử dụng kênh này. Máy điện thoại phía client phải
khai báo trùng với thông số này thì mới sử dụng được.
- Context: Khai báo ngữ cảnh cho thuê bao.
- Mailbox: Khai báo hộp thư thoại cho thuê bao.
- Group: Khai báo nhóm cho thuê bao.
- Callgroup: Khai báo nhóm gọi cho thuê bao.
- Pickupgroup: Khai báo nhóm pick up cho thuê bao.
- Barge_rooms: Khai báo phòng hội nghị cho thuê bao.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 100 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Maxauthreq: Khai báo yêu cầu chứng thực cho thuê bao.
Cụ thể trong file /etc/asterisk/iax.conf cấu hình extensions 300 như sau:
[300]
type=friend
username=300
callerid="tin"<300>
host=dynamic
secret=300
maxauthreq=0
context=out
group=1
Callgroup=1
pickupgroup=1
mailbox=300@default
5.6 Cấu hình Softphone
5.6.1 Cấu hình Softphone Xlite.
Softphone Xlite sử dụng giao thức báo hiệu SIP. Cấu hình Softphone được
thực hiện theo các bước như sau:
- Bước 1. Chọn settings trên menu
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 101 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
click
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 102 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Bước 2. Thực hiện khai báo cấu hình các thông số của thuê bao:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 103 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
5.7.1 Cuộc gọi nội bộ giữa hai thuê bao sử dụng cùng giao thức báo hiệu
Hình 5.14: Mô hình thực hiện cuộc gọi nội bộ cùng giao thức
Khi một SoftPhone hay một Analog Phone cần gọi một Softphone hay một
Analog Phone sử dụng cùng giao thức báo hiệu, người sử dụng chỉ cần bấm số điện
thoại của Softphone hay Analog phone cần gọi.
Ví dụ: Softphone SIP 200 gọi analogphone 100 cùng chịu sự quản lý của
asterisk PBX thì việc xử lý cuộc gọi gồm các bước sau:
- Bước 1: Softphone SIP 200 quay số 100 và báo hiệu lên tổng đài asterisk
sử dụng giao thức SIP.
- Bước 2: Asterisk sẽ thông báo cho Analogphone 100 có cuộc gọi đến từ
Softphone 200 sử dụng giao thức SIP.
- Bước 3: Analogphone 100 ở trạng thái rỗi, nó báo hiệu cho asterisk server
biết nó có thể nhận được cuộc gọi sử dụng giao thức báo hiệu SIP.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 104 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Bước 4: Khi cả hai thuê bao đã sẵn sàng cho cuộc gọi, hai bên truyền
thông với nhau thông qua giao thức RTP.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 105 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
5.7.2 Cuộc gọi nội bộ giữa hai thuê bao sử dụng khác giao thức báo hiệu
Hình 5.16: Mô hình thực hiện cuộc gọi nội bộ khác giao thức
Khi một SoftPhone hay một Analog Phone cần gọi một Softphone hay một
Analog Phone sử dụng khác giao thức báo hiệu, người sử dụng chỉ cần bấm số điện
thoại của Softphone hay Analog phone cần gọi.
Ví dụ: Analogphone 100 gọi Softphone IAX 300 cùng chịu sự quản lý của
asterisk PBX thì việc xử lý cuộc gọi gồm các bước sau:
- Bước 1: Analogphone 100 quay số 300 và báo hiệu lên tổng đài asterisk
sử dụng giao thức SIP.
- Bước 2: Asterisk sẽ thông báo cho Softphone IAX 300 có cuộc gọi đến từ
Analog phone sử dụng giao thức báo hiệu IAX.
- Bước 3: Softphone IAX 300 ở trạng thái rỗi, nó báo hiệu cho asterisk
server biết nó có thể nhận được cuộc gọi sử dụng giao thức báo hiệu IAX.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 106 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
- Bước 4: Khi cả hai thuê bao đã sẵn sàng cho cuộc gọi, hai bên truyền
thông với nhau thông qua giao thức RTP.
5.7.3 Cuộc gọi ra ngoài PSTN
Ví dụ: Softphone SIP 200 cần gọi ra ngoài PSTN với số cần gọi là 8991768,
thì việc xử lí cuộc gọi gồm các bước sau:
- Bước 1: Softphone SIP 200 quay số 98991768 và báo hiệu lên tổng đài
asterisk sử dụng giao thức SIP.
- Bước 2: Asterisk sẽ thông báo cho cổng FXO có cuộc gọi ra ngoài PSTN
sử dụng giao thức IAX (đối với việc sử dụng card X100P gọi ra ngoài
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 107 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
PSTN) hoặc sử dụng giao thức SIP (đối với việc sử dụng Grandstream gọi
ra ngoài PSTN)
- Bước 3: Thuê bao PSTN khi ở trạng thái rỗi, FXO báo cho asterisk server
biết thuê bao PSTN có thể nhận được cuộc gọi sử dụng giao thức báo hiệu
IAX (đối với việc sử dụng card X100P) hoặc giao thức SIP (đối với việc sử
dụng Grandstream).
- Bước 4: Khi cả hai thuê bao đã sẵn sàng cho cuộc gọi, hai bên truyền
thông với nhau thông qua FXO.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 108 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
dung như sau: “ Chào mừng bạn đến với công ty chúng tôi, bấm số 1 để gặp số 100,
bấm số 2 để gặp số 200, bấm số 3 để gặp số 300, để tham gia hội nghị với chúng
tôi, bấm số 9, để sử dụng dịch vụ DISA bấm số 000”. Ngoài ra hệ thống cũng được
lập trình cho thuê bao bên ngoài bấm thẳng vào số máy nhánh nếu biết số của máy
nhánh.
Hệ thống sẽ tự động trả lời lặp lại 3 lần nếu không có sự tương tác nào của
thuê bao gọi đến, sau đó hệ thống sẽ hủy kết nối.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 109 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 110 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Để khai báo hôp thư thoại cho thuê bao, ta cấu hình trong file voicemail.conf
ở đường dẫn /etc/asterisk/voicemail.conf như sau:
300=>300,thanhphuoc,empty_dream2000@yahoo.com
100=>100,thanhphu,tieuphuphu2005@yahoo.com
200=>200,thanhphong,best_lionh@yahoo.com
Trong đó
- 300: tên mailbox
- 300: password của mailbox
- thanhphuoc: tên người sử dụng
- empty_dream2000@yahoo.com: địa chỉ mail của người sử dụng
Ngoài ra còn cấu hình trong file sip.conf và iax.conf như đã khai báo ở trên.
Lúc này các cuộc gọi sẽ được lưu vào mailbox của thuê bao.
Thuê bao muốn nghe thư thoại và thực hiện các tương tác sẽ bấm số 123 để
xem mail hoặc thực hiện đăng nhập được cấu hình trong file extensions.conf:
[mailbox]
exten=>123,1,VoiceMailMain(s${CALLERID(num)})
exten=>123,2,Hangup
Khi nghe lời chào, thuê bao thực hiện các tương tác:
Ấn số 1: để nghe.
Ân số 2: nghe mail trước đó
Ân số 3: ngừng
Ấn số 4: nâng cao
Ấn số 5: lặp lại
Ấn số 6: tiếp theo
Ấn số 7: xóa
Ấn số 8: chuyển tiếp
Ấn số 9: lưu
Để lưu messages ta ấn số 9 với :
Số 0 :new
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 111 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Số 1: old
Số 2: work
Số 3: family
Số 4: friend
5.8.3 Call Forwarding (chuyển cuộc gọi)
Chuyển cuộc gọi là tính năng hay được sử dụng trong bất kỳ hệ thống điện
thoại nào cho phép thuê bao tự cài đặt khi cần thiết.
Có nhiều trường hợp để chuyển cuộc gọi bao gồm:
- Chuyển cuộc gọi tức thời
- Chuyển cuộc gọi khi máy đang bận
- Chuyển cuộc gọi khi không trả lời
5.8.3.1 Chuyển cuộc gọi tức thời
Chuyển cuộc gọi tức thời là dịch vụ cho phép thuê bao chuyển cuộc gọi đến
một số máy nào đó đã được cài đặt trước khi có một số gọi vào thuê bao đó. Trong
hệ thống để thực hiện dịch vụ này thuê bao cần thực hiện như sau:
- Để kích hoạt dịch vụ chuyển cuộc gọi tức thời: bấm số *21#xxxxxx
trong đó xxxxxxx là số điện thoại mà thuê bao muốn chuyển đến, sau đó sẽ
nghe thông báo đã kích hoạt dịch vụ này và số mà thuê bao muốn chuyển
đến.
- Để hủy bỏ dịch vụ chuyển cuộc gọi tức thời: bấm số #21#, sau đó sẽ
nghe thông báo đã hủy dịch vụ này.
Việc cấu hình trong file /etc/asterisk/extensions đuợc thực hiện như sau:
[F_INM]
;Kích hoạt dịch vụ
exten => _#21*X.,1,set(DB(CFIM/${CALLERID(num)})=${EXTEN:4})
exten =>_#21*X.,n,playback(inm-o);phát thông báo
exten => _#21*X.,n,Saydigits(${EXTEN:4});phát số muốn chuyển
exten =>_#21*X.,n,playback(auth-thankyou);phát lời cảm ơn
exten => _#21*X.,n,Hangup;Hủy kết nối
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 112 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.20: Các bản tin khi thực hiện chuyển cuộc gọi tức thời
5.8.3.2 Chuyển cuộc gọi khi bận
Chuyển cuộc gọi khi bận là dịch vụ cho phép thuê bao chuyển cuộc gọi đến
một số máy nào đó đã được cài đặt trước khi có một số gọi vào thuê bao đó nhưng
thuê bao này đang bận. Trong hệ thống để thực hiện dịch vụ này thuê bao cần thực
hiện như sau:
- Để kích hoạt dịch vụ chuyển cuộc gọi khi bận: bấm số *61#xxxxxx
trong đó xxxxxxx là số điện thoại mà thuê bao muốn chuyển đến, sau đó sẽ
nghe thông báo đã kích hoạt dịch vụ này và số mà thuê bao muốn chuyển
đến.
- Để hủy bỏ dịch vụ chuyển cuộc gọi khi bận: bấm số #61#, sau đó sẽ
nghe thông báo đã hủy dịch vụ này.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 113 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Việc cấu hình trong file /etc/asterisk/extensions đuợc thực hiện như sau:
[F_BSY]
;Kích hoạt dịch vụ
exten => _#61*X.,1,set(DB(CFIM/${CALLERID(num)})=${EXTEN:4})
exten =>_#61*X.,n,playback(inm-o);phát thông báo
exten => _#61*X.,n,Saydigits(${EXTEN:4});phát số muốn chuyển
exten =>_#61*X.,n,playback(auth-thankyou);phát lời cảm ơn
exten => _#61*X.,n,Hangup;Hủy kết nối
exten => #61#,1,set(DB(CFIM/${CALLERID(num)})=0);hủy bỏ dịch vụ
exten => #61#,n,playback(inm-no);phát thông báo
exten => #61#,n,playback(auth-thankyou);phát lời cảm ơn
exten => #61#,n,Hangup;Hủy kết nối
Hình 5.21: Các bản tin khi thực hiện chuyển cuộc gọi khi bận
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 114 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 115 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.22: Các bản tin thực hiện chuyển cuộc gọi khi không trả lời
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 116 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.23: Các bản tin khi thực hiện dịch vụ transfer
5.8.5 Call Parking
Call Parking là dịch vụ thực hiện chuyển cuộc gọi có quản lý. Nguyên lý
hoạt động của nó như sau:
Ví dụ : Số bên ngoài 8991768 gọi cho số 200 và nhờ chuyển máy để được
gặp số 300. Khi đó số 200 sẽ thực hiện các bước như sau:
- Bước 1. Quay số #700 một con số parking sẽ được thông báo cho số 300
trong trường hợp này là 701.
- Bước 2. Số 200 gác máy (trong lúc này số bên ngoài sẽ nghe nhạc) và gọi
đến cho số 300 thông báo cho số đó biết là có một cuộc gọi đang đợi số 300
trên số parking 701.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 117 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 118 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 119 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.24: Các bản tin khi thực hiện dịch vụ call parking
5.8.6 Call Pickup
Call pickup là dịch vụ cho phép chúng ta nhận cuộc gọi từ xa trong cùng một
nhóm hay nhận cuộc gọi từ một máy điện thoại đang rung chuông bất kỳ.
Bất kỳ số điện thoại nào trong cùng một nhóm với các thông số callgroup và
pickupgroup giống nhau đều có thể nhận cuộc gọi khác trong cùng nhóm đó. Các
thông số này được cấu hình trong file /etc/asterisk/sip.conf khi khai báo tạo tài
khoản user đã được cấu hình ở trên. Cách hoạt động nó như sau: ví dụ một thuê bao
trong mạng PSTN gọi vào số 200, số 200 đang rung chuông, số 100 có cùng
calllgroup và pickupgroup với 200 muốn bắt máy và đàm thoại với thuê bao trong
mạng PSTN, khi đó thuê bao 100 sẽ bấm: 7200.
Cấu hình trong file /etc/asterisk/extensions.conf với ngữ cảnh pickup như
sau:
[pickup]
exten => _7.,1,SET(GLOBAL(PICKUPMARK)=${EXTEN:1})
exten => _7.,n,Pickup(${EXTEN:2}@PICKUPMARK);7 là số callpickup
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 120 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.25: Các bản tin khi thực hiện dịch vụ call pickup
5.8.7 Meetme (chức năng hội nghị)
Chức nă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 “room”, Asterisk cho phép tạo ra nhiều phòng hội thoại “room” 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í.
Để sử dụng hội nghị, thuê bao nội bộ cần bấm số 555, nghe thông báo mời nhập mật
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 121 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
khẩu (600), sau khi nhập mật khẩu đúng sẽ nghe lời gọi cảm ơn và bây giờ thuê bao
có thể tham gia hội nghị.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 122 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
MeetMe([confno][,[options][,pin]])
Trong đó:
Confno con số của phòng hội thoại nếu thông số này không khai báo thì khi
đăng nhập hệ thống sẽ yêu cầu nhập vào.
Pin số mật khẩu đăng nhập.
Options là thông số lựa chọn không có hoặc có nhiều thông số kết hợp với
nhau để xác định một số chức năng hoạt động của phòng hội thoại, các chức năng
có thể liệt kê ra như sau:
'm' – Người tham gia hội thoại chỉ nghe không được nói chuyện.
't' – Người hội thoại chỉ nói không được nghe.
'i' – Phát thông báo có người kết nối hay rời khỏi hàng đợi.
'p' – Thuê bao có thể rời khỏi phòng hội thoại bằng cách nhấn phím #.
'X' – Thuê bao có thể thoát khỏi phòng hội thoại bằng cách nhập vào
extention hợp lệ tại ngữ cảnh ${MEETME_EXIT_CONTEXT }, nếu biến này không
được thiết lập thì sử dụng extention trong ngữ cảnh hiện tại.
'd' – Thêm động vào phòng hội thoại không cần thiết lập số Pin.
'D' – Thêm động vào phòng hội thoại phải cần thiết lập số Pin.
'e' – Chọn phòng hội thoại trống đầu tiên.
'E' – Chọn phòng hội thoại trống đầu tiên không cần số Pin.
'v' – Hội thoại với chế độ Video.
'r' – Nếu chức năng này được chọn thì cuộc đàm thoại trong phòng hội thoại
sẽ được thu âm với định dạng tập tin ${MEETME_RECORDINGFORMAT} và lưu
vào vị trí ${MEETME_RECORDINGFILE}.
'q' – Không phát âm thanh khi có thuê bao vào/rời khỏi phòng hội thoại.
'C' – Khi thuê bao vào phòng hội thoại sẽ được thông báo có bao nhiêu thuê
bao đang trong phòng.
'M' – Thiết lập thông số này để phát ra âm nhạc khi trong phòng hội thoại
chỉ có một người.
'x' – Đóng phòng hội thọai khi thuê bao “Chủ” đã thoát phòng hội thoại.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 123 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
'w' – Đợi cho đến khi thuê bao “Chủ” đến phòng hội thoại.
'b' – Chạy AGI script để thiết lập biến
{MEETME_AGI_BACKGROUND},script mặc định là conf-background.agi
's' – Vào menu (user and administrator) khi nhấn phím *.
'a' – Thiết lập chế độ Admin.
'A' – Thiết lập chế độ “Chủ” .
'P' – Luôn luôn hỏi số Pin ngay cả đã chỉ định trong đối số hàm ứng dụng
meetme().
Các Biến sử dụng trong hàm ứng dụng Meetme()
${MEETME_RECORDINGFILE} – Tập tin thu âm cuộc hội thoại ( option 'r'
).
${MEETME_RECORDINGFORMAT} – Định dạng tập tin thu âm(gsm, wav,
...).
${MEETME_EXIT_CONTEXT} – Ngữ cảnh thoát ra từ phòng hội thoại.
${MEETME_AGI_BACKGROUND} – AGI script .
${MEETMESECS} – Số giây thuê bao trong phòng hội thoại.
Dưới đây là nội dung file cấu hình với ngữ cảnh Meetme:
[Meetme]
exten => 999,1,Answer
exten => 999,2,Wait(1)
exten => 999,3,Authenticate(600)
exten => 999,4,MeetMe(600)
exten => 999,5,Playback(conf-thereare)
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 124 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 125 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 126 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Hình 5.27: Các bản tin khi thực hiện chức năng hội nghị
5.8.8 DND (Do not Disturb - Dịch vụ chống làm phiền )
Dịch vụ này có thể cho phép thuê bao không nhận tất cả các cuộc gọi đến khi
thuê bao kích hoạt dịch vụ, khi đó tất cả các cuộc gọi đến thuê bao sẽ được chuyển
đến voicemail. Để kích hoạt dịch vụ, thuê bao bấm số *113, nghe phát thông báo
“Bạn đã kích hoạt dịch vụ chống làm phiền”. Để hủy dịch vụ DND, thuê bao chỉ
cần bấm lại số *113, nghe phát thông báo “Bạn đã hủy dịch vụ chống làm phiền”.
Việc cấu hình chi tiết được thực hiện trong file etc/asterisk/extensions.conf
với ngữ cảnh DND.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 127 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[DND]
;Dịch vụ đã kích hoạt?
exten => *113,1,gotoif($[${DB(dnd/${CALLERID(num)})} = 1]?dn1:dn)
;Kích hoạt dịch vụ
exten => *113,n(dn),set(DB(dnd/${CALLERID(num)})=1)
exten => *113,n,Answer
exten => *113,n,playback(dnd-o); phát lời gọi
exten => *113,n,playback(auth-thankyou)
exten => *113,n,Hangup;Hủy kết nối
exten => *113,n(dn1);Answer
exten => *113,n,set(DB(dnd/${CALLERID(num)})=0);Hủy dịch vụ
exten => *113,n,playback(dnd-no);phát lời gọi
exten => *113,n,playback(auth-thankyou)
exten => *113,n,Hangup
5.8.9 DISA (Direct Inward System Access)
Dịch vụ cho phép thuê bao ở ngoài có thể sử dụng các dịch vụ mà thuê bao
nội bộ trong mạng có thể có. Đây là một tính năng vượt trội của asterisk so với giá
thành của nó. Ví dụ như một người ở nhà và muốn làm việc với đối tác ở nước
ngoài, nhưng đây là công việc của công ty và anh ta muốn sử dụng đường line điện
thoại công ty để giao dịch. Đối với asterisk, sử dụng giải pháp DISA có thể giải
quyết vấn đề này một cách dễ dàng. Như vậy người này có thể sử dụng cuộc gọi
tính cước nội hạt đối với anh ta nhưng vẫn có thể gọi ra quốc tế.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 128 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 129 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 130 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 131 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Asterisk không nạp danh sách các Sip peer/Sip User vào bộ nhớ. Khi có một
cuộc gọi tới( incoming call) một extension do Asterisk quản lý được Asterisk tìm
kiếm trong bảng( có chức năng tương tự SIP.conf) của Database đã được định
hướng trong file SIP.conf.
Asterisk sẽ nạp cả dòng (record) chứa extension vào bộ nhớ. Đồng thời tiếp
tục thực hiện hàm ứng dụng application đã được khai báo trong bảng chứa dialplan,
được định hướng trong file extension.conf và file sip.conf. Cuộc gọi được thiết lập.
Khi một trong 2 bên truyền thông phát ra lệnh hangup thì Asterisk sẽ phát tín
hiệu kết thúc kênh truyền thông giữa 2 thiết bị đầu cuối và xóa Record đã nạp vào
bộ nhớ. Như vậy, Asterisk tra cứu Extension theo kiểu thời gian thực trái với trước
kia là nó load tất cả các extension trong file sip.conf vào bộ nhớ.
Để thực hiện được dịch vụ này, ta phải tiến hành cài đặt và cấu hình
Asterisk-addons.1.4.x và Mysql server. Đây là dịch vụ cộng thêm không có sẵn
trong asterisk phải cài đặt thêm và chúng ta cần có một chương trình cơ sở dữ liệu
để lưu các dữ liệu đáp ứng thời gian thực của asterisk, ở đây chúng ta dùng mysql.
Các bước tiến hành cài đặt được tiến hành như sau:
Bước 1: download gói Asterisk-addons.1.4.x tại http://asterisk.org và untar
vào thư mục /usr/src
Để đảm bảo gói Addon được cài đặt đúng, ta thực hiện lệnh
#ln –s /usr/src/asterisk-1.4.x /usr/src/asterisk
Chuyển đường dẫn vào thư mục asterisk-addons1.4.x và tiến hành cài đặt
#cd /usr/src/asterisk-addons1.4.x
#make clean
#make install
Bước 2: kiểm tra xem đã cài đặt Mysql server chưa, nếu chưa thì tiến hành
download và cài đặt Mysql server và các thư viện kèm theo: libdbi-dbd-mysql,
mysql-connector-odbc-3.51.12-2.2, mysql-libs, mysql, mysql-server, mysql-devel
Bước 3: cấu hình các file trong thư mục asterisk:
* File /etc/asterisk/res_mysql.conf:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 132 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[general]
dbhost = localhost
dbname = asterisk
dbuser = root
dbpass = 123
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
* File /etc/asterisk/extconfig.conf:
sipusers => mysql, asterisk,sip_buddies
sippeers => mysql, asterisk,sip_buddies
extensions => mysql, asterisk,extensions
* File /etc/asterisk/sip.conf
[general]
rtcachefriends=yes
* File /etc/asterisk/extensions.conf
[default]
switch => Realtime/default@extensions
Bước 4: tạo database và các bản tương ứng:
- Khởi động mysql : /etc/rc.d/init.d/mysqld start
- SET lại password cho truy cập tới Mysql cho user root: SET PASSWORD
FOR root@localhost = ‘123’
- Đăng nhập vào mysql : mysql –u root –p 123
- Tạo cở sở dữ liệu mới : creat database asterisk; use asterisk;
- Tạo ra các bảng để chứa cơ sở dữ liệu : create tables Sip_buddies và
Iax_buddies
CREATE TABLE ` Sip_buddies ` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(80) NOT NULL default '',
`canreinvite` char(3) default 'yes',
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 133 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 134 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Bước 5: ta có thể tạo được user thông qua database của asterisk bằng cách
thêm dữ liệu vào table Sip_buddies và Iax_buddies
INSERT INTO Sip_buddies (
name,canreinvite,context,dtmfmode,host,port,type,username,secret)
VALUES ('105','no','default','rfc2833','dynamic','yes',’friend’, '105','105');
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 135 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
để lưu các nhật ký cuộc gọi. Việc cài đặt và cấu hình CDR được cấu hình theo các
bước sau:
Bước 1: cấu hình trong file /etc/asterisk/cdr_mysql.conf
[global]
hostname=localhost
dbname=asterisk
password=123
passworduser=asterisklog
uniqueid=yes
Bước 2: tạo bảng `table cdr` lưu trữ database chi tiết cuộc gọi ở mysql và
reload lại asterisk:
CREATE TABLE `cdr` (
`id` int(11) NOT NULL auto_increment,
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
PRIMARY KEY (`id`);
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 136 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
<?php
echo"<image src='http://192.168.1.3/asterisk.gif '>";
?>
<html>
<head>
<title>Asterisk with CDR</title>
<style>
.title {
FONT-WEIGHT: bold;
FONT-SIZE: 30px;
COLOR: #003063;
}
</style>
</head>
<body>
<?
$dbuser = 'root';
$dbhost = 'localhost';
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 137 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
$dbpass = '123';
$dbname = 'asterisk';
$dbtable = 'cdr';
$mysql_link = mysql_connect('localhost','root','123');
$column = mysql_list_fields($dbname, $dbtable, $mysql_link);
$sql = "SELECT * FROM $dbtable";
$result = mysql_db_query($dbname,$sql);
?>
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 138 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
<TR>
<TD Color = red vAlign=top align=center>
Thực hiện: Nguyễn Thanh Hiếu-Nguyễn Thanh Phước</color=redTD>
</TR>
</table>
</body>
</html>
Để có thể hiển thị giao diện web thì bắt buộc asterisk server phải cài Apache
để có thể truy cập và hiển thị trang web từ asterisk server.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 139 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
tham gia vào mạng IP, điện thoại sử dụng giao thức SIP và điện thoại sử dụng giao
thức IAX.
Trước hết cần tạo ra ngữ cảnh gọi đến đối với thuê bao nội bộ, vì các thuê
bao nội bộ không chỉ đơn thuần sử dụng chuyển mạch thông thường mà còn tích
hợp các dịch vụ, do vậy việc cấu hình phải kết hợp kèm các dịch vụ. Giả sử khi có
một số gọi đến thuê bao nội bộ nào đó, trước hết chúng ta cần xét xem thuê bao đó
có kích hoạt dịch vụ DND hay không?Kế đến chúng ta phải xét xem thuê bao có
kích hoạt chuyển cuộc gọi hay không, nếu có thì phải thực hiện dịch vụ, nếu không
thì thực hiện chuyển mạch bình thường. Bởi vì mỗi thuê bao sử dụng giao thức khác
nhau thì việc cấu hình đôi khi có sự khác biệt. Vì vậy ở đây chúng ta sẽ tạo ra 3 ngữ
cảnh: [local_IAX] - ứng với ngữ cảnh gọi đến đối với điện thoại sử dụng giao thức
IAX, [local_SIP]- ứng với ngữ cảnh gọi đến đối với điện thoại sử dụng giao thức
SIP, [local_analog] - ứng với ngữ cảnh gọi đến đối với điện thoại analog. Việc cấu
hình trong file /etc/asterisk/extensions.conf được thực hiện như sau:
[local_IAX]
exten => _3xx,1,Set(COUNT1=${EXTEN})
exten => _3xx,n,gotoif($[${DB(dnd/${EXTEN})} = 1]?NBSY1:N1)
exten => _3xx,n(N1),set(GROUP()=${CALLERID(num)})
exten => _3xx,n,Set(GROUP()=${EXTEN})
exten => _3xx,n,NoOP(Group count is ${GROUP_COUNT()}, group is
${GROUP()}, exten is ${EXTEN})
exten => _3xx,n,GotoIf($[${GROUP_COUNT()} > 1]?BSY:NBSY)
exten => _3xx,n(NBSY),Set(TEMP=${DB(CFIM/${COUNT1})})
exten => _3xx,n,GotoIf(${TEMP}?IM:NIM)
exten => _3xx,n(IM),GotoIf($[${TEMP} < 201]?CS2:IM2)
exten => _3xx,n(IM2),GotoIf($[${TEMP} < 401 ]?CS1:CS3)
exten =>_3xx,n(CS1),Dial(IAX2/${TEMP}/@${TEMP},20,tT) ; Chuyển tức thời
exten => _3xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _3xx,n(CS2),Dial(SIP/${TEMP},20,tT)
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 140 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[local_analog]
exten => _1xx,1,Set(COUNT1=${EXTEN})
exten => _1xx,n,set(GROUP()=${CALLERID(num)})
exten => _1xx,n,gotoif($[${DB(dnd/${EXTEN})} = 1]?NBSY2:N2)
exten => _1xx,n(N2),NoOP(Group count is ${GROUP_COUNT()}, group is
${GROUP()}, exten is ${EXTEN})
exten => _1xx,n,Set(TEMP=${DB(CFIM/${COUNT1})})
exten => _1xx,n,GotoIf(${TEMP}?IM1:NIM1)
exten => _1xx,n(IM1),GotoIf($[${TEMP} < 201]?CS2:IM2)
exten => _1xx,n(IM2),GotoIf($[${TEMP} < 401 ]?CS1:CS3)
exten => _1xx,n(CS1),Dial(IAX2/${TEMP}/@${TEMP},20,tT) ; Chuyển tức thời
exten => _1xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _1xx,n(CS2),Dial(SIP/${TEMP},20,tT)
exten => _1xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _1xx,n(CS3),goto(out,${TEMP},1)
exten => _1xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _1xx,n(NIM1),NoOp("Khong chuyen tuc thoi, thuc hien binh thuong")
exten => _1xx,n,Dial(SIP/${EXTEN},20,rtT) ;
exten => _1xx,n,Goto(exithandling,s-${DIALSTATUS},1) ;
exten => _1xx,n(NBSY2),goto(exithandling1,s-BUSY,1)
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 141 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[local_SIP]
exten => _2xx,1,Set(COUNT1=${EXTEN})
exten => _2xx,n,set(GROUP()=${CALLERID(num)})
exten => _2xx,n,gotoif($[${DB(dnd/${EXTEN})} = 1]?NBSY2:N2)
exten => _2xx,n(N2),NoOP(Group count is ${GROUP_COUNT()}, group is
${GROUP()}, exten is ${EXTEN})
exten => _2xx,n,Set(TEMP=${DB(CFIM/${COUNT1})})
exten => _2xx,n,GotoIf(${TEMP}?IM1:NIM1)
exten => _2xx,n(IM1),GotoIf($[${TEMP} < 201]?CS2:IM2)
exten => _2xx,n(IM2),GotoIf($[${TEMP} < 401 ]?CS1:CS3)
exten => _2xx,n(CS1),Dial(IAX2/${TEMP}/@${TEMP},20,tT) ; Chuyển tức thời
exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _2xx,n(CS2),Dial(SIP/${TEMP},20,tT)
exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _2xx,n(CS3),goto(out,${TEMP},1)
exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1)
exten => _2xx,n(NIM1),NoOp("Khong chuyen tuc thoi, thuc hien binh thuong")
exten => _2xx,n,Dial(SIP/${EXTEN},3,rtT) ;
exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1) ;
exten => _2xx,n(NBSY2),goto(exithandling1,s-BUSY,1)
[exithandling]
; this is just my exit handler. the important thing is in queue-to-agent context
exten => s-NOANSWER,1,NoOP(There was no answer to call from
${CALLERID(num)})
exten => s-NOANSWER,n,Set(TEMP=${DB(CFAS/${COUNT1})})
exten => s-NOANSWER,n,GotoIf(${TEMP}?AS:NAS)
exten => s-NOANSWER,n(AS),gotoIf($[${TEMP} < 201]?CS2:IM2)
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 142 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 143 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
[exithandling1]
; this is just my exit handler. the important thing is in queue-to-agent context
exten => s-NOANSWER,1,NoOP(There was no answer to call from
${CALLERID(num)})
exten => s-NOANSWER,n(NAS),VoiceMail(${COUNT1}@default)
exten => s-NOANSWER,n,playback(vm-goodbye)
exten => s-NOANSWER,n,Wait(2)
exten => s-NOANSWER,n,Hangup()
exten => s-BUSY,1,NoOP(Extension busy, call from ${CALLERID(num)})
exten => s-BUSY,n(NBS2),VoiceMail(${COUNT1}@default)
exten => s-BUSY,n,playback(vm-goodbye)
exten => s-BUSY,n,Wait(2)
exten => s-BUSY,n,Hangup()
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 144 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Kế đến, chúng ta phải xây dựng ngữ cảnh gọi đi cho các thuê bao, tùy vào ý
tưởng và nhu cầu của thuê bao mà người quản trị cho phép thuê bao sử dụng dịch
vụ nào. Ví dụ, thuê bao này có thể sử dụng dịch vụ DND nhưng thuê bao khác lại
không, tất cả đều có thể thực hiện trong dial plan. Ở trong hệ thống này giả sử các
thuê bao đều sử dụng tất cả các dịch vụ được xây dựng. Ta giả sử trong hệ thống
thuê bao 200 và 300 đều có thể gọi ra ngoài bằng 2 line PSTN còn thuê bao 100 chỉ
được phép sử dụng line X100P của hệ thống. Tất cả các thuê bao đều có thể gọi ra
ngoài internet do nhà cung cấp dịch vụ VoIP cung cấp. Tạo ra hai ngữ cảnh [out] và
[out1] tương ứng với ý tưởng trên. Việc cấu hình trong file
/etc/asterisk/extensions.conf được thực hiện như sau:
[out]
exten => _8.,1,Dial(SIP/${EXTEN:1}@mysipprovider,30,rtT)
exten => _9.,1,SET(COUNT1=${EXTEN})
exten => _9.,n,Dial(SIP/${EXTEN:1}@9,20)
exten => _9.,n,Goto(s-${DIALSTATUS\,1)
exten => s-NOANSWER,1,Hangup()
exten => s-BUSY,1,Dial(Zap/1/${COUNT1:1})
exten => s-CHANUNAVAIL,1,Noop(No Answer)
exten =>s-CHANUNAVAIL,2,hangup()
include=>parkedcalls
include=>DND
include=>Parked
include=>Meetme
include=>pickup
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 145 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
include=>mailbox
include=>F_INM
include=>F-BSY
include=>F-NSWR
include=>local_analog
include=>local_IAX
include=>local_SIP
[out1]
exten => _8.,1,Dial(SIP/${EXTEN:1}@mysipprovider,30,rtT)
exten => _9.,1,Dial(Zap/1/${EXTEN:1})
include=>parkedcalls
include=>DND
include=>Parked
include=>Meetme
include=>pickup
include=>mailbox
include=>F_INM
include=>F-BSY
include=>F-NSWR
include=>local_analog
include=>local_IAX
include=>local_SIP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 146 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
KẾT LUẬN
Sau một thời gian nghiên cứu và thực hiện, phần lý thuyết cũng như việc cấu
hình các dịch vụ của tổng đài mềm Asterisk được chúng em thực hiện khá đầy đủ và
chi tiết. Cụ thể:
* Phần lý thuyết:
- Tìm hiểu hệ thống asterisk, cách cài đặt và cấu hình và các dịch vụ liên
quan.
- Thực hiện mô hình ứng dụng thực tế: cuộc gọi trong nội mạng và cuộc gọi
ra ngoài PSTN và ngược lại.
- Cấu hình hầu hết các dịch vụ mà một tổng đài IP hiện đại có sẵn như:
IVR, voicemail, fordward, transfer, conference, call pickup, call parking,
DISA, do not disturb, Asterisk realtime architecture, Call detail record.
* Khả năng ứng dụng của đề tài: cung cấp ứng dụng cho các công ty vừa
và nhỏ là rất lớn
* Hạn chế: do hạn chế về thiết bị cũng như thời gian chuẩn bị nên trong mô
hình thực hiện đôi lúc xảy ra các sự cố sau:
- Đôi khi xảy ra trễ giữa đầu cuối với đầu cuối
- Việc ngắt kết nối với PSTN đôi lúc gặp trục trặc do chức năng của
gateway.
* Hướng phát triển đề tài: nghiên cứu phát triển và thực hiện các mô hình
đa site. Xây dựng dịch vụ tính cước cho doanh nghiệp. Đây là mô hình sử dụng
nhiều trong thực tế đối với các công ty lớn có nhiều chi nhánh.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 147 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Tiếng Việt:
1. Công nghệ VoIP và các giải pháp nâng cao chất lượng dịch vụ - NXB Bưu
điện.
2. Công nghệ thoại IP và ứng dụng trên mạng viễn thông Việt Nam – Tổng Cục
Bưu Điện Việt Nam
Tiếng Anh:
1. O'Reilly - Asterisk The Future Of Telephony 2005Voice over IP
Fundamentals (2nd Edition), Cisco Press, 2006
2. IP Telephony (2nd Edition), Cisco Press, 2006
3. Packt Publishing.Building.Telephony.Systems.with.Asterisk.2006
4. VoIP for Dummies by Timothy Kelly
Một số trang web tham khảo:
http://www.asteriskguru.com/tutorials/asterisk_voip_ipphone.html
http://my.opera.com/asteriskvn/blog/index.dml
http://www.voip-info.org/wiki-Asterisk+config+files
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 148 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
PHỤ LỤC
PHỤ LỤC 1: CÀI ĐẶT FEDORA CORE 5
Thực hiện khởi động từ đĩa cài Fedora Core 5, giao diện cài đặt sẽ như hình dưới:
Có thể mất một vài phút để kiểm tra đĩa cài Fedora Core 5. Chọn “Skip” để
bỏ qua việc kiểm tra này.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 149 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Màn hình chào của Fedora Core 5 xuất hiện, nhấn “Next” để tiếp tục cài đặt.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 150 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Nếu cài đặt Fedora trên một máy tính mới, chưa cài bất cứ hệ điều hành nào
khác thì sẽ chọn “yes” để format toàn bộ ổ cứng và cài duy nhất hệ điều hành
Fedora Core 5 nên máy tính.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 151 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Tiếp tục sẽ là quá trình lập các phân vùng dành cho việc cài đặt Fedora Core 5.
Tiếp đến là quá trình cài đặt địa chỉ IP, chấp nhận lựa chọn mặc định , nhấn “Next”
để tiếp tục:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 152 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 153 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Tiếp theo là bước chọn các gói để cài, chọn những gói cần thiết tuỳ vào mục
đích sử dụng, ở đây để có thể cài đặt máy tính trở thành Asterisk Server, ta nên
chọn 2 lựa chọn là “Web Server” và “Software Development”.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 154 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 155 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Quá trình cài đặt kết thúc, khởi động lại hệ thống để hoàn tất việc cài đặt.
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 156 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 157 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 158 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
PHỤ LỤC 3: HƯỚNG DẪN SỬ DỤNG PHẦN MỀM BẮT GÓI ETHEREAL
Download phần mềm Ethereal hoặc phiên bản mới hơn được chuyển tên
thành Wireshark và tiến hành cài đặt. Sau khi cài xong ta có giao diện Ethereal như
hình bên dưới. Để tiến hành bắt gói ta vào giao diện Interface trên menu Capture:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 159 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Thực hiện việc lọc gói để xem cách thức hoạt động của cuộc gọi VoIP thông
qua chức năng VoIP Calls ở menu Statistics:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 160 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
Dùng chức năng Graph để tiến hành phân tích các bản tin trong cuộc gọi
VoIP:
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 161 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 162 -
ĐỒ ÁN TỐT NGHIỆP TỔNG ĐÀI IP
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG
NGUYỄN THANH PHƯỚC - 163 -