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

TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP

163 488 3

Đ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 163
Dung lượng 4,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 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 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.

Trang 1

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!

TPHCM, tháng 8 năm 2008

Nguyễn Thanh Hiếu Nguyễn Thanh Phước

Trang 2

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

Trang 3

2.3.6 Call Parking 43

2.3.7 Remote call pickupe 43

2.3.8 Privacy Manager 43

2.3.9 Backlist 43

2.4 Các ngữ cảnh ứng dụng 43

2.4.1 Tổng đài voip IP PBX 43

2.4.2 Kết nối IP PBX với PBX 43

2.4.3 Kết nối giữa các server Asterisk 44

2.4.4 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị 44

2.4.5 Chức năng Phân phối cuộc gọi tự động ACD (Automatic Call Distribution) 44

Chương 3: MỘT SỐ KHÁI NIỆM TRONG HỆ THỐNG ASTERISK 45

3.1 PBX - Private Branch Exchange 45

3.1.1 Âm hiệu mời quay số (Dial tone): 45

3.1.2 Âm hiệu báo bận (Busy tone): 46

3.1.3.Âm hiệu hồi âm chuông (Ring back tone): 47

3.1.4.Tín hiệu chuông (Ring tone): 47

3.1.5 Tín hiệu số quay: 48

3.2 PSTN – Public Switched Telephone Network 49

3.3 TDM – Time Division Multiplexing 50

3.4 Các hình thức báo hiệu giao tiếp TDM 50

3.4.1 FXO và FXS 50

3.4.2 Báo hiệu Analog giữa đầu cuối và tổng đài 51

3.4.3 Báo hiệu giữa các tổng đài 51

3.5 Thiết Bị VoIP 52

3.5.1 Voip Phone 52

3.5.2 Softphone 52

3.5.3 Card giao tiếp với PSTN 53

3.5.4 ATA Analog Telephone Adaptors 54

Trang 4

3.6 Codecs 54

3.7 QoS – Quality of Service 55

3.7.1 Độ trễ 55

3.7.2 Độ trượt(Jitter) 56

Chương 4: CÀI ĐẶT VÀ CẤU HÌNH ASTERISK 60

4.1 Cài đặt asterisk 60

4.2 Tổ Chức Thư Mục của Asterisk 62

4.2.1 /etc/asterisk/ 62

4.2.2 /usr/lib/asterisk/modules/ 63

4.2.3 /var/lib/asterisk 63

4.2.4 /var/spool/asterisk/ 64

4.2.5 /var/run/ 65

4.2.6 /var/log/asterisk/ 65

4.2.7 /var/log/asterisk/cdr-csv 66

4.3 Một số lệnh thao tác trên hệ thống asterisk 66

4.4 Tập tin cấu hình 67

4.5 Các kiểu ảnh hưởng trong tập cấu hình 68

4.5.1 Simple Group 69

4.5.2 Option inheritance 69

4.5.3 Complex Entity 70

4.6 Giới Thiệu DialPlan 70

4.6.1 Extentions 71

4.6.2 Priorities – Thứ tự thực hiện 72

4.6.3 Aplications – Các hàm ứng dụng 73

4.6.3.1 Ứng dụng Playback() và Goto() 73

4.6.3.2 Ứng dụng GotoIf( ) 75

4.6.4 Contexts - Ngữ cảnh 76

4.6.5 Chỉ định Pattern 78

4.6.6 Include 79

Trang 5

4.6.7 Sử dụng Database Asterisk 81

4.6.8 Các biểu thức căn bản: 82

Chương 5: MÔ HÌNH THỰC HIỆN 86

5.1 Một số mô hình sử dụng trong thực tế 86

5.1.1 Mô hình đơn site 86

5.1.2 Mô hình đa site xử lý cuộc gọi phân tán 87

5.1.3 Mô hình đa site xử lí cuộc gọi tập trung 88

5.1.4 Mô hình đa site xử lý cuộc gọi kết hợp 89

5.2 Mô hình triển khai hệ thống Asterisk 91

5.3 Cấu hình phần cứng 92

5.3.1 Cấu hình thiết bị Grandstream 488 92

