Tải bản đầy đủ (.pdf) (94 trang)

XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP TRÌNH PHPAGI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.11 MB, 94 trang )

- i -
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN VIỄN THÔNG
___oOo___





BÁO CÁO LUẬN VĂN TỐT NGHIỆP:

XÂY DỰNG CÁC DỊCH VỤ TỔNG
ĐÀI ASTERISK DỰA TRÊN LẬP
TRÌNH PHPAGI



SVTH: Phạm Cao Cường MSSV: 40700306
Nguyễn Minh Huy MSSV: 40700942
GVHD: TS Nguyễn Minh Hoàng


Thành phố Hồ Chí Minh – 2011

- ii -
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐH BÁCH KHOA CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Thành phố Hồ Chí Minh Độc Lập – Tự Do – Hạnh Phúc
     


Số:______/BKĐT
Khoa: Điện – Điện tử
Bộ Môn: Viễn Thông

NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP

Họ và tên: PHẠM CAO CƯỜNG MSSV: 40700306
Họ và tên: NGUYỄN MINH HUY MSSV: 40700942
Ngành: VIỄN THÔNG LỚP: DD07DV1

1. Đề tài: XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP
TRÌNH PHPAGI
2. Nhiệm vụ ( Yêu cầu về nội dung và số liệu ban đầu):









3. Ngày giao nhiệm vụ luận văn:
4. Ngày hoàn thành nhiệm vụ:
5. Họ và tên người hướng dẫn: Phần hướng dẫn


Nội dung và yêu cầu LVTN đã đƣợc thông qua Bộ Môn.
Ngày tháng năm 2012
CHỦ NHIỆM BỘ MÔN NGƢỜI HƢỚNG DẪN CHÍNH

(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)





PHẦN DÀNH CHO KHOA, BỘ MÔN:
Ngƣời duyệt (chấm sơ bộ):
Đơn vị:
Ngày bảo vệ:
Điểm tổng kết:
Nơi lƣu trữ luận văn:
- iii -
TRƢỜNG ĐH BÁCH KHOA CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ Độc Lập – Tự Do – Hạnh Phúc
o0o
Ngày tháng năm 2012

PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho ngƣời hƣớng dẫn/phản biện)

Họ và tên: PHẠM CAO CƯỜNG MSSV: 40700306
Họ và tên: NGUYỄN MINH HUY MSSV: 40700942
Ngành: VIỄN THÔNG LỚP: DD07DV1
1. Đề tài: XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP
TRÌNH PHPAGI
2. Họ tên ngƣời hƣớng dẫn: TS. NGUYỄN MINH HOÀNG
3. Tổng quát về bản thuyết minh:
Số trang Số chƣơng
Số bảng số liệu Số hình vẽ

Số tài liệu tham khảo Phần mềm tính toán
4. Tổng quát về các bản vẽ:
- Số bản vẽ: bản A1 bản A2 khổ khác
- Số bản vẽ tay số bản vẽ trên máy tính
5. Những ƣu điểm chính của LVTN:




6. Những thiếu sót chính của LVTN:




7. Đề nghị: Đƣợc bảo vệ , Bổ sung thêm để bảo vệ ,
Không đƣợc bảo vệ .
8. 3 câu hỏi sinh viên trả lời trƣớc Hội Đồng:
a)

b)

c)

9. Đánh giá chung (bằng chữ: giỏi, khá, TB): Điểm …………………….


Ký tên (ghi rõ họ tên)


- iv -

TRƢỜNG ĐH BÁCH KHOA CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ Độc Lập – Tự Do – Hạnh Phúc
o0o
Ngày tháng năm 2012

PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho ngƣời hƣớng dẫn/phản biện)

Họ và tên: PHẠM CAO CƯỜNG MSSV: 40700306
Họ và tên: NGUYỄN MINH HUY MSSV: 40700942
Ngành: VIỄN THÔNG LỚP: DD07DV1
1. Đề tài: XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP
TRÌNH PHPAGI
2. Họ tên ngƣời hƣớng dẫn: TS. NGUYỄN MINH HOÀNG
3. Tổng quát về bản thuyết minh:
Số trang Số chƣơng
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Phần mềm tính toán
4. Tổng quát về các bản vẽ:
- Số bản vẽ: bản A1 bản A2 khổ khác
- Số bản vẽ tay số bản vẽ trên máy tính
5. Những ƣu điểm chính của LVTN:




6. Những thiếu sót chính của LVTN:





7. Đề nghị: Đƣợc bảo vệ , Bổ sung thêm để bảo vệ ,
Không đƣợc bảo vệ .
8. 3 câu hỏi sinh viên trả lời trƣớc Hội Đồng:
a)

b)

c)

9. Đánh giá chung (bằng chữ: giỏi, khá, TB): Điểm …………………….


Ký tên (ghi rõ họ tên)
- v -
LỜI CẢM ƠN

Lời đầu tiên, chúng em muốn gửi lời cảm ơn chân thành đến giáo viên, TS. Nguyễn
Minh Hoàng, trong thời gian vừa qua, đã hƣớng dẫn và giúp đỡ chúng em nghiên cứu từ
đồ án 2, thực tập tốt nghiệp đến luận văn tốt nghiệp. Những lời nhận xét và hƣớng dẫn của
giáo viên đã giúp chúng em có một định hƣớng đúng trong quá trình thực hiện đề tài, giúp
chúng em nhìn ra đƣợc ƣu khuyết điểm của đề tài và từng bƣớc khắc phục để ngày một tốt
hơn.
Đồng thời chúng em cũng muốn gửi lời cảm ơn sâu sắc đến công ty Lotus-Asia, đặc
biệt là anh Nguyễn Trung Tín đã hỗ trợ và góp ý tận tình trong quá trình thực tập và thực
hiện luận văn tại công ty.
Bên cạnh đó, chúng em muốn nói lời cảm ơn đến những giáo viên đã đứng trên bục
giảng truyền đạt kinh nghiệm, kiến thức cho sinh viên trong suốt 4 năm đại học vừa qua.
Cuối cùng, chúng con cũng chân thành cảm ơn sự động viên và sự hỗ trợ của gia
đình và cha mẹ trong suốt thời gian học tập. Đặc biệt, chúng con xin gửi lời cảm ơn trân

trọng nhất đến cha mẹ, ngƣời đã sinh ra và nuôi dƣỡng chúng con nên ngƣời. Sự quan
tâm, lo lắng và hy sinh lớn lao của cha mẹ luôn là động lực cho chúng con cố gắng phấn
đấu trên con đƣờng học tập của mình. Một lần nữa, chúng con xin gửi đến cha mẹ sự biết
ơn sâu sắc nhất
Hồ Chí Minh, ngày tháng 01 năm 2012
Phạm Cao Cƣờng
Nguyễn Minh Huy

- vi -
GIỚI THIỆU ĐỀ TÀI

Công nghệ VoIP ra đời đã mang lại những hữu ích cho ngƣời sử dụng với nhiều
tính năng hữu ích nhƣ: các cuộc gọi nội bộ không mất phí, chuyển tiếp cuộc gọi. cuộc gọi
chờ… Đặc biệt, hệ thống tổng đài dựa trên công nghệ VoIP mang tính ứng dụng rất cao,
có thể cung cấp cho khách hàng những dịch vụ thiết thực trong cuộc sống. Không chỉ
dừng lại ở những dịch vụ đơn thuần, ngƣời sử dụng mong muốn có đƣợc nhiều tiện ích
hơn, nhiều dịch vụ tốt hơn, hệ thống Asterisk có thể đáp ứng vấn đề này cho khách hàng
của mình một cách tốt nhất.
Đề tài luận văn này tập trung nghiên cứu xây dựng các dịch vụ trên tổng đài
Asterisk. Các dịch vụ đƣợc triển khai trong đề tài này bao gồm: dịch vụ báo thức, quà tặng
âm nhạc, radio streamline, tra cứu điểm thi đại học, tƣ vấn trực tiếp cho khách hàng. Bên
cạnh đó, hệ thống cũng có khả năng tự động tính phí các dịch vụ cho cả thuê bao trả trƣớc
và trả sau. Đây cũng là một trong số nhiều dịch vụ mà khách hàng hiện đang quan tâm và
sử dụng.
Các dịch vụ này đƣợc thực hiện dựa trên giao tiếp giữa Asterisk và AGI, sử dụng
ngôn ngữ lập trình PHPAGI để cung cấp những thông tin trên cơ sở dữ liệu của hệ thống
cho khách hàng. Dựa trên PHPAGI, các dịch vụ có thể đƣợc mở rộng một cách linh hoạt,
đáp ứng đƣợc nhu cầu thực tế của khách hàng. Qua đó, các doanh nghiệp có thể sử dụng
để tăng tính năng cho tổng đài nhằm chăm sóc khách hàng tốt hơn.





- vii -
TÓM TẮT LUẬN VĂN

Cấu trúc đề tài chia làm 6 chƣơng, nội dung đề tài bao quát đầy đủ các vấn đề cơ bản
về tổng đài Asterisk và xây dựng tổng đài dựa trên AGI. Với nội dung chính của từng
chƣơng đƣợc mô tả nhƣ sau:
Chƣơng 1: Tổng quan. Chƣơng này giới thiệu về mục tiêu, nội dung của đề tài.
Chƣơng 2: Hệ thống Astersik. Chƣơng này nhằm mục đích cung cấp cho ngƣời đọc
kiến thức cơ bản về công nghệ VoIP và hệ thống Asterisk.
Chƣơng 3: Hệ cơ sở dữ liệu MySQL, giới thiệu về phần mềm quản trị cơ sở dữ liệu
MySQL và hƣớng dẫn cách cài đặt MySQL cho hệ thống.
Chƣơng 4: Lập trình ứng dụng qua hệ thống AGI. Chƣơng này trình bày tổng quan về
AGI, sơ đồ giao tiếp, quá trình hoạt động và cách sử dụng AGI với ngôn ngữ lập trình
PHP.
Chƣơng 5: Các dịch vụ thực hiện dựa trên AGI. Chƣơng này trình bày các dịch vụ mà
nhóm đã thực hiện đƣợc bằng PHPAGI.
Chƣơng 6: Tổng kết và hƣớng phát triển đề tài. Chƣơng này tổng kết lại toàn bộ đề tài
và hƣớng phát triển đề tài luận văn.










- viii -
MỤC LỤC

LỜI CẢM ƠN V
GIỚI THIỆU ĐỀ TÀI VI
TÓM TẮT LUẬN VĂN VII
MỤC LỤC VIII
CHƢƠNG 1: TỔNG QUAN 1
CHƢƠNG 2: HỆ THỐNG ASTERISK 3
2.1. GIỚI THIỆU VỀ VOIP 3
2.1.1. Khái niệm: 3
2.1.2. Ƣu nhƣợc điểm của VoIP: 3
2.1.3. Các thành phần trong mạng VoIP: 4
2.1.4. Phƣơng thức hoạt động: 5
2.1.5. Các giao thức của VoIP: 6
2.2. GIỚI THIỆU HỆ THỐNG ASTERISK 8
2.2.1. Cấu hình hệ thống Asterisk: 8
2.2.2. Cấu hình khai báo dùng giao thức SIP: 9
2.2.3. Contexts- các ngữ cảnh: 11
CHƢƠNG 3: HỆ CƠ SỞ DỮ LIỆU MYSQL 13
3.1. GIỚI THIỆU MYSQL 13
3.2. ĐẶC ĐIỂM CỦA MYSQL 13
3.2.1. Tính linh hoạt: 13
3.2.2. Tính thực thi cao: 13
3.2.3. Có thể sử dụng ngay: 13
3.2.4. Hỗ trợ giao dịch mạnh: 14
3.2.5. Chế độ bảo mật dữ liệu mạnh: 14
3.2.6. Dễ dàng quản lý: 14
- ix -
3.2.7. Mã nguồn mở tự do và hỗ trợ 24/7: 14

3.2.8. Tổng chi phí thấp nhất: 15
3.3. KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU (CSDL) 15
3.4. GIỚI THIỆU VỀ PHPMYADMIN 15
3.5. CÀI ĐẶT MYSQL VÀ PHPMYADMIN TRÊN UBUNTU 16
3.6. XÂY DỰNG CƠ SỞ DỮ LIỆU 17
CHƢƠNG 4: LẬP TRÌNH ỨNG DỤNG DỰA VÀO GIAO TIẾP AGI 22
4.1. GIỚI THIỆU 22
4.2. SƠ ĐỒ GIAO TIẾP 22
4.3. QUÁ TRÌNH THỰC HIỆN KẾT NỐI ASTERISK VÀ AGI 23
4.5. AGI DEBUGGING 26
4.6. PHPAGI- THƢ VIỆN LỚP SỬ DỤNG NGÔN NGỮ PHP 27
4.6.1. Giới thiệu về PHPAGI 27
4.6.2. Cấu trúc file của PHPAGI 27
4.7. GỌI MỘT AGI SCRIPT TỪ DIAPLAN 28
4.8. LẬP TRÌNH AGI SCRIPT BẰNG PHP 28
CHƢƠNG 5: CÁC DỊCH VỤ THỰC HIỆN DỰA TRÊN AGI 30
5.1. GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG 30
5.2. DỊCH VỤ BÁO THỨC: 31
5.2.1. Nhận yêu cầu từ ngƣời sử dụng 31
5.2.2. Hoạt động của hệ thống tổng đài 32
5.3. DỊCH VỤ QUÀ TẶNG ÂM NHẠC 33
5.3.1. Nhận yêu cầu từ ngƣời sử dụng 33
5.3.2. Hoạt động của hệ thống. 34
5.4. DỊCH VỤ RADIO STREAMLINE 35
5.4.1. Nhận yêu cầu từ ngƣời sử dụng 35
5.4.2. Hoạt động của hệ thống. 36
5.5. DỊCH VỤ TRA CỨU ĐIỂM THI ĐẠI HỌC 37
- x -
5.5.1. Nhận yêu cầu từ ngƣời sử dụng 37
5.5.2. Hoạt động của hệ thống 38

5.6. DỊCH VỤ IVR 39
5.6.1. Nhận yêu cầu từ ngƣời sử dụng 39
5.6.2. Hoạt động của hệ thống 40
5.7. TÍNH PHÍ CÁC DỊCH VỤ CỦA HỆ THỐNG TỔNG ĐÀI 40
CHƢƠNG 6: 42
TỔNG KẾT VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI 42
6.1. KẾT QUẢ ĐẠT ĐƢỢC 42
6.2. HƢỚNG PHÁT TRIỂN ĐỀ TÀI 43
6.2.1. Giới thiệu về Web service 43
6.2.2. Kết hợp giữa AGI và Web Service trong tổng đài Asterisk 45
TÀI LIỆU THAM KHẢO 46
PHỤ LỤC 1: CÀI ĐẶT ASTERISK 47
PHỤ LỤC 2: CÁC LỆNH THAM KHẢO TRONG AGI 49
PHỤ LỤC 3: CÁC LỆNH ĐƢỢC SỬ DỤNG VỚI MYSQL 52
PHỤ LỤC 4: FILE CẤU HÌNH HỆ THỐNG 56










- xi -
CÁC TỪ VIẾT TẮT

A
ACK Acknowledgement

AGI Asterisk Gateway Interface
ARP Address Resolution Protocol
ACIP Atomic-Consistent-Isolated-Durable

D
DCOM Distribited companent Object Model

H
HTTP Hyper Text Transfer Protocol

I
IAX Inter-Asterisk eXchange
IP Internet Protocol
IVR Interactive voice response
IETF Internet Engineering Task Force

L
LAN Local Area Network

P
PBX Private Branch Exchange
PC Personal Computer
PSTN Public Switched Telephone Network

R
RTCP Real Time Control Protocol
RTP Real Time Transport Protocol

S
SCTP Stream Control Transport Protocol

SIP Session Initiation Protocol
SRTP Secure Real-Time Transport Protocol
SMTP Simple Message Transfer Protocol
SRTCP Secure RTCP
SSH Secure Shell
SQL Structure Query Language
STDIN standard input
STDOUT standard output
STSERR standard error
SOAP Simple Object Access Protocal

- xii -
T
TDM Time Division Multiplexing
TCP Transmission Control Protocol

U
UA User Agent
UAC User Agent Client
UAS User Agent Server
UDP Unreliable Datagram Protocol
URL Uniform Resource Locator

V
VoIP Voice over Internet Protocol



















- xiii -
DANH MỤC HÌNH

HÌNH 2.1 CẤU HÌNH CỦA MẠNG ĐIỆN THOẠI IP 5
HÌNH 2.2 QUÁ TRÌNH THỰC HIỆN CUỘC GỌI GIỮA HAI MÁY IP PHONE 6
HÌNH 2.3 GIAO THỨC SIP 7
HÌNH 2.4 SƠ ĐỒ GIAO TIẾP TỔNG QUÁT CỦA ASTERISK 8
HÌNH 3.1 ĐĂNG NHẬP VÀO PHPMYADMIN 17
HÌNH 3.2 TRANG CHÍNH PHPMYADMIN 18
HÌNH 3.3 BƢỚC NHẬP TÊN DATABASE VÀO MYSQL 18
HÌNH 3.4 BƢỚC NHẬP CÁC TRƢỜNG DATABASE VÀO MYSQL 19
HÌNH 3.5 KẾT QUẢ NHẬP CÁC TRƢỜNG DATABASE VÀO MYSQL 19
HÌNH 3.6 BƢỚC NHẬP DỮ LIỆU DATABASE VÀO MYSQL 20
HÌNH 3.7 KẾT QUẢ NHẬP DỮ LIỆU DATABASE VÀO MYSQL 20
HÌNH 3.8 KẾT QUẢ DATABASE VÀO MYSQL XEM TRÊN UBUNTU 21
HÌNH 4.1 SƠ ĐỒ GIAO TIẾP HỆ THỐNG ASTERISK VÀ AGI 22
HÌNH 4.2 QUÁ TRÌNH GIAO TIẾP GIỮA ASTERISK VÀ AGI SCRIPT 23

HÌNH 4.3 QUÁ TRÌNH HOẠT ĐỘNG CỦA AGI 25
HÌNH 4.4 HOẠT ĐỘNG CỦA AGI CÓ KẾT NỐI DỮ LIỆU BÊN NGOÀI 26
HÌNH 4.5 AGI DEBUG 27
HÌNH 5.1 LƢU ĐỒ GIẢI THUẬT DỊCH VỤ BÁO THỨC 31
HÌNH 5.2 LƢU ĐỒ GIẢI THUẬT DỊCH VỤ QUÀ TẶNG ÂM NHẠC 33
HÌNH 5.3 CƠ SỞ DỮ LIỆU CỦA DỊCH VỤ QUÀ TẬNG ÂM NHẠC 34
HÌNH 5.4 LƢU ĐỒ GIẢI THUẬT DỊCH VỤ RADIO STREAMLINE 35
HÌNH 5.5 CƠ SỞ DỮ LIỆU CỦA DỊCH VỤ RADIO STREAMLINE 36
HÌNH 5.6 LƢU ĐỒ GIẢI THUẬT DỊCH VỤ TRA CỨU ĐIỂM THI ĐẠI HỌC 37
HÌNH 5.7 CƠ SỞ DỮ LIỆU CỦA DỊCH VỤ TRA CỨU ĐIỂM THI ĐẠI HỌC 38
HÌNH 5.8 LƢU ĐỒ GIẢI THUẬT DỊCH VỤ IVR 40
HÌNH 5.9 CƠ SỞ DỮ LIỆU CỦA DỊCH VỤ TRẢ TRƢỚC 40
HÌNH 5.10 CƠ SỞ DỮ LIỆU CỦA DỊCH VỤ TRẢ SAU 41
HÌNH 6.1 HOẠT ĐỘNG CỦA DCOM 43
HÌNH 6.2 KIẾN TRÖC WEB SERVICE 44
- xiv -
HÌNH 6.3 PHỐI HỢP GIỮA CÁC ỨNG DỤNG 44
HÌNH 6.4 KẾT NỐI GIỮA ASTERISK VÀ WEB SERVICE 45
Chương 1: Tổng quan

- 1 -
Chƣơng 1: Tổng quan

Nội dung chƣơng này đề cập đến vấn đề đặt ra trong luận văn, mục tiêu và nội dung đề
tài, các công việc thực hiện.
1.1. Đặt vấn đề
Ngày nay các dịch vụ viễn thông rất phong phú và đa dạng bao gồm các dịch vụ truyền
thống đã tồn tại trong thời gian dài và các dịch vụ mới đƣợc phát triển trong thời gian gần
đây. Tiền đề của nó chính là sự phát triển của công nghệ điện tử và công nghệ mạng. Cụ thể
hơn, chúng ta có thể nói rằng sự đa dạng của các dịch vụ viễn thông bắt nguồn từ sự phát triển

của các công nghệ liên quan nhƣ truyền dẫn, xử lý tín hiệu, chuyển mạch và công nghệ phần
mềm.
Internet đang đi tiên phong trong việc mở ra các hình thức mới cho việc liên lạc của con
ngƣời nhƣ e-mail, nói chuyện tại chỗ (live chat) và news-group. Tuy vậy Internet cũng có thể
đƣợc sử dụng cho các hình thức liên lạc cổ điển nhƣ ngƣời dùng có thể gọi điện thoại bằng
Internet. Khi gọi điện thoại qua Internet thì tiếng nói của ngƣời gọi và tiếng nói của ngƣời
nhận sẽ đƣợc chia nhỏ thành các gói tin. Các gói tin này đƣợc chuyển đi qua mạng bằng cách
sử dụng giao thức TCP/IP của Internet. Đây chính là công nghệ VoIP (Voice Over Internet
Protocol). VoIP là một cơ hội tốt để thiết kế các hệ thống truyền thông Multimedia toàn cầu
có thể thay thế mạng viễn thông hiện nay về mặt chức năng mà không làm trở ngại đến di sản
công nghệ cũ đã tồn tại từ lâu đời.
Hiện nay, các doanh nghiệp đều đã triển khai hệ thống tổng đài dựa trên công nghệ VoIP
nhằm mục đích chăm sóc khách hàng ngày càng tốt hơn. Bên cạnh việc quản lý thông tin và
tăng mối quan hệ với khách hàng, nhiều doanh nghiệp cũng đã tận dụng các tiện ích của tổng
đài để xây dựng các dịch vụ thiết thực cho khách hàng nhƣ: quà tặng âm nhạc, tra cứu điểm
thi đại học… Với việc xây dựng các dịch vụ này, hệ thống tổng đài không chỉ đơn thuần đƣợc
dùng cho việc quan hệ khách hàng mà còn có thể sử dụng nhƣ là một sản phẩm đem lại lợi
nhuận cho doanh nghiệp. Khách hàng có thể gọi vào tổng đài để sử dụng các tính năng của nó
và doanh nghiệp sẽ tính phí cho các những lần sử dụng.
Những năm gần đây, với sự bùng nổ của thông tin di động, ngƣời tiêu dùng mong muốn
nhiều tiện ích phong phú nhƣ: gửi và nhận bài hát kèm theo lời nhắn cho bạn bè hay ngƣời
thân, hoặc tra cứu thông tin một cách nhanh chóng và chính xác… Hiểu rõ mong muốn của
Chương 1: Tổng quan

- 2 -
khách hàng, nhiều doanh nghiệp đã ra đời với mục tiêu chính là xây dựng các dịch vụ nhằm
thỏa mãn mọi yêu cầu của khách hàng.
Vấn đề đặt ra ở đây chính là tìm một giải pháp để thực hiện các dịch vụ này một cách linh
hoạt và có thể mở rộng một cách dễ dàng khi cần thiết.
1.2. Nội dung của đề tài

Với mong muốn giải quyết vấn đề trên, đề tài luận văn ở đây nghiên cứu xây dựng dịch
vụ trên tổng đài Asterisk. Các dịch vụ này đƣợc triển khai nhờ vào tính năng mở rộng của
tổng đài Asterisk thông qua giao tiếp với AGI. Asterisk dựa vào AGI thực hiện những tính
năng mà Asterisk thuần túy không thực hiện đƣợc, bên cạnh đó có thể sử dụng nguồn tài
nguyên bên ngoài nhƣ Database hay Webservice để cung cấp và lƣu trữ thông tin khách hàng.
Bằng giải pháp này, doanh nghiệp có thể dễ dàng phát triển các ứng dụng theo ý của mình.
PHPAGI đƣợc sử dụng là ngôn ngữ lập trình cho việc triển khai các ứng dụng của hệ thống
tổng đài Asterisk.
Các dịch vụ đƣợc triển khai trong đề tài luận văn này sẽ là:
- Dịch vụ báo thức
- Dịch vụ quà tặng âm nhạc
- Dịch vụ radio streamline
- Dịch vụ tra cứu điểm thi đại học
- Dịch vụ tƣ vấn trực tiếp với điện thoại viên
Bên cạnh đó, hệ thống còn có khả năng tự động tính phí cho cả thuê bao trả trƣớc và trả
sau
1.3. Công việc thực hiện
- Nghiên cứu về tổng đài VoIP, cụ thể là Asterisk
- Xây dựng cơ sở dữ liệu cho hệ thống, sử dụng MySQL
- Nghiên cứu hoạt động của AGI và ngôn ngữ lập trình PHPAGI
- Xây dựng các dịch vụ bằng PHPAGI
1.4. Giới hạn của đề tài
Đề tài này chƣa thể tƣơng tác tiếng Việt với khách hàng, để có thể thực hiện đƣợc tính
năng này cần phải đƣợc hỗ trợ thêm cho tổng đài khả năng nhận diện và trả lời bằng tiếng
Việt cho khách hàng.
Chƣơng 2: Hệ thống Asterisk

- 3 -
Chƣơng 2: Hệ thống Asterisk


2.1. Giới thiệu về VoIP
2.1.1. Khái niệm:
- VoIP viết tắt bởi Voice over Internet Protocol, hay còn đƣợc gọi dƣới các tên khác
nhƣ: Internet telephony, IP Telephony, Broadband telephony, Broadband Phone và Voice
over Broadband.
- Ở điện thoại thông thƣờng, tín hiệu thoại đƣợc lấy mẫu với tần số 8 KHz sau đó lƣợng
tử hóa 8 bit/mẫu và đƣợc truyền với tốc độ 64 KHz đến mạng chuyển mạch rồi truyền tới
đích. Ở phía thu, tín hiệu này sẽ đƣợc giải mã thành tín hiệu ban đầu.
- Công nghệ VoIP cũng không hoàn toàn khác với điện thoại thông thƣờng. Đầu tiên,
tín hiệu thoại cũng đƣợc số hóa, nhƣng sau đó thay vì truyền trên mạng PSTN qua các trƣờng
chuyển mạch, tín hiệu thoại đƣợc nén xuống tốc độ thấp rồi đóng gói, truyền qua mạng IP.
Tại bên thu, các luồng thoại sẽ đƣợc giải nén thành các luồng PCM 64 rồi truyền tới thuê bao
bị gọi.
- 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ách 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.
2.1.2. Ưu nhược điểm của VoIP:
 Ưu điểm:
- Gọi điện thoại giá rẻ: đây là ƣu điểm nổi bật nhất của VoIP. Sử dụng công nghệ VoIP
có thể gọi điện thoại đƣờng dài hoặc điện thoại ra nƣớc ngoài với giá rẻ tƣơng đƣơng với giá
gọi nội hạt.
- Tính thống nhất: hệ thống VoIP có thể tích hợp cả mạng thoại, mạng số liệu và mạng
báo hiệu. Các tín hiệu thoại, dữ liệu, báo hiệu có thể cùng đi trên một mạng IP. Việc này sẽ
Chƣơng 2: Hệ thống Asterisk


- 4 -
giảm đáng kể chi phí đầu tƣ.
- Khả năng mở rộng: hệ thống VoIP có thể đƣợc mở rộng thêm nhiều loại dịch vụ,
nhiều tính năng mới.
 Nhược điểm:
- Chất lƣợng dịch vụ: do các mạng truyền số liệu vốn dĩ không đƣợc thiết kế để truyền
thoại thời gian thực cho nên việc trễ truyền hay việc mất mát các gói tin hoàn toàn có thể xảy
ra và sẽ gây ra chất lƣợng dịch vụ thấp.
- Bảo mật: do mạng Internet là một mạng hỗn hợp và rộng khắp bao gồm rất nhiều máy
tính cùng sử dụng cho nên việc bảo mật các thông tin cá nhân là rất khó.
2.1.3. Các thành phần trong mạng VoIP:
Cấu hình chuẩn của mạng điện thoại IP có thể bao gồm các phần tử sau:
 Thiết bị đầu cuối kết nối với mạng IP:
 Softphone và máy tính cá nhân (PC) : Bao gồm 1 headphone, 1 phần mềm và 1 kết nối
Internet. Các phần mềm miễn phí phổ biến nhƣ Skype, Ekiga, GnomeMeeting, Microsoft
Netmeeting, SIPSet,
 Điện thoại truyền thông với IP adapter: Để sử dụng dịch vụ VoIP thì máy điện thoại
thông dụng phải gắn với 1 IP adapter để có thể kết nối với VoIP server. Adapter là 1 thiết bị
có ít nhất 1 cổng RJ11 (để gắn với điện thoại) , RJ45 (để gắn với đƣờng truyền Internet hay
PSTN) và 1 cổng cắm nguồn.
 IP phone : Là các điện thoại dùng riêng cho mạng VoIP. Các IP phone không cần
VoIP Adapter bởi chúng đã đƣợc tích hợp sẵn bên trong để có thể kết nối trực tiếp với các
VoIP server.
 Mạng truy nhập IP: Là các loại mạng dữ liệu sử dụng giao thức TCP/IP, phổ biến nhất
là mạng Internet
 Gateway: Là thành phần giúp chuyển đổi tín hiệu analog sang tín hiệu số (và ngƣợc
lại). Có 3 loại gateway:
 Gateway truyền tải kênh thoại
 Gateway điều khiển truyền tải kênh thoại
 Gateway báo hiệu

 VoIP server: là các máy chủ trung tâm có chức năng định tuyến và bảo mật cho các
cuộc gọi VoIP.
 Trong mạng H.323 chúng đƣợc gọi là gatekeeper.
Chƣơng 2: Hệ thống Asterisk

- 5 -
 Trong mạng SIP các server đƣợc gọi là SIP server.
 Mạng chuyển mạch kênh
Cấu hình của mạng điện thoại IP đƣợc mô tả trong hình 2.1.
Gatekeeper
Gateway
Gateway
DNS Server
M¹ng chuyÓn
m¹ch kªnh
IP Network
PC
Telephone
M¹ng chuyÓn
m¹ch kªnh
Telephone
PC

Hình 2.1 Cấu hình của mạng điện thoại IP

2.1.4. Phương thức hoạt động:
- VoIP chuyển đổi tín hiệu giọng nói thông qua môi trƣờng mạng (IP based network).
Do vậy, trƣớc hết giọng nói (voice) sẽ phải đƣợc chuyển đổi thành các dãy bit kĩ thuật số
(digital bits) và đƣợc đóng gói thành các packet để sau đó đƣợc truyền tải qua mạng IP
network và cuối cùng sẽ đƣợc chuyển lại thành tín hiệu âm thanh đến ngƣời nghe.

- Tiến trình hoạt động của VoIP thông qua 2 bƣớc:
 Call Setup: trong quá trình này, ngƣời gọi sẽ phải xác định vị trí ( thông qua địa chỉ
của ngƣời nhận) và yêu cầu 1 kết nối để liên lạc với ngƣời nhận. Khi địa chỉ ngƣời nhận đƣợc
xác định là tồn tại trên các proxy server thì các proxy server giữa 2 ngƣời sẽ thiết lập 1 cuộc
kết nối cho quá trình trao đổi dữ liệu voice
 Voice data processing: Tín hiệu giọng nói (analog) sẽ đƣợc chuyển đổi sang tín hiệu
số ( digital) rồi đƣợc nén lại nhằm tiết kiệm đƣờng truyền (bandwidth) sau đó sẽ đƣợc mã hóa
(tính năng bổ sung nhằm tránh các bộ phân tích mạng _sniffer ). Các voice samples sau đó sẽ
đƣợc chèn vào các gói dữ liệu để đƣợc vận chuyển trên mạng. Giao thức dùng cho các gói
Chƣơng 2: Hệ thống Asterisk

- 6 -
voice này là RTP (Real-Time Transport Protocol). Một gói tin RTP có các field đầu chứa dữ
liệu cần thiết cho việc biên dịch lại các gói tin sang tín hiệu voice ở thiết bị ngƣời nghe. Các
gói tin voice đƣợc truyền đi bởi giao thức UDP. Ở thiết bị cuối, tiến trình đƣợc thực hiện
ngƣợc lại.
- Quá trình thực hiện cuộc gọi giữa hai máy IP phone:

Hình 2.2 Quá trình thực hiện cuộc gọi giữa hai máy IP phone
2.1.5. Các giao thức của VoIP:
- VoIP cần 2 loại giao thức : Signaling protocol và Media Protocol.
 Signaling Protocol: điều khiển việc cài đặt cuộc gọi. Các loại signaling protocols bao
gồm: H.323, SIP, MGCP, Megaco/H.248 và các loại giao thức dùng riêng nhƣ UNISTIM,
SCCP, Skype, CorNet-IP,…
 Media Protocols: điều khiển việc truyền tải voice data qua môi trƣờng mạng IP. Các
loại Media Protocols nhƣ: RTP ( Real-Time Protocol), RTCP (RTP control Protocol), SRTP
(Secure Real-Time Transport Protocol), và SRTCP (Secure RTCP)
- Trong đề tài luận văn giao thức đƣợc sử dụng là giao thức SIP
SIP (Session Initiation Protocol) đƣợc phát triển bởi IETF ( Internet Engineering Task
Force), đây là 1 giao thức kiểu diện ký tự, nó đơn giản hơn giao thức H.323. Nó giống với

HTTP, hay SMTP. Gói tin (messages) bao gồm các header và phần thân ( message body). SIP
là 1 giao thức ứng dụng ( applicationprotocol), sử dụng port 5060 để liên lạc và chạy trên các
giao thức UDP, TCP và STCP.

Chƣơng 2: Hệ thống Asterisk

- 7 -

Hình 2.3 Giao thức SIP

 Các thành phần trong SIP network :
Một khía cạnh khác biệt của SIP đối với các giao thức xử lý cuộc gọi IP khác là nó không
sử dụng bộ điều khiển Gateway. Nó không dùng khái niệm Gateway/ bộ điều khiển Gateway
nhƣng nó dựa vào mô hình client/server.
 Server SIP có hai loại:
- Proxy server nhận một yêu cầu từ client và quyết định server kế tiếp mà yêu cầu sẽ đi
đến. Proxy này có thể gửi yêu cầu đến một server khác.
- Redirect server hoặc UAS. Đáp ứng sẽ đƣợc truyền cùng đƣờng với yêu cầu nhƣng
theo chiều ngƣợc lại. Proxy server hoạt động nhƣ là client và server. Redirect server sẽ không
chuyển yêu cầu nhƣng sẽ chỉ định client tiếp xúc trực tiếp với server kế tiếp, đáp ứng gửi lại
client chứa địa chỉ của server kế tiếp. Nó không hoạt động đƣợc nhƣ là một client, nó không
chấp nhận cuộc gọi.
 Registrar: là một server chấp nhận yêu cầu REGISTER. Một Registrar đƣợc xếp đặt
với một Proxy hoặc một server gửi lại và có thể đƣa ra các dịch vụ định vị. Registrar đƣợc
dùng để đăng ký các đối tƣợng SIP trong miền SIP và cập nhật vị trí hiện tại của chúng. Một
miền SIP thì tƣơng tự với một vùng H.323.
 UA (User Agent): là một ứng dụng chứa cả UAC (User Agent Client) và UAS.
 UAC (User Agent Client): đây là phần ngƣời sử dụng đƣợc dùng để khởi tạo
một yêu cầu SIP tới server SIP hoặc UAS.
 UAS (User Agent Server): là một ứng dụng server giao tiếp với ngƣời dùng khi

yêu cầu SIP đƣợc chấp nhận và trả lại một đáp ứng đại diện cho ngƣời dùng.

Chƣơng 2: Hệ thống Asterisk

- 8 -
2.2. Giới thiệu hệ thống Asterisk
Asterisk là phần mềm nguồn mở, đƣợc viết bằng ngôn ngữ C, ra đời năm 1999 bởi
MarkSpencer, đầu tiên đƣợc thiết kế và triển khai trên GNU/Linux nền x86 (của Intel). Hiện
nay Asterisk có thể chạy trên các hệ điều hành nhƣ: Mac OS X, FreeBSD, OpenBSD và
Microsoft Windows.
Asterisk đƣợc xem nhƣ một tổng đài nội bộ riêng - PBX (Private Branch eXchange).
Ngoài những tính năng của một tổng đài PBX thông thƣờng, Asterisk còn đƣợc tích hợp cả
chức năng chuyển mạch TDM và chuyển mạch VoIP, có khả năng mở rộng đáp ứng nhu cầu
cho từng ứng dụng nhƣ mở rộng giao tiếp với mạng PSTN (Public Switched Telephone
Network).
Những tiện lợi của hệ thống: giá cƣớc rẻ, dễ sử dụng, đầy đủ các tính năng của một tổng
đài và còn hơn thế nên đã có nhiều hệ thống Asterisk đƣợc cài đặt thành công trên thế giới.
Nhiều doanh nghiệp, công ty đã và đang triển khai hệ thống tạo liên lạc bên trong và ra cả
mạng ngoài thông qua mạng thoại và Internet.[1]
Ta có thể thấy đƣợc sơ đồ giao tiếp tổng quát của Asterisk qua hình sau

Hình 2.4 Sơ đồ giao tiếp tổng quát của Asterisk
2.2.1. Cấu hình hệ thống Asterisk:
 Cấu hình Channel interfaces:
Phần này giới thiệu các file cấu hình cho các Asterisk channel drivers.
Asterick có thể đƣợc cấu hình với nhiều mục đích khác nhau, nhƣng mô hình thông
thƣờng nhất là Client/Server. Mô hình này cho phép các client (hay còn gọi là UAC – user
agent client) kết nối vào server là Asterisk (hay còn gọi là UAS – User Agent Server). Các
Chƣơng 2: Hệ thống Asterisk


- 9 -
UAC là nơi sinh ra các session trong khi UAS thì xử lý thụ động các session nhận đƣợc dựa
trên tập hợp rule có sẳn.
Ta có thể cấu hình Asterisk trong bằng cách edit trực tiếp các file cấu hình trong
/etc/asterisk. Mỗi ứng dụng riêng của Asterisk nhƣ voicemail, music-on-hold, meetme,
conference, iax … đều có configuration riêng của mình, tuy nhiên có 2 file cấu hình quan
trọng nhất là sip.conf và extensions.conf :
- Sip.conf : File cấu hình về các thông tin của các UAC nhƣ username, password, IP,
type, security, codec, là thành phần căn bản nhất lƣu giử thông tin trong Asterisk.
- Extensions.conf: File cấu hình về các luật định tuyến cuộc gọi, luật quay số, các
extension trong ngoài và những tính năng đặc biệt khác. Extensions.conf là file quan trọng
nhất trong bất kỳ cấu hình Asterisk nào
 Các file cấu hình khác:
- Voicemail.conf: File cấu hình cho hệ thống voice-mail của asterisk. Asterisk có thể dùng
lệnh Sendmail trên CentOS để gởi mail đến cho các địa chỉ đƣợc lƣu trong file cấu hình này.
- system.conf: File này nằm ngoài /etc, là file chứa thông số index, driver dành cho Linux
khi kích hoạt các thiết bị Telephony cắm trực tiếp vào Asterisk thông qua cổng PCI
- chan_dahdi.conf: Cũng thuộc module DAHDI, nhƣng là file kết nối các thiết bị
Telephony đã đƣợc khai báo vào hệ thống chính của Asterisk
- Iax(2).conf: Các thông số về IAX (inter-asterisk protocol) dùng khi kết nối 2 asterisk
box với nhau
- MeetMe.conf: Một chức năng tạo room conference căn bản.
2.2.2. Cấu hình khai báo dùng giao thức SIP:
 Phần khai báo Chung
Trong file sip.conf có section [general] dùng để khai báo các thông số chung cho tất cả
các kênh sip trong toàn bộ tập tin này, nhƣng các thông số đó có thể mang giá trị khác trong
phần khai báo trên các kênh riêng để phù hợp với kênh đó. Sau đây là các thông số chính:
 Allow/disallow: Định nghĩa sử dụng các codec.
 Bindaddr: Địa chỉ IP mà client kết nối đến kênh này, nếu thông số này đƣợc khai báo
là 0.0.0.0 cho phép tất cả các địa chỉ IP có thể kết nối đến kênh này.

Chƣơng 2: Hệ thống Asterisk

- 10 -
 Context : Tất cả các cuộc gọi mặc định sẽ đƣợc chuyển đến ngữ cảnh này ngoại trừ
phần dƣới file cấu hình có khai báo ngữ cảnh khác.
 Bindport: Cổng SIP UDP mà client cần kết nối đến.
 Maxexpirey: Thời gian tối đa để đăng ký, đơn vị tính bằng giây.
 Defaultexpirey: Thời gian mặc định để đăng ký, đơn vị tính bằng giây.
 Register: Để kết nối giao tiếp với server khác.
 Khai báo kênh SIP:
Phần này sẽ khai báo các kênh SIP dành riêng cho từng điện thoại IP SIP phone:
[name]: Đây là phần khai báo máy điện thoại 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 là giá trị
“dynamic” cho tất cả client kết nối đến.
Secret: Mật khẩu để sử dụng những kênh này. Máy điện thoại phía client phải khai báo
thông số trùng với thông số này thì mới sử dụng đƣợc.
Username: Thiết lập username cho việc chứng thực.
Callerid: Thiết lập định danh caller ID.
Nat: Thiết lập “yes” hoặc “no” tuỳ việc thiết bị SIP có nằm sau firewall hay không.
Mailbox: Thiết lập hộp mail cho việc kiểm tra thông điệp từ các user khác.
Outgoinglimit: Thiết lập số lƣợng tối đa cuộc gọi, mà thiết bị có thể thực hiện trong một
thời gian nhất định.
Incominglimit: Thiết lập số lƣợng tối đa cuộc gọi, mà thiết bị có thể khởi tạo tại một thời
điểm.
Ví dụ:
[general]
context=default
allowoverlap=no

srvlookup=yes
Chƣơng 2: Hệ thống Asterisk

- 11 -
[100]
username=100
type=friend
secret=100
context=local
host=dynamic
nat=yes
allow=all
 Cấu hình Diaplan:
Dialplan đƣợc xem là trung tâm xử lý của Asterisk, nó định nghĩa tất cả các cuộc gọi vào
ra trong tổng đài IP PBX, bao gồm một danh sách những cấu trúc hoặc nhữn bƣớc mà
Asterisk sẽ thực hiện. Dialplan đƣợc cấu hình qua tập tin extensions.conf, một số khái niệm
cần nắm rõ khi cấu hình dialplan:
2.2.3. Contexts- các ngữ cảnh:
Contexts là tên của một nhóm các nhánh, và mỗi nhánh co một ứng dụng.Nhƣ vậy, mỗi
context sẽ thực hiện mốt số chức năng mà ngƣời dùng mong muốn.
Các nhánh trong các contexts khác nhau là cách ly hoàn toàn, tức là nhánh trong context
này có thể giống với nhánh trong context khác nhƣng Asterisk vẫn phân biệt đƣợc các nhánh
này. Context đƣợc chứa trong dấu ngoặc vuông “[ ]”. Tên của context có thể đƣợc thiết lập
với các chữ cái, chữ số và dấu gạch nối.
 Extensions:
Dialplan là một tập hợp gồm nhiều extension, khi một cuộc gọi tƣơng ứng với extension
nào thì ứng dụng cho cuộc gọi đó sẽ đƣợc thực hiện.
 Cú pháp thực hiện extension là: exten=>name, priority, application()
Trong đó:
 name: tên hoặc số.

 priority: thứ tự thực hiện lệnh.
 Application(): ứng dụng hoặc lệnh để thực hiện vài hành động trong cuộc gọi.

×