1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

94 1,5K 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 94
Dung lượng 3,11 MB

Nội dung

XÂY DỰNG CÁC DỊCH VỤ TỔNG ĐÀI ASTERISK DỰA TRÊN LẬP TRÌNH PHPAGI 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.

Trang 1

ĐẠ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

Trang 2

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

     

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

(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:

Trang 3

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)

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:

5 Những ưu điểm chính của LVTN:

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

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

Trang 4

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)

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:

5 Những ưu điểm chính của LVTN:

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

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

Trang 5

Đồ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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

CÁC TỪ VIẾT TẮT

A

AGI Asterisk Gateway Interface

ARP Address Resolution Protocol

IVR Interactive voice response

IETF Internet Engineering Task Force

RTCP Real Time Control Protocol

RTP Real Time Transport Protocol

SQL Structure Query Language

STDIN standard input

STDOUT standard output

STSERR standard error

SOAP Simple Object Access Protocal

Trang 12

UDP Unreliable Datagram Protocol URL Uniform Resource Locator

V

VoIP Voice over Internet Protocol

Trang 13

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

Trang 14

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

Trang 15

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

Trang 16

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

Trang 17

- Ở đ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ẽ

Trang 18

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

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

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

Trang 19

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

Trang 20

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

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

Trang 21

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

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

Trang 22

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

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

Trang 23

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

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

Trang 24

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

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

Trang 25

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:

Trang 26

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

Ta có thể thiết lập các nhánh tuỳ biến, bằng cách sử dụng những ký tự hoặc ký hiệu để đại diện cho những số co thể chúng ta mong muốn làm cho phù hợp Những hình thức luôn bắt đầu bằng dấu gạch dưới ( _ )

 Sau dấu gạch dưới co thể sử dụng 1 hoặc nhiều ký tự sau đây:

- X: những số từ 0-9

- N: những số từ 2-9

- Z: mọi chữ số trừ số 0

- [15-7]: một số hoặc nhiều dãy số đặc biệt

- (period): từ kết hợp 1 hoặc nhiều ký tự

- “.”: dùng cho nhiều số

Để sử dụng tuỳ biến trong Dialplan, đặt tuỳ biến tại tên (số)

 Priorities - thứ tự ưu tiê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 số thứ tự “2” được thực hiện Kể từ version 1.2 của Asterisk, thay

vì gán một con số cụ thể cho thứ tự thực hiện thì ta co 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ẽ được thực hiện

Ví dụ:

Exten=>_1XX,1,Answer()

Exten=>_1XX,n,Dial(SIP/${EXTEN})

Exten=>_1XX,n,Hangup()

Trang 27

Chương 3: Hệ cơ sở dữ liệu MySQL

Chương 3: Hệ cơ sở dữ liệu MySQL

3.1 Giới thiệu MySQL

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc

độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,

MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL) [11]

3.2 Đặc điểm của MySQL

3.2.1 Tính linh hoạt:

Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên đến hàng terabytes thông tin Sự linh hoạt về flatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ Và dĩ nhiên, tính chất mã nguồn

mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server

3.2.2 Tính thực thi cao:

Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở

dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay

3.2.3 Có thể sử dụng ngay:

Sự đáng tin cậy cao là tiêu chuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL

Trang 28

Chương 3: Hệ cơ sở dữ liệu MySQL

3.2.4 Hỗ trợ giao dịch mạnh:

MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu mạnh nhất trên thị trường Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại Tính toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức

3.2.5 Chế độ bảo mật dữ liệu mạnh:

Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được SSH

và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic

và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó

cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở

dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra

3.2.7 Mã nguồn mở tự do và hỗ trợ 24/7:

Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm mã nguồn mở vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các

Trang 29

Chương 3: Hệ cơ sở dữ liệu MySQL

ứng dụng chủ chốt của họ Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL

3.2.8 Tổng chi phí thấp nhất:

Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết

3.3 Khái niệm cơ bản về cơ sở dữ liệu (CSDL)

- Cơ sở dữ liệu (database) có thể hiểu là nơi chứa dữ liệu Có nhiều loại cơ sở dữ liệu khác nhau như cơ sở dữ liệu quan hệ, CSDL hướng đối tượng, CSDL phân tán Hiện nay, trong phần lớn các ứng dụng, người ta thường sử dụng CSDL quan hệ

- Trong mô hình CSDL quan hệ, dữ liệu thường được chia thành các bảng có liên quan với nhau

VD: Ta có 2 bảng:

Bảng 1: Chứa các thông tin về Mã hàng, tên hàng, ngày nhập hàng, giá nhập hàng

Bảng 2: Chứa các thông tin về Mã hàng, ngày bán hàng, giá bán

Hai bảng này có quan hệ với nhau thông qua mã hàng, tức là chỉ cần có mã hàng ở bảng

2, ta có thể tìm ra tên hàng dựa trên mối liên hệ giữa mã hàng và tên hàng lưu ở bảng 1

Người ta gọi các cột trong một bảng là các trường, các dòng trong một bảng là các bản ghi Mỗi trường sẽ có một kiểu dữ liệu xác định Đó có thể là kiểu số, kiểu chuỗi, kiểu ngày tháng

VD về một bảng có chứa thông tin người dùng: Bảng này sẽ có tên là NSD, các cột

(trường) là: Ma_ND, Ten_ND, Tuoi_ND, Matkhau_ND; trong đó Ma_ND có kiểu nguyên, Ten_ND có kiểu chuỗi, Tuoi_ND có kiểu số, Matkhau_ND có kiểu chuỗi [13]

3.4 Giới thiệu về PHPMyAdmin

PHPMyAdmin là công cụ quản trị CSDL MySQL,mục đích chủ yếu của tiện ích này là

tương tác với MySQL ,cung cấp cho người dùng một hệ thống quản trị cơ sở dữ liệu MySQL trên nền Web

Trang 30

Chương 3: Hệ cơ sở dữ liệu MySQL

3.5 Cài đặt MySQL và phpmyadmin trên ubuntu

 Đăng nhập Ubuntu với tai khoản root

 Cài đặt Apache2:

$ apt-get install apache2

Test Apache sever: Mở trình duyệt gõ:

$ apt-get install libapache2-mod-auth-mysql

$ apt-get install php5-mysql

 Cài đặt PHPMyAdmin

$ apt-get install phpmyadmin

Mở trình duyệt lên và gõ vào:

Trang 31

Chương 3: Hệ cơ sở dữ liệu MySQL

http://localhost/phpmyadmin

Đăng nhập với tài khoản (root) đã đăng ký ở trên

3.6 Xây dựng cơ sở dữ liệu

Chúng ta sẽ sử dụng phpmyadmin để tạo một database trong đó có một table chứa thông tin là điểm thi đại học của các thí sinh

Bước 1: Trên ubuntu mở trình duyệt web và nhập http://localhost/phpmyadmin :

Hình 3.1 Đăng nhập vào phpMyAdmin

Trang 32

Chương 3: Hệ cơ sở dữ liệu MySQL

Nhập username và password vào ta được:

Hình 3.2 Trang chính phpMyAdmin Bước 2: Nhập tên database cần tạo vào Create new database Ở đây nhóm chọn tên là

test Sauđó nhập tên bảng chứa thông tin vào name và chọn số trường cần tạo

Hình 3.3 Bước nhập tên database vào MySQL

Trang 33

Chương 3: Hệ cơ sở dữ liệu MySQL

Bước 3: Nhập tên cho từng trường, kiểu dữ liệu và chiều dài tối đa dữ liệu vào:

Hình 3.4 Bước nhập các trường database vào MySQL

Bước 4: Nhấn Save ta được

Hình 3.5 Kết quả nhập các trường database vào MySQL

Trang 34

Chương 3: Hệ cơ sở dữ liệu MySQL

Bước 5: Nhấn Insert để nhập dữ liệu vào cho bảng:

Hình 3.6 Bước nhập dữ liệu database vào MySQL

Tuần tự nhập dữ liệu vào table bang_diem ta được kết quả như sau:

Hình 3.7 Kết quả nhập dữ liệu database vào MySQL

Trang 35

Chương 3: Hệ cơ sở dữ liệu MySQL

Ta có thể kiểm tra table bang_diem trên terminal của Ubuntu bằng cách sau:

 Đăng nhập vào mysql: mysql –u root –p

 Chọn database cần sử dụng ( ở đây là test): use test

 Chọn bảng cần xem thông tin: select * from bang_diem

Ta được kết quả như sau:

Hình 3.8 Kết quả database vào MySQL xem trên Ubuntu

Trang 36

Chương 4: Lập trình ứng dụng dựa vào giao tiếp AGI

Chương 4: Lập trình ứng dụng dựa vào giao tiếp AGI

4.1 Giới thiệu

- AGI được viết tắt từ Asterisk Gateway Interface là một chuẩn giao tiếp với Asterisk

giống như giao tiếp CGI trong lập trình web

- AGI cung cấp một giao diện chuẩn để các chương trình bên ngoài có thể điều khiển Diaplan của Asterisk và việc này giúp cho Asterisk có thể thực hiện được những công việc mà nếu dùng những cách thức khác sẽ rất khó khăn

- AGI cho phép Astersik gọi thực thi một chương trình ngoài để mở rộng nhiều chức năng của Astersik như điều khiến các kệnh thoại, phát âm thanh, đọc số DTMF, liên kết với

cơ sở dữ liệu … Các chương trình ngoài được gọi là AGI Script , ta có thể lập trình ra các AGI Script bằng nhiều ngôn ngữ lập trình khác nhau như Perl, PHP, C, C#, Java …

- Để cấu hình hệ thống một cách thuận lợi và đem lại hiệu quả cao, Asterisk đã cung cấp cho lập trình viên rất nhiều hàm liên quan đến AGI, về khía cạnh phát triển ứng dụng AGI xem như rất giống với ngôn ngữ script lập trình web CGI Cái khác chủ yếu là chuyên biệt trong lập trình cấu hình hệ thống Asterisk cụ thể là DialPlan [12]

4.2 Sơ đồ giao tiếp

Hình 4.1 Sơ đồ giao tiếp hệ thống Asterisk và AGI

Thông tin giữa AGI và Asterisk thông qua giao tiếp STDOUT/STDIN

- STDOUT ( standard output): AGI script gửi thông tin đến Asterisk

Trang 37

Chương 4: Lập trình ứng dụng dựa vào giao tiếp AGI

- STDIN ( standard input ): Asterisk gửi thông tin về AGI script

- STDERR ( standard error ): Thông tin lỗi

Trước tiên chúng hãy xem cách thức mà Asterisk đã gọi một AGI script:

Exten => 123, 1, AGI( baothuc.php)

 Cách gọi một AGI script cũng tương tự như gọi một ứng dụng khác của Asterisk Tuy nhiên, điểm khác biệt cơ bản giữa AGI script và các ứng dụng khác trên Asterisk là ở chỗ nguồn tài nguyên mà AGI sử dụng Trong khi các ứng dụng bên trong Asterisk chỉ sử dụng nguồn tài nguyên từ Asterisk, AGI có thể điều khiển và sử dụng các nguồn tài nguyên ở bên ngoài Do đó Asterisk có thể sử dụng các nguồn tài nguyên này trong quá trình giao tiếp với AGI

 Trong sơ đồ trên cho chúng ta thấy AGI có thể giao tiếp với nhiều thành phần khác

nhau Giao tiếp với database thường là với MySQL để lưu trữ thông tin như chi tiết cuộc gọi,

hệ thống tính cước…; giao tiếp với web cho chúng ta phát triển các ứng dụng như kiểm tra

mail; Coffee Maker thực hiện rất nhiều công việc còn lại trong hệ thống Asterisk như kiểm

tra cấu hình hệ thống, liệt kê các extension, kiểm tra password, cấu hình hệ thống Asterisk… Nhìn chung AGI cho phép chúng ta thực hiện nhiều công việc giúp khai thác và quản lý Asterisk một cách hiệu quả nhất [12]

4.3 Quá trình thực hiện kết nối Asterisk và AGI

Giao tiếp giữa Asterisk và AGI script được thực hiện dựa theo một mô hình định sẵn

Hình 4.2 Quá trình giao tiếp giữa Asterisk và AGI Script

 Khi một AGI script bắt đầu, Asterisk gửi danh sách các giá trị, cùng với các thông tin cho AGI script trước khi AGI script thực sự hoạt động:

Trang 38

Chương 4: Lập trình ứng dụng dựa vào giao tiếp AGI

agi_request: TenFile.agi

agi_channel: Kênh thực hiện gọi

agi_language: Ngôn ngữ được cấu hình

agi_type: Zap/sip hoặc iax2

agi_uniqueid: Một kí hiệu nhận dạng duy nhất cho phiên làm việc này

agi_version:

agi_callerid: Số điện thoại gọi vào

agi_calleridname: Tên của điện thoại gọi vào

 Sau khi gửi các giá trị này cho AGI script, Asterisk gửi một khoảng trắng Đây là tín

hiệu cho biết Asterisk đã thực hiện xong việc gửi các giá trị, AGI script sẽ bắt đầu thực hiện công việc

 Tiếp theo, AGI sẽ gửi các lệnh cho Asterisk thông qua STDOUT Sau mỗi lệnh, Asterisk lại gửi cho AGI một đáp ứng Công việc này được thực hiện trong suốt quá trình của AGI script [6][12]

Trang 39

Chương 4: Lập trình ứng dụng dựa vào giao tiếp AGI

4.4 Quá trình hoạt động của AGI

Như đã đề cập ở phần trước, giao tiếp giữa Asterisk và AGI script được thực hiện thông qua STDIN và STDOUT

Hình 4.3 Quá trình hoạt động của AGI

ASC được kí hiệu cho AGI script, AST kí hiệu cho Asterisk

Hoạt động giao tiếp giữa AGI script và Asterisk đơn giản là những truy vấn và trả lời

được đưa thông qua STDIN/STDOUT

Sau đây là mô hình phức tạp hơn biểu diễn hoạt động của AGI script:

Trang 40

Chương 4: Lập trình ứng dụng dựa vào giao tiếp AGI

Hình 4.4 Hoạt động của AGI có kết nối dữ liệu bên ngoài

Mô hình ở trên mô tả một ví dụ về hoạt động của AGI trong đó bao gồm hai thành phần: truy cập vào cơ sở dữ liệu và giao tiếp với web service để sử dụng thông tin Qua đây ta có thể thấy AGI có khả năng kết nối với nhiều nguồn thông tin và dữ liệu khác nhau mà Asterisk không có được [6]

4.5 AGI debugging

- Asterisk cung cấp một phương pháp để debug một AGI script khi nó đang hoạt động

Để có thể debug một AGI, chúng ta đăng nhập vào giao diện CLI của Asterisk và thực hiện câu lệnh sau:

$Agi set debug on

- Sau lệnh này, khi AGI script thực hiện, giao diện CLI sẽ hiển thị như nhau:

Ngày đăng: 20/09/2014, 08:57

HÌNH ẢNH LIÊN QUAN

Hình 2.1  Cấu hình của mạng điện thoại IP - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 2.1 Cấu hình của mạng điện thoại IP (Trang 19)
Hình 2.2 Quá trình thực hiện cuộc gọi giữa hai máy IP phone - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 2.2 Quá trình thực hiện cuộc gọi giữa hai máy IP phone (Trang 20)
Hình 2.3  Giao thức SIP - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 2.3 Giao thức SIP (Trang 21)
Hình 2.4 Sơ đồ giao tiếp tổng quát của Asterisk - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 2.4 Sơ đồ giao tiếp tổng quát của Asterisk (Trang 22)
Hình 3.1 Đăng nhập vào phpMyAdmin - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.1 Đăng nhập vào phpMyAdmin (Trang 31)
Hình 3.2 Trang chính phpMyAdmin - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.2 Trang chính phpMyAdmin (Trang 32)
Hình 3.3 Bước nhập tên database vào MySQL - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.3 Bước nhập tên database vào MySQL (Trang 32)
Hình 3.5 Kết quả nhập các trường database vào MySQL - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.5 Kết quả nhập các trường database vào MySQL (Trang 33)
Hình 3.4 Bước nhập các trường database vào MySQL - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.4 Bước nhập các trường database vào MySQL (Trang 33)
Hình 3.6 Bước nhập dữ liệu database vào MySQL - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.6 Bước nhập dữ liệu database vào MySQL (Trang 34)
Hình 3.7 Kết quả nhập dữ liệu database vào MySQL - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.7 Kết quả nhập dữ liệu database vào MySQL (Trang 34)
Hình 3.8 Kết quả database vào MySQL xem trên Ubuntu - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 3.8 Kết quả database vào MySQL xem trên Ubuntu (Trang 35)
Hình 4.1 Sơ đồ giao tiếp hệ thống Asterisk và AGI - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 4.1 Sơ đồ giao tiếp hệ thống Asterisk và AGI (Trang 36)
Hình 4.2 Quá trình giao tiếp giữa Asterisk và AGI Script - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 4.2 Quá trình giao tiếp giữa Asterisk và AGI Script (Trang 37)
Hình 4.3 Quá trình hoạt động của AGI - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 4.3 Quá trình hoạt động của AGI (Trang 39)
Hình 4.4 Hoạt động của AGI có kết nối dữ liệu bên ngoài - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 4.4 Hoạt động của AGI có kết nối dữ liệu bên ngoài (Trang 40)
Hình 4.5 AGI debug - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 4.5 AGI debug (Trang 41)
Hình 5.1 Lưu đồ giải thuật dịch vụ báo thức - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.1 Lưu đồ giải thuật dịch vụ báo thức (Trang 45)
Hình 5.2 Lưu đồ giải thuật dịch vụ quà tặng âm nhạc - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.2 Lưu đồ giải thuật dịch vụ quà tặng âm nhạc (Trang 47)
Hình 5.3 Cơ sở dữ liệu của dịch vụ quà tậng âm nhạc - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.3 Cơ sở dữ liệu của dịch vụ quà tậng âm nhạc (Trang 48)
Hình 5.4 Lưu đồ giải thuật dịch vụ radio streamline - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.4 Lưu đồ giải thuật dịch vụ radio streamline (Trang 49)
Hình 5.5 Cơ sở dữ liệu của dịch vụ radio streamline - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.5 Cơ sở dữ liệu của dịch vụ radio streamline (Trang 50)
Hình 5.7 Cơ sở dữ liệu của dịch vụ tra cứu điểm thi đại học - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.7 Cơ sở dữ liệu của dịch vụ tra cứu điểm thi đại học (Trang 52)
Hình 5.8 Lưu đồ giải thuật  dịch vụ IVR - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.8 Lưu đồ giải thuật dịch vụ IVR (Trang 54)
Hình 5.10 Cơ sở dữ liệu của dịch vụ trả sau - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 5.10 Cơ sở dữ liệu của dịch vụ trả sau (Trang 55)
Hình 6.1 Hoạt động của DCOM - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 6.1 Hoạt động của DCOM (Trang 57)
Hình 6.3 Phối hợp giữa các ứng dụng - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 6.3 Phối hợp giữa các ứng dụng (Trang 58)
Hình 6.2 Kiến trúc Web Service - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 6.2 Kiến trúc Web Service (Trang 58)
Hình 6.4 Kết nối giữa Asterisk và Web Service - XÂY DỰNG CÁC DỊCH VỤ TỔNG  ĐÀI ASTERISK DỰA TRÊN LẬP  TRÌNH PHPAGI
Hình 6.4 Kết nối giữa Asterisk và Web Service (Trang 59)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w