5.3.2 Lắp đặt Card X100P và cấu hình 95

5.4 Khai báo kênh SIP 97

5.5 Khai báo kênh IAX 100

5.6 Cấu hình Softphone 101

5.6.1 Cấu hình Softphone Xlite 101

5.6.2 Cấu hình Softphone Zoiper 102

5.7 Xây dựng IP-PBX 103

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 104

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 106

5.7.3 Cuộc gọi ra ngoài PSTN 107

5.8 Xây dựng các dịch vụ 108

5.8.1 IVR (Interactive voice response) 108

5.8.2 Voicemail (hộp thư thoại) 110

5.8.3 Call Forwarding (chuyển cuộc gọi) 112

5.8.3.1 Chuyển cuộc gọi tức thời 112

5.8.3.2 Chuyển cuộc gọi khi bận 113

5.8.3.3 Chuyển cuộc gọi khi không trả lời 115

5.8.4 Call Transfer 116

Trang 6

5.8.5 Call Parking 117

5.8.6 Call Pickup 120

5.8.7 Meetme (chức năng hội nghị) 121

5.8.8 DND (Do not Disturb - Dịch vụ chống làm phiền ) 127

5.8.9 DISA (Direct Inward System Access) 128

5.8.10 Asterisk RealTime Architecture 131

5.8.11 CDR (Call Detail Record) 135

5.9 Dial Plan-Liên kết các dịch vụ 139

PHỤ LỤC 149

PHỤ LỤC 1: CÀI ĐẶT FEDORA CORE 5 149

PHỤ LỤC 2: MỘT SỐ CÂU LỆNH SỬ DỤNG TRONG MYSQL VÀ PHP 158

PHỤ LỤC 3: HƯỚNG DẪN PHẦN MỀM BẮT GÓI ETHEREAL 159

PHỤ LỤC 4: CÁC THUẬT NGỮ VIẾT TẮT: 162

Trang 7

BẢNG CÁC HÌNH VẼ

Hình 1: Mô hình tổng quan 11

Hình 1.1 Mô hình tham chiếu OSI và mô hình TCP/IP 14

Hình 1.2: Đóng gói dữ liệu của user thành khung Ethernet 14

Hình 1.3: Tiêu đề gói dữ liệu IP 15

Hình 1.4: Các lớp của địa chỉ IP 17

Hình 1.5: Ví dụ về điều khiển luồng dùng cửa sổ trượt 19

Hình 1.6: Định dạng gói tin UDP 20

Hình 1.7: Cấu trúc gói tin RTP 21

Hình 1.8: Cấu trúc gói tin RTCP 24

Hình 1.9: Mối quan hệ giữa Flowspec và Fliterspec 26

Hình 1.10: Các giao thức sử dụng trong H.323 26

Hình 1.11: Một số bản tin RAS thông dụng 27

Hình 1.12: Các thông điệp Q.931 thông dụng 27

Hình 1.13: Các thành phần của H.323 28

Hình 1.14: Tiến hành cuộc gọi trong H.323 28

Hình 1.15: Các thành phần trong SIP 29

Hình 1.16: Tiến hành cuộc gọi trong SIP với proxy server 31

Hình 1.17: Các thành phần cơ bản trong MGCP 32

Hình 1.18: Tiến hành cuộc gọi trong MGCP 33

Hình 1.19: Minh họa hoạt động của NAT 35

Hình 2.1: Sơ đồ tổng quát 38

Hình 2.2: Sơ đồ khối của asterisk 39

Hình 3.1: Âm hiệu Dial tone 46

Hình 3.2: Âm hiệu báo bận 46

Hình 3.3: Âm hiệu ring back tone 47

Hình 3.4: Âm hiệu rung chuông 47

Hình 3.5: Ma trận nút nhấn 49

Trang 8

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

Trang 9

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

Trang 10

MỤC TIÊU, YÊU CẦU VÀ HƯỚNG GIẢI QUYẾT ĐỀ TÀI

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

Trang 11

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

Hình 1: Mô hình tổng quan

Trang 12

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

Trang 13

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

Trang 14

Hình 1.1 Mô hình tham chiếu OSI Mô hình TCP/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

Trang 15

1.2.2 Giao thức IP (Internet Protocol)

Giao thức chính của của bộ TCP/IP là IP Nó là sự thực thi của lớp mạng và được chỉ định chính thức trong RFC 791 IP được thiết kế cho người sử dụng trong các mạng máy tính liên kết với nhau Nó cùng cấp dịch vụ giao nhận không tin cậy host đến host dạng gói Gói dữ liệu còn được gọi là IP datagram Dạng không tin cậy có nghĩa là không có một sự đảm bảo rằng IP datagram đến địa chỉ đích đúng thứ tự Cũng không chắc chắn rằng datagram trên thực tế đến đúng địa chỉ đích IP dựa vào giao thức tầng cao hơn để xử lý những vấn đề này

Hai tính chất chính của IP là địa chỉ IP và phân mãnh Thông tin yêu cầu để cung cấp các dịch vụ này chứa trong tiêu đề (header) của IP datagram Phần tiêu đề

có chiều dài từ 20 đến 60 byte Hình 2.5 chỉ cấu trúc của IP header

Bit 0-3 Bit 4-7 Bit 8-10 Bit

Loại dịch vụ

Độ dài tổng

Địa chỉ nguồn Địa chỉ đích Tuỳ chọn

Hình 1.3: Tiêu đề gói dữ liệu IP

- Phiên bản (Version): Trường 4 bit này cho biết phiên bản IP tạo ra phần

tiêu đề này Phiên bản hiện tại là 4 Tuy nhiên phiên bản IPv6 sẽ thay thế IPv4 trong tương lai

- Chiều dài tiêu đề (HL – Header Length): Trường 4 bit này cho biết chiều

dài của phần tiêu đề của gói dữ liệu IP, tính theo đơn vị từ (32 bit) Trường này cần thiết vì chiều dài của phần tiêu đề thay đổi (từ 20 đến 60 byte) Khi không có phần tuỳ chọn (option), chiều dài phần tiêu đề là 20 byte và giá trị của trường này là 5 (5x4=20) Khi phần tuỳ chọn có kích thước tối đa thì giá trị của trường là 15 (15x4=60)

Trang 16

- Độ ư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ó

+ 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

Trang 17

- 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

Trang 18

đượ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

1.2.5 Giao thức TCP (Transport Control Protocol)

TCP là giao thức điều khiển truyền dẫn có độ tin cậy cao được thiết kế để phục vụ việc liên lạc giữa hai host và chỉ hỗ trợ phương thức truyền “unicasting” Trong ứng dụng truyền thoại VoIP, giao thức TCP được sử dụng làm giao thức truyền báo hiệu chứ không phục vụ việc truyền các tín hiệu thoại Lý do vì header của TCP lớn và vì đảm bảo tính chính xác cao của đường truyền nên giao thức TCP gây ra thời gian trễ lớn ảnh hưởng đến chất lượng các ứng dụng thời gian thực Và

để đảm bảo tính chính xác và thứ tự nên giao thức TCP được ứng dụng để truyền báo hiệu Giao thức TCP thực hiện các tính năng chính như sau:

- Thiết lập liên kết: Khi hai thực thể TCP muốn trao đổi dữ liệu với nhau cần phải thiết lập một liên kết logic giữa chúng Liên kết được thiết lập phải

Trang 19

đượ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

Hình 1.5: Ví dụ về điều khiển luồng dùng cửa sổ trượt

1.2.6 UDP (User Data Protocol)

UDP là một trong hai giao thức truyền dữ liệu được sử dụng trên cơ sở của giao thức IP Các đơn vị dữ liệu được trao đổi là các UDP datagram Giao thức UDP là giao thức không có liên kết và không có các cơ chế đảm bảo độ tin cậy Giao thức UDP không cung cấp các cơ chế kiểm tra, truyền lại cũng như các cơ chế phản hồi để kiểm soát tốc độ luồng dữ liệu Do đó các UDP datagram có thể bị thu được nhiều lần hoặc thu không đúng Tuy vậy UDP cũng cung cấp các cơ chế quản

Trang 20

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

Cổng nguồn (Source Port (16 bit)): số hiệu cổng của trạm nguồn

Destination Port (16 bit): số hiệu cổng của trạm đích

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ư

Trang 21

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:

Timestamp Synchronysation source (SSCR) identifier Contributing source (CCRC) identifier (optional)

Extension header (optional)

Hình 1.7: Cấu trúc gói tin RTP

- Version (2 bit): chỉ rõ version của RTP hiện tại đang được cài đặt Hiện tại các giao thức RTP được cài đặt là version 2

- Padding (1 bit): có vai trò như bit cờ được sử dụng để đánh dấu khi có một

số byte được chèn vào trong gói Bit này được thiết kế để thích nghi với việc sử dụng của các thuật toán mã hoá mà yêu cầu các khối có độ dài cố định và việc truyền những gói tin RTP ở các lớp giao thức thấp hơn

- Extension (1 bit): cũng có vai trò như một bit cờ được sử dụng để đánh dấu khi có header mở rộng tiếp theo header cố định Header mở rộng cung cấp các cơ chế cho phép những người phát triển thử nghiệm bằng cách thêm các chức năng định dạng dữ liệu độc lập mà yêu cầu các thông tin trong header thêm khi cho phép một hoạt động bổ sung bỏ qua phần mở rộng

- CSRC count (4 bit): chỉ rõ số lượng của CSRC (contributing source) có trong RTP header

- Marker (1 bit): có vai trò như một bit cờ, trạng thái của nó được phụ thuộc vào trường payload type Khi bit này được thiết lập nó sẽ chỉ ra rằng trường payload type có mang những thông tin chi tiết được định nghĩa phù hợp với

Trang 22

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

Trang 23

1.4 RTCP (Real-time Transport Control Protocol)

Mặc dù RTP là một giao thức độc lập nhưng thường được hỗ trợ bởi giao thức RTCP RTCP trả về nguồn các thông tin về sự truyền thông và các thành phần đích Giao thức điều khiển này cho phép gửi về các thông số về bên thu và tự thích nghi với bên phát cho phù hợp vời bên phát Mỗi người tham gia một phiên truyền RTP phải gửi định kỳ các gói RTCP tới tất cả những người khác cũng tham gia

phiên truyền Tuỳ theo mục đích mà RTCP thực hiện 4 chức năng:

- Chức năng chính của RTCP là cung cấp một sự phản hồi chất lượng của

dữ liệu Các thông tin đó giúp cho ứng dụng thực hiện chức năng điều khiển luồng và quản lý tắc nghẽn Các thông tin còn được sử dụng để chẩn đoán kết quả

- RTCP cung cấp sự nhận dạng mà được sử dụng để tập hợp các kiểu dữ liệu khác nhau (ví dụ audio và video) Điều này là cần thiết vì khả năng ngày không được RTP cung cấp

- Nhờ việc định kỳ gửi các gói tin RTCP mà mỗi phiên truyền có thể theo dõi được số người tham gia RTP không thể sử dụng được cho mục đích này khi một ai đó không gửi dữ liệu mà chỉ nhận từ những người khác

- Cuối cùng là một chức năng lựa chọn cho phép có thêm thông tin về những người tham gia vào phiên truyền

Tuỳ thuộc vào giao thức RTP được sử dụng cho loại dữ liệu nào mà RTCP cung cấp các thông báo điều khiển khác nhau Có 4 loại thông báo điều khiển chính được giao thức RTCP cung cấp là:

- Sender report (SR): thông báo này chứa các thông tin thống kê liên quan đến kết quả truyền như tỷ lệ tổn hao, số gói dữ liệu bị mất, khoảng trễ Các thông báo này phát ra từ phía phát trong một phiên truyền thông

- Receiver report (RR): thông báo này chứa các thông tin thống kê liên quan đến kết quả nhận giữa các điểm cuối Các thông báo này được phát ra từ phía thu trong một phiên truyền thông

Trang 24

- 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

 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à

Trang 25

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ẽ

Trang 26

Hình 1.9: Mối quan hệ giữa Flowspec và Fliterspec

1.6 Bộ giao thức H.323

H.323 là 1 khuyến nghị của ITU-T xác định phương thức luồng multimedia được truyền qua mạng chuyển mạch gói H323 là 1 khuyến nghị của ITU-T xác định phương thức luồng multimedia được truyền qua mạng chuyển mạch gói H323

đã sử dụng lại 1 số chuẩn sẵn có (ví dụ như là Q.931) để đạt được mục đích này Trong giao thức H323, việc truyền các luồng voice chỉ là 1 trong các ứng dụng của

nó, và phần chính của giao thức chính là việc chia sẻ dữ liệu và video

Trang 27

Hình 1.11: Một số bản tin RAS thông dụng

Thông điệp Q.931 Miêu tả

Setup Thông điệp ban đầu để cài đặt cuộc gọi

CallProceeding Chỉ ra rằng không có nhiều hơn một thông tin thiết lập cuộc

gói sẽ được tiến hành Alerting Chỉ ra rằng user biết được cuộc gọi (rung chuông)

Connecct Kết thúc quá trình thiết lập cuộc gọi

ReleaseComplete Bắt đầu hoàn thành cuộc gọi

Hình 1.12: Các thông điệp Q.931 thông dụng

* Các thành phần của H.323:

- 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

Trang 28

Hình 1.13: Các thành phần của H.323

* Tiến hành cuộc gọi trong H.323:

Hình 1.14: Tiến hành cuộc gọi trong H.323

- Gateway gởi một thông điệp ARQ đến gatekeeper để bắt đầu quá trình

gọi Gateway này được cấu hình với vùng miền và địa chỉ của gatekeeper

Trang 29

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

Hình 1.15: Các thành phần trong SIP

- Các user agent: Nó bao gồm các client phát ra thông điệp và các server

đáp ứng thông điệp đó Trong các trường hợp thì cả hai đều nằm trong một user agent

- Proxy server: Chúng đưa các thông điệp đến các server khác, cũng có thể

là nhiều proxy server hoặc chúng đưa trực tiếp đến đầu cuối

- Redirect server: Chúng nhận được các yêu cầu SIP và ánh xạ địa chỉ

thông điệp từ không hoặc nhiều hơn địa chỉ mới

Redirect Server

Location Server Registrar Server

User Agent

Proxy Server

Gateway

PSTN

Proxy Server

Trang 30

- 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ệ

Trang 31

- 6xx: (GLOBAL FAILURE) Thông báo yêu cầu không thể xử lý được ở bất cứ server nào

* Tiến hành cuộc gọi trong SIP:

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

Trang 32

1.8 MGCP ( Media Gateway Control Protocol)

Giao thức MGCP được định nghĩa trong RFC2705, tháng 10 năm 1999, cho phép điều khiển các gateway thông qua các thành phần điều khiển nằm bên ngoài mạng MGCP sử dụng mô hình kết nối tương tự như SGCP dựa trên các kết nối cơ bản giữa thiết bị đầu cuối và gateway Các kết nối có thể là kết nối điểm-điểm hoặc kết nối đa điểm

- Call agent: Thực thi điều khiển qua hoạt động của gateway

* Tiến hành cuộc gọi trong MGCP:

Trang 33

Hình 1.18: Tiến hành cuộc gọi trong MGCP

- Call agent gởi một yêu cầu thông báo RQNT (Notice Request) đến mỗi gateway Bởi vì các gateway này là các gateway có liên quan với nhau, nên thông điệp yêu cầu trên chỉ dẫn các gateway này chờ một sự chuyển tiếp nhấc máy (sự kiện) Khi mà sự kiện chuyển tiếp off-hook xảy ra, call agent chỉ dẫn cho gateway cung cấp âm mời gọi (dial tone) Call agent yêu cầu gateway giám sát các sự kiện khác để việc xảy ra các sự kiện tốt Bằng cách cung cấp các số ánh xạ, call agent có thể có tập hợp các số của gateway trước khi nó khai báo cho call agent

- Gateway trả lời lại yêu cầu Ở thời điểm này, cả call agent và gateway đều chờ đợi sự kiện bấm nút

- Khi user trên gateway A nhấc máy, như đã được trong bản tin trước đó của call agent, gateway cung cấp âm mời gọi (dial tone) Bởi vì gateway được cung cấp với các số ánh xạ, nó bắt đầu tập hợp các số (khi chúng được gọi) cho đến khi việc ánh xạ là chính xác

- Gateway gởi một thông điệp khai báo NTFY (Notify) đến call agent để thông báo cho call agent về sự kiện yêu cầu đã được tiến hành Khai báo này nhận dạng các đầu cuối, các sự kiện và trong trường hợp này có các số

đã được gọi

Trang 34

- 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

Trang 35

1.9 NAT (Network address translator)

NAT dùng để chia sẻ nhiều máy tính trong mạng LAN nội bộ sử dụng được Internet, nhưng cũng chính vì thế mà các máy tính nội bộ gặp khó khăn trong việc thực hiện cuộc gọi VoIP qua Internet Đó chính là vấn để trở ngại khi truyền thoại qua giao thức RTP

Hình 1.19: Minh họa hoạt động của NAT

Trong Giao thức RTP như chúng ta đã biết đó là thoại được chuyển trên hai đường khác nhau là đường phát và đường thu, Vấn đề NAT nằm ở chỗ tín hiệu thoại từ bên ngoài vào bên trong qua giao thức RTP không thực hiện được còn chiều ngược lại thì thực hiện tốt Hay nói cách khác vấn đề NAT làm cho các cuộc gọi từ Internet đàm thoại vào các máy nội bộ qua NAT thì không nghe được, còn trong trường hợp các cuộc gọi từ các máy nội bộ ra các máy internet thì nghe tốt.Vấn đề NAT trên được giải quyết trong Asterisk bằng việc khai báo thông số NAT=yes trong cấu hình kênh giao thức SIP

1.10 Giao thức IAX (Inter Asterisk eXchange)

IAX là giao thức báo hiệu Voip được phát triển bởi tác giả của phần mềm Asterisk để khắc phục những hạn chế trong giao thức SIP Không giống như giao thức SIP chuyển tải thoại và báo hiệu trên hai kênh khác nhau (out of band), IAX chuyển tải thoại và báo hiệu trên cùng một kênh (in band) IAX giải quyết được vấn

Trang 36

đề 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ế

Trang 37

Chương 2 TỔNG QUAN VỀ ASTERISK

2.1 Giới thiệu

Asterisk là hệ thống chuyển mạch mềm, là phần mềm nguồn mở được viết bằng ngôn ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của tổng đài PBX và hơn thế nữa Asterisk ra đời vào năm 1999 bởi một chàng trai sinh năm 1977 tên là Mark Spencer Anh ta viết phần mềm này ban đầu không ngoài mục đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại hỗ trợ cộng đồng người sử dụng và phát triển Linux

Asterisk đem đến cho người sử dụng tất cả các tính năng và ứng dụng của

hệ thống tổng đài PBX và cung cấp nhiều tính năng mà tổng đài PBX thông thường không có được, đó là sự kết hợp giữa chuyển mạch VOIP và chuyển mạch TDM, đó

là khả năng mở rộng đáp ứng nhu cầu cho từng ứng dụng…

Asterisk là một PBX và nhiều hơn thế Asterisk là một phần mềm mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí mà biến một PC rẻ tiền thông thường chạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh mẽ Asterisk là một

bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử lý cuộc gọi đầy đủ chức năng Asterisk là một nền tảng tích hợp điện thoại vi tính hoá kiến trúc

mở Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới Công nghệ Asterisk đang phục vụ cho nhiều doanh nghiệp

Hiện nay Asterisk trên đà phát triển nhanh được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều có mạng máy tính và cần liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh và cần một chi phí thấp thậm chí không phải tốn chi phí khi thực hiện các cuộc gọi trên mạng nội bộ của công ty

Không gói gọn thông tin liên lạc trong công ty mà các ứng dụng giao tiếp với mạng PSTN hoặc mạng VOIP (như voice777) cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN

Trang 38

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

Hình 2.1: Sơ đồ tổng quát

Asterisk là hệ thống chuyển mạch tích hợp vừa là công nghệ truyền thống TDM vừa là chuyển mạch voip Hình trên cũng cho thấy khả năng giao tiếp của hệ thống Giao tiếp với điện thoại analog thông thường, giao tiếp với thiết bị điện thoại voip, ngoài ra còn có thể giao tiếp với mạng PSTN và các nhà cung cấp voip khác

2.2 Kiến trúc asterisk

Về cơ bản kiến trúc của Asterisk là sự kết hộp giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại Công nghệ điện thoại cho VOIP như SIP, H323, IAX, MGCP Các công nghệ điện thoại cho hệ thống chuyển mạch mạch TDM như

Trang 39

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…

Hình 2.2: Sơ đồ khối của asterisk

Asterisk có một số chức năng chính đóng vai trò quan trọng trong hệ thống chuyển mạch cuộc gọi Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống

Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào

kế hoạch quay số (Dialplan) được thực hiện cấu hình trong file extension.conf

Chức năng Application Launchar để rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại…

Trang 40

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

Ngày đăng: 17/04/2015, 21:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiế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 Khác
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 NamTiếng Anh Khác
1. O'Reilly - Asterisk The Future Of Telephony 2005Voice over IP Fundamentals (2nd Edition), Cisco Press, 2006 Khác
2. IP Telephony (2nd Edition), Cisco Press, 2006 Khác
3. Packt Publishing.Building.Telephony.Systems.with.Asterisk.2006 4. VoIP for Dummies by Timothy Kelly Khác

HÌNH ẢNH LIÊN QUAN

Hình 1: Mô hình tổng quan - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1 Mô hình tổng quan (Trang 11)
Hình 1.9: Mối quan hệ giữa Flowspec và Fliterspec - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1.9 Mối quan hệ giữa Flowspec và Fliterspec (Trang 26)
Hình 1.13:  Các thành phần của H.323 - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1.13 Các thành phần của H.323 (Trang 28)
Hình 1.16: Tiến hành cuộc gọi trong SIP với proxy server - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1.16 Tiến hành cuộc gọi trong SIP với proxy server (Trang 31)
Hình 1.17: Các thành phần cơ bản trong MGCP - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1.17 Các thành phần cơ bản trong MGCP (Trang 32)
Hình 1.18:  Tiến hành cuộc gọi trong MGCP - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1.18 Tiến hành cuộc gọi trong MGCP (Trang 33)
Hình 1.19: Minh họa hoạt động của NAT - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 1.19 Minh họa hoạt động của NAT (Trang 35)
Hình 2.1: Sơ đồ tổng quát - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 2.1 Sơ đồ tổng quát (Trang 38)
Hình 2.2: Sơ đồ khối của asterisk - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 2.2 Sơ đồ khối của asterisk (Trang 39)
Hình 3.12: Nguyên nhân gây ra jitter  3.7.3 Mất gói - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 3.12 Nguyên nhân gây ra jitter 3.7.3 Mất gói (Trang 57)
Hình 4.1: Cấu trúc thư mục - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 4.1 Cấu trúc thư mục (Trang 65)
Hình 4.2: Một ví dụ về file cấu hình - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 4.2 Một ví dụ về file cấu hình (Trang 68)
Hình 5.2: Mô hình đa site phân tán  5.1.3 Mô hình đa site xử lí cuộc gọi tập trung - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 5.2 Mô hình đa site phân tán 5.1.3 Mô hình đa site xử lí cuộc gọi tập trung (Trang 88)
Hình 5.3: Mô hình đa site tập trung  5.1.4 Mô hình đa site xử lý cuộc gọi kết hợp - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 5.3 Mô hình đa site tập trung 5.1.4 Mô hình đa site xử lý cuộc gọi kết hợp (Trang 89)
Hình 5.4: Mô hình đa site kết hợp - TÌM HIỂU VÀ XÂY DỰNG TỔNG ĐÀI IP
Hình 5.4 Mô hình đa site kết hợp (Trang 90)

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