Đối với những doanh nghiệp có nhiều chi nhánh đã có sẵn hạ tầng mạng Internet và các trang thiết bị liên lạc nội bộ sử dụng trong tổng đài PBX Private Branch eXchange: Tổng đài điện thoạ
Trang 1tin của trường Đại học Lạc Hồng đã đào tạo cho chúng tôi những kiến thức, những kinh nghiệm quý báu trong suốt thời gian học tập tại trường
Trước hết chúng tôi xin chân thành cảm những người thân trong gia đã luôn gần gũi, động viên và tạo mọi điều kiện tốt để chúng tôi hoàn thành luận văn này
Nhóm nghiên cứu xin được gửi lời tri ân sâu sắc nhất đến thầy Ths Nguyễn Hoàng Liêm và anh Ks Trần Vũ đã hướng dẫn tận tình và quan tâm, động viên chúng tôi trong suốt quá trình thực hiện đề tài
Chúng tôi cũng vô cùng cảm ơn sự nhiệt tình của các nhóm bạn đã giúp đỡ nhóm nghiên cứu chúng tôi rất nhiều trong quá trình tìm kiếm tài liệu và góp ý cho bài làm của chúng tôi được tốt hơn
Mặc dù đã cố gắng hết sức để hoàn thành luận văn này, nhưng do kiến thức còn hạn chế nên sẽ không tránh khỏi những thiếu sót Rất mong quý thầy cô và bạn bè thông cảm và đóng góp ý kiến cho nhóm nghiên cứu
Chúng tôi xin gửi lời chúc sức khỏe và thành đạt tới tất cả quý thầy cô cùng các bạn
Biên Hòa, Tháng 11 năm 2013 Nhóm sinh viên thực hiện Phạm Minh Dũng - Lâm Thị Hải Lý
Trang 2MỤC LỤC
DANH MỤC VIẾT TẮT
DANH MỤC BẢNG VÀ HÌNH
PHẦN MỞ ĐẦU 1
1.Lý do chọn đề tài 1
2.Lịch sử nghiên cứu 2
2.1.Trên thế giới 2
2.2.Trong nước 2
3.Mục tiêu nghiên cứu 3
4.Đối tượng nghiên cứu và phạm vi nghiên cứu 3
5.Phương pháp nghiên cứu 3
6.Những đóng góp của đề tài và những vấn đề chưa thực hiện được 3
7.Kết cấu của đề tài: 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5
1.1.Khái niệm VoIP: 5
1.2.Các mô hình mạng VoIP: 7
1.2.1.Mô hình PCto PC: 7
1.2.2.Mô hình PC to Phone: 8
1.2.3.Mô hình Phone to Phone: 8
1.3 Giao thức vận chuyển của VoIP 9
1.3.1 Mô hình TCP/IP: 9
1.3.1.1 Giao thức TCP (Transmission Control Protocol) 10
1.3.1.2 Giao thức IP (Internet Protocol) 12
1.3.2 Giao thức UDP (User Datagram Protocol) 16
1.3.3 Giao thức RTP (Real – time Transport Protocol) 16
1.4 Giao thức báo hiệu SIP: 19
Trang 31.4.2 Các loại thông điệp SIP 21
1.4.3 Giao thức đặc tả phiên SDP (Session DescriptionProtocol): 22
1.4.5 Mô tả cuộc gọi thông qua SIP: 25
1.5 Hệ thống Asterisk 27
1.5.1 Giới thiệu Asterisk 27
1.5.2 Lịch sử của Asterisk 27
1.5.3 Kiến trúc Asterisk 29
1.5.4 Một số tính năng cơ bản của Asterisk 32
1.5.4.1 Hộp thư thoại (Voicemail) 32
1.5.4.2 Chuyển hướng cuộc gọi (Call Forwarding) 32
1.5.4.3 Hiển thị số đang gọi đến (Caller ID) 32
1.5.4.4 Hội thoại (Conference Call) 33
1.5.4.5 Tổng đài trả lời tự động 33
1.5.4.6 Thời gian (Time and Date) 33
1.5.4.7 Call Parking 33
1.5.4.8 Remote Call Pickup 33
1.5.4.9 Quản lý cuộc gọi (Privacy Manager) 34
1.5.4.10 Backlist 34
1.5.4.11 Chi tiết cuộc gọi (Call Detail Records) 34
1.5.4.12 Ghi âm cuộc gọi (Call Recording) 34
1.5.5 SIP trong Asterisk 30
1.5.6 Một số lệnh cơ bản trong Asterisk 32
1.5.7 Dial Plan 35
1.5.7.1 Context 36
1.5.7.2 Extensions 36
1.5.7.3 Priority 37
Trang 41.5.7.7 Một số extensions đặc biệt 41
1.6 Tiểu kết 41
CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG TỔNG ĐÀI 42
2.1 Về phần cứng 42
2.2 Về phần mềm 42
2.3 Chức năng của hệ thống: 42
2.4 Xây dựng hệ thống tổng đài 43
2.4.1 Mô hình tổng thể: 43
2.4.2 Các bước cài đặt 44
2.4.3 Cấu hình cho tổng đài Asterisk 47
2.4.3.1 Cấu hình qua giao diện FreePBX GUI 47
2.4.3.2 Xây dựng tính năng Voicemail 55
2.4.3.3 Xây dựng tính năng hội thoại (Conference Call) 58
2.4.3.4 Cấu hình tính năng Music On Hold: 60
2.4.3.5 Xây dựng tính năng tổng đài trả lời tự động (IVR) 62
2.4.4 Kết nối hai tổng đài Asterisk 64
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC 68
3.1 Cấu hình softphone đăng kí tới tổng đài 68
3.2 Thực hiện cuộc gọi giữa các extension cùng tổng đài 70
3.3 Thực hiện cuộc gọi từ các extension ra ngoài mạng PSTN 70
3.4 Thực hiện cuộc gọi mạng PSTN vào tổng đài Asterisk 71
3.5 Thực hiện cuộc gọi giữa các extension thông qua đường Trunk 72
3.4 Để lại tin nhắn thoại Voicemail 73
3.5 Truy cập vào hộp thư thoại 73
3.6 Tham gia vào một cuộc hội thoại Conference Call 75
3.7 Đánh giá hệ thống 76
Trang 53.8.1.2 Tấn công từ chối dịch vụ (DoS): 78
3.8.1.3 Tấn công ARP 78
3.8.1.4 Lỗ hổng với IP phone và Softphone 80
3.8.1.5 Spam trong VoIP 80
3.8.2 Một Số Giải Pháp Bảo Mật Cho Hệ Thống VoIP 81
3.8.2.1 VLAN 81
3.8.2.2 Firewalls 83
3.8.2.3 VPN (Virtual private network) 83
3.9 Giải pháp xây dựng tổng đài VoIP cho trường Đại học Lạc Hồng 84
TỔNG KẾT 91
TÀI LIỆU THAM KHẢO
PHỤ LỤC 1
PHỤ LỤC 2
PHỤ LỤC 3
Trang 6AH Authenticaion Header
API Application programming interface
ARP Address Resolution Protocol
GSM Global System for Mobile Communications HTTP Hypertext Tranfer Protocol
IAX Inter – Asterisk eXchange
ICMP Internet Control Message Protocol
IETF Internet Engineering Task Force
IGMP Internet Group Message Protocol
IP Internet Protocol
IPSec Internet Protocol Security
ISDN Integrated Services Digital Network
ITU International Telecommunication Union
ITU–T ITU Telecommunication Standardization Sector IVR Interactive Voice Respone
L2F Layer two Forwarding
L2TP Layer 2 Tunneling Protocol
LAN Local Area Network
MAC Media Access Control
MC Multipoint Controller
OSI Open Systems Interconnection
PBX Private Branch Exchange
PC Personal computer
PPP Point – to – Point Protocol
PPTP Point – to – Point Tunneling Protocol
PSTN Public Switched Telephone Network
QOS Quality of Service
RAS Registration, Admission and Status
RR Receiver Report
RSVP Resource Reservation Protocol
RTP Real – time Transport Protocol
SPIT Spam over Internet Telephony
SR Sender Report
SRTCP Secure RTCP
SRTP Secure Real Time Transport Protocol
Trang 7UDP User Data Protocol
UNISTIM Unified Network Stimulus
URI Uniform resource identifier
VOIP Voice over IP
VPN Virtual private network
WAV Waveform Audio File Format
Hình 1.4 Mối liên hệ giữa mô hình OSI và mô hình TCP/IP 10
Trang 8Hình 2.9 Login vào FreePBX 48 Hình 2.10 Giao diện web của FreePBX – Tình trạng của hệ
Hình 2.21 Thông tin Peer và User của đường Trunk (231) 65
Hình 2.23 Thông tin Peer và User của đường Trunk (232) 66
Hình 3.4 Gọi giữa hai extension cùng tổng đài 70
Hình 3.7 Gọi giữa hai extension thông qua SIP Trunk 72
Trang 9Hình 3.18 VLAN phân theo chức năng 82 Hình 3.19 Trường Đại học Lạc Hồng khi chưa sử dụng VoIP 84 Hình 3.20 Trường Đại học Lạc Hồng khi sử dụng VoIP 85
Hình 3.22 Đường trunk tới Gateway sử dụng SIM 87 Hình 3.23 Đường trunk tới Gateway sử dụng line điện thoại 87 Hình 3.24 Đường route gọi ra ngoài theo nhà mạng Vinaphone 88
Trang 10PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, cùng với sự phát truyển của kinh tế – xã hội, nhu cầu trao đổi thông tin của con người ngày càng cao Bởi vậy ngành điện tử viễn thông có một vai trò đặc biệt quan trọng, nhất là trong thời buổi bùng nổ thông tin như hiện nay Các hệ thống viễn thông trở thành phương tiện rất hữu ích cho việc trao đổi thông tin Thông tin càng trở nên cần thiết hơn bao giờ hết, nó đặt nên một vấn đề là truyền đạt thông tin như thế nào để thông tin đi được nhanh nhất, chính xác nhất và chi phí sử dụng phải thấp nhất Công nghệ truyền giọng nói qua mạng Internet ra đời như là một cuộc các mạng của hệ thống viễn thông
Voice over IP (VoIP) có thể thực hiện tất cả các dịch vụ gọi thông thường như trên mạng điện thoại công cộng (PSTN) và nhiều dịch vụ nâng cao khác như chuyển tiếp cuộc gọi, voice mail, tổng đài trả lời tự động (IVR)
Đối với những doanh nghiệp có nhiều chi nhánh đã có sẵn hạ tầng mạng Internet và các trang thiết bị liên lạc nội bộ sử dụng trong tổng đài PBX (Private Branch eXchange: Tổng đài điện thoại nội bộ) việc triển khai hệ thống VoIP này sẽ không đòi hỏi doanh nghiệp đó phải đầu tư gì nhiều về cơ sở hạ tầng và trang thiết
bị, mà khả năng mở rộng là rất lớn và dễ dàng khi doanh nghiệp có nhu cầu mở thêm một chi nhánh mới, trong khi đó việc mở rộng tổng đài PBX và phát triển mạng nội bộ mới là khá tốn kém
VoIP ngày càng đáp ứng tốt hơn các yêu cầu mà người tiêu dùng đặt ra như chất lượng dịch vụ, giá thành, số lượng tích hợp các dịch vụ thoại lẫn phi thoại Với những ưu điểm của mình công nghệ VoIP sẽ ngày một phát triển trong tương lai Việc tìm hiểu và xây dựng các ứng dụng trên công nghệ VoIP là điều cần thiết và sẽ mang lại những lợi ích to lớn.Trong quá trình tìm hiểu, nghiên cứu chúng tôi nhận thấy tầm quan trọng của VoIP trong đời sống hiện nay và tính thực tiễn cao của nó
Trang 11nên chúng tôi đã chọn đề tài: “Nghiên cứu tổng đài Voice IP và cài đặt hệ thống tổng đài VoiceIP cho mạng LAN” làm đề tài tốt nghiệp
2 Lịch sử nghiên cứu
2.1 Trên thế giới
Theo tài liệu tư vấn khách hàng và định hướng phát triển công nghệ của
nhiều tập đoàn hàng đầu thế giới như Avaya, Siemens, Cisco, AudioCodes,
Alcatel-Lucent, đều tập trung vào phát triển trên nền tảng IP, trong đó các dịch vụ, ứng dụng thoại VoIP được tập trung khá nhiều nguồn lực Các doanh nghiệp trên toàn thế giới cũng có xu hướng đầu tư hoặc nâng cấp hạ tầng viễn thông truyền thống của họ sang hạ tầng viễn thông thoại VoIP, một mặt bắt kịp xu thế của thời đại công nghệ, mặt khác tận dụng những dịch vụ tiện ích đa truyền thông ngày càng phát triển trên hạ tầng IP, từ thoại thông thường cho đến Fax qua IP, hội nghị truyền hình, email, chat, truyền hình trực tuyến, giảm chi phí đầu tư nâng cấp hoặc mở rộng và bắt kịp công nghệ khi hòa nhập vào một thế giới phẳng
2.2 Trong nước
Ở Việt Nam, các dịch vụ điện thoại có ứng dụng công nghệ VoIP mang tính thương mại cũng phát triển rất mạnh, như các dịch vụ điện thoại đường dài 171 của VNPT hay178 của Viettel, điện thoại quốc tế giá rẻ 1719 của VNPT và dịch vụ điện thoại Internet dùng thẻ
Trên thị trường hiện nay có rất nhiều sản phẩm tổng đài điện thoại cài đặt sẵn của các hãng: Panasonic, Siemens, LG Ưu điểm của các sản phẩm này là dễ dàng cài đặt, hỗ trợ đầy đủ các tính năng cần thiết của một tổng đài điện thoại (hộp thư thoại, chuyển cuộc gọi, tổng đài trả lời tự động) Nhưng các sản phẩm này lại có giá thành khá đắt, khả năng mở rộng của các tổng đài này lại ở mức giới hạn, đặc biệt khi tổng đài xảy ra sự cố thì toàn bộ hệ thống liên lạc trong công ty hay tổ chức sẽ
bị gián đoạn điều này sẽ gây ảnh hưởng nghiêm trọng đến hiệu suất của công việc, gây thất thoát lớn cho công ty đó Bên cạnh đó vì là tổng đài có sẵn nên khó có thể nào tích hợp thêm các dịch vụ khác bên ngoài
Trang 123 Mục tiêu nghiên cứu
Nghiên cứu tổng đài Voice IP và cài đặt hệ thống tổng đài VoiceIP cho mạng nội bộ của công ty hoặc tổ chức
4 Đối tượng nghiên cứu và phạm vi nghiên cứu
Đề tài tập trung nghiên cứu về hệ thống tổng đài VoIP sử dụng giao thức báo hiệu SIP, sau đó xây dựng thử nghiệm hệ thống với phần mếm mã nguồn mở Asterisk hoạt động trên nền hệ điều hành Linux
5 Phương pháp nghiên cứu
- Tìm hiểu giao thức báo hiệu của VoIP So sánh các giao thức báo hiệu đã tìm hiểu được từ đó lựa chọn giao thức báo hiệu phù hợp để ứng dụng vào hệ thống
- Tìm hiểu giao thức vận chuyển tín hiệu thoại của VoIP
- Tìm hiểu cách thức tấn công trong mạng VoIP từ đó có thể đưa ra các giải pháp nhằm bảo mật hệ thống VoIP
- Nghiên cứu, cài đặt và cấu hình Asterisk trên hệ điều hành Linux
- Nghiên cứu, cài đặt và cấu hình cho phép hệ thống tổng đài Asterisk trong mạng IP có thể gọi ra ngoại mạng điện thoại thông thường và ngược lại
6 Những đóng góp của đề tài và những vấn đề chưa thực hiện được
Đề tài đã thực hiện thành công các cuộc gọi từ mạng IP tới mạng điện thoại thông thường và ngược lại
Tạo tiền đề cho việc xây dựng hệ thống tổng đài VoIP đầy đủvà hoàn chỉnh hơn có thể áp dụng trong nhà trường, công ty và các doanh nghiệp cho nhu cầu
Tuy nhiên do thời gian và kiến thức có hạn nên chúng tôi chỉ mới thử nghiệm
ở hệ thống mạng có quy mô nhỏ và một số chức năng đặc biệt của Asterisk
7 Kết cấu của đề tài:
Luận văn được chia làm ba phần: phần mở đầu, phần nội dung và phần kết luận
Trang 13Phần mở đầu
Giới thiệu sơ lược về lý do chọn đề tài, tổng quan tình hình phát triển, mục tiêu nghiên cứu đề tài, đối tượng, phạm vi, phương pháp nghiên cứu cũng như những đóng góp mới của đề tài Bên cạnh đó cũng chỉ ra mặt hạn chế mà đề tài chưa thực hiện được để giúp mọi người có cái nhìn rõ hơn
Phần nội dung chính: gồm 3 chương
Chương 1: Cơ sở lý thuyết
Trình bày tổng quan về hệ thống tổng đài VoIP, các giao thức vận chuyển, báo hiệu trong VoIP, Asterisk
Chương 2: Thiết kế và xây dựng hệ thống tổng đài
Nêu cách xây dựng hệ thống tổng đài và các chức năng của tổng đài như: Voicemail, Conference Call …
Chương 3: Kết quả đạt được
Các chức năng đạt được sau khi hoàn thiện tổng đài và vấn đề bảo mật của
hệ thống tổng đài
Phần kết luận: Kết luận chung cho toàn bộ đề tài
Đánh giá, nhận xét tổng quan, hướng phát triển của đề tài trong tương lai
Trang 14CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái niệm VoIP:
Voice over Internet Protocol (VoIP) 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 các 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ể thiết lập cuộc gọi như hệ thống mạng PSTN và gửi Fax qua mạng
dữ liệu dựa trên IP với chất lượng dịch vụ phù hợp Như vậy, nó đã tận dụng được sức mạnh và sự phát triển vượt bậc của mạng IP vốn chỉ được sử dụng để truyền dữ liệu thông thường
Ưu điểm:
Giảm chi phí cuộc gọi: So với dịch vụ điện thoại thông thường thì điện
thoại IP có khả năng cung cấp những cuộc gọi đường dài với giá thành rẻ
mà chất lượng ổn định, đây được coi là ưu điểm nổi bật nhất của điện thoại IP Chi phí cho một cuộc gọi đường dài khi sử dụng điện thoại IP chỉ tương đương với chi phí khi người sử dụng truy cập Internet Nguyên nhân dẫn đến chi phí thấp như vậy là do tín hiệu thoại được truyền tải trong mạng IP có khả năng sử dụng kênh hiệu quả cao Đồng thời, kỹ
thuật nén thoại tiên tiến sẽ giảm được dung lượng mạng
Tích hợp nhiều dịch vụ: Vì hệ thống điện thoại VoIP là dựa trên phần
mềm, do đó các nhà phát triển có thể phát triển thêm và cải thiện các tính năng một cách dễ dàng Do đó, hầu hết các hệ thống điện thoại VoIP đều
có rất nhiều tính năng không chỉ đơn giản là gọi điện thoại mà nó còn bao gồm tính năng trả lời tự động, thư thoại, xếp hàng cuộc gọi và nhiều nữa Tích hợp đa dịch vụ sẽ tiết kiệm chi phí đầu tư nhân lực, chi phí xây dựng
các mạng riêng lẻ
Khả năng mở rộng: Nếu như các hệ tổng đài điện thoại thường là những
hệ thống kín, việc thêm đường điện thoại hoặc thêm số máy nhánh thường đòi hỏi phải nâng cấp những phần cứng đắt tiền.Trong một số trường hợp,
Trang 15bạn yêu cầu hệ thống điện thoại phải được thay thế mới hoàn toàn.Hệ thống tổng đài VoIP thì không như vậy: một chiếc máy tính bình thường
có thể quản lý một lượng lớn các đường điện thoại và các số máy nhánh
Quản lý băng thông: Trong điện thoại chuyển mạch kênh tốc độ truyền
dẫn cho các cuộc gọi thoại luôn là cố định (trong mạng PSTN, tốc độ này
là 64Kbit/s), nhưng trong VoIP việc phân chia tài nguyên cho các cuộc thoại linh hoạt và mềm dẻo hơn nhiều Khi một cuộc gọi diễn ra, nếu lưu lượng mạng thấp thì băng thông dành cho cuộc gọi đó sẽ cho chất lượng tốt nhất có thể, ngược lại khi lưu lượng mạng cao thì mạng sẽ hạn chế băng thông của từng cuộc gọi sao cho chất lượng thoại chấp nhận được,
điều này sẽ đảm bảo việc phục vụ cùng một lúc nhiều cuộc gọi
Nhược điểm:
Bên cạnh những ưu điểm hấp dẫn, VoIP còn tồn tại những nhược điểm
không thể phủ nhận khi triển khai một mạng điện thoại IP:
Chất lượng dịch vụ chưa cao: Các mạng số liệu vốn dĩ không phải xây
dựng với mục đích truyền thoại trong thời gian thực, vì vậy khi truyền thoại qua mạng số liệu cho chất lượng cuộc gọi không được đảm bảo trong trường hợp mạng xảy ra tắc nghẽn hoặc có độ trễ Tính thời gian thực của tín hiệu thoại đòi hỏi chất lượng truyền dữ liệu cao và ổn định Một yếu tố làm giảm chất lượng thoại nữa là kỹ thuật nén để tiết kiệm đường truyền Nếu nén dung lượng càng thấp thì kỹ thuật nén càng phức tạp, cho chất lượng không cao và đặc biệt là thời gian xử lý sẽ lâu, gây trễ
Vấn đề về tiếng vọng: Nếu như trong mạng thoại, do độ trễ ít nên tiếng
vọng không ảnh hưởng nhiều tới cuộc gọi thì trong mạng IP, do trễ lớn nên tiếng vọng ảnh hưởng nhiều đến chất lượng thoại Vì vậy, tiếng vọng
là một vấn đề cần phải giải quyết trong điện thoại IP
Kỹ thuật phức tạp: Truyền tín hiệu theo thời gian thực trên mạng chuyển
mạch gói là rất phức tạp do mất gói trong mạng là không thể tránh và độ trễ không cố định của các gói thông tin khi truyền trên mạng Để có được
Trang 16một dịch vụ thoại chấp nhận được cần phải có một kỹ thuật nén tín hiệu đạt được những yêu cầu khắt khe như: tỉ số nén lớn, có khả năng suy đoán
và tạo lại thông tin của các gói tin bị thất lạc… Tốc độ xử lý của các bộ Codec (Coder and Decoder – bộ mã hóa và giải mã) phải đủ nhanh để không làm cuộc đàm thoại bị gián đoạn Đồng thời cơ sở hạ tầng của mạng cũng cần được nâng cấp lên các công nghệ mới để có tốc độ cao hơn
và có cơ chế thực hiện chức năng QoS
Vấn đề bảo mật: VoIP được xây dựng trên nền tảng Internet vốn không
an toàn, do đó sẽ dẫn đến khả năng các thông tin có thể bị đánh cắp khi các gói tin bị thu lượm hoặc định tuyến sai địa chỉ một cách cố y khi chúng được truyền trên mạng Ngoài ra cần phải quan tâm tới các vấn đề khác như vi rút, phần mềm độc hại, thư rác, hay các cuộc gọi giả mạo để xâm nhập vào hệ thống mạng
Ngoài ra, VoIP không thể sử dụng được khi gặp phải tình trạng cúp điện hay mạng gặp sự cố
1.2 Các mô hình mạng VoIP:
1.2.1 Mô hình PC to PC:
Trong mô hình này, mỗi máy tính cần được trang bị một sound card, một microphone, một speaker và được kết nối trực tiếp với mạng LAN hay Internet Mỗi máy tính được cài đặt những phần mềm dùng riêng cho việc truyền thoại, như vậy
là 2 máy tính đã có thể trao đổi tín hiệu thoại với nhau thông qua mạng LAN hay mạng Internet Tất cả các thao tác như lấy mẫu tín hiệu âm thanh, mã hóa và giải
mã, nén và giải nén tín hiệu đều được máy tính thực hiện
Hạn chế của mô hình này: Các thiết bị PC sẽ liên tục đựơc mở để có thể nghe được các cuộc điện thoại
Trang 171.2.2 Mô hình PC to Phone:
Mô hình PC to Phone là một mô hình được cái tiến hơn so với mô hình PC to
PC Với mô hình này cho phép thiết lập cuộc gọi từ mạng máy tính được trang bị phần mềm truyền thoại trên mạng đến bất kì máy điện thoại nào trên mạng PSTN và ngược lại
Để thực hiện được cuộc gọi qua mạng nói trên, hệ thống phải được trang bị các gateway là thành phần giao tiếp giữa mạng VoIP với mạng PSTN truyền thống Gateway sẽ thực hiện chức năng chuyển đổi địa chỉ IP sang số điện thoại tương ứng
và ngược lại, cũng như nó sẽ thực hiện các cơ chế chuyển đổi giao thức báo hiệu giữa hai mạng IP và PSTN
1.2.3 Mô hình Phone to Phone:
Đây là mô hình mở rộng của mô hình PC to Phone, sử dụng Internet làm phương tiện liên lạc giữa các mạng PSTN Tất cả các mạng PSTN đều kết nối với mạng Internet thông qua các Gateway Khi tiến hành cuộc gọi, mạng PSTN sẽ kết nối đến Gateway gần nhất, tại đây địa chỉ sẽ được chuyển đổi từ địa chỉ PSTN sang địa chỉ IP để có thể định tuyến các gói tin đến được mạng đích Đồng thời Gateway
Trang 18nguồn có nhiệm vụ chuyển đổi tín hiệu thoại tương tự thành dạng số sau đó mã hóa, nén, đóng gói lại và gửi qua mạng Mạng đích cũng được kết nối với Gateway và tại
đó địa chỉ lại được chuyển đổi trở thành địa chỉ PSTN và tín hiệu được giải nén, giải mã, rồi chuyển đổi ngược lại thành tín hiệu tương tự gửi vào mạng PSTN đến đích
1.3 Giao thức vận chuyển của VoIP
1.3.1 Mô hình TCP/IP:
Mạng máy tính khổng lồ Internet hiện nay đang sử dụng mô hình TCP/IP để quản lý việc truyền thông TCP/IP được xem là giản lược của mô hình OSI với bốn lớp sau: Application (tích hợp 3 lớp trên cùng của mô hình OSI), Transport (tương đương với lớp Transport của OSI), Internet (tương ứng với lớp Network nhưng chỉ
sử dụng giao thức IP để định địa chỉ logic cho các máy tính) và Network Access (bao gồm 2 lớp dưới cùng của mô hình OSI) Do đó, tính năng của mỗi lớp trong
mô hình TCP/IP chính là những tính năng của mỗi lớp trong mô hình OSI Một số giao thức thường gặp trong mô hình TCP/IP: IP, ICMP, IGMP, TCP, UDP, Telnet, FTP, WWW, SMTP,…
Mô hình TCP/IP gọn nhẹ hơn mô hình tham chiếu OSI, đồng thời có những biến đổi phù hợp thực tế hơn Ví dụ: lớp Transport của mô hình OSI quy định việc truyền dữ liệu phải đảm bảo độ tin cậy hoàn toàn Tuy nhiên, một số ứng dụng mới
Hình 1.3: Mô hình Phone to Phone
INTERNET
PSTN
Gateway
Trang 19phát triển sau này như VoIP, Video Conference,… đòi hỏi tốc độ cao và cho phép
bỏ qua một số lỗi nhỏ Nếu vẫn áp dụng mô hình OSI vào thì tốc độ trễ trên mạng rất lớn và không đảm bảo chất lượng dịch vụ Trong khi đó, mô hình TCP/IP, ngoài giao thức chính của lớp Transport là TCP, còn cung cấp thêm giao thức UDP để thích ứng với các ứng dụng cần tốc độ cao
1.3.1.1 Giao thức TCP (Transmission Control Protocol)
TCP là một giao thức hướng kết nối (oriented-connection), được mô tả trong RFC 793 Nó cung cấp một phương thức truyền dữ liêu song công hoàn toàn (full-duplex) tin cậy Đối với TCP, một kết nối phải được thiết lập trước khi hoạt động truyền thông tin thực sự có thể bắt đầu TCP chịu trách nhiệm phân chia dữ liệu thành từng đoạn (segment), sắp xếp lại các đoạn thành dữ liệu ban đầu tại đích, truyền lại bất kỳ đoạn nào không thể nhận được TCP cung cấp một mạch ảo giữa các ứng dụng Vì các tính năng trên, nên TCP phải phát sinh thêm thông tin điều khiển được trao đổi giữa các máy tính Cũng chính vì vậy mà trong TCP header có nhiều thông tin hơn UDP header
Các ứng dụng sử dụng TCP là: FTP, HTTP, SMTP, Telnet , v.v…
Hình 1.4: Mối liên hệ giữa mô hình OSI và mô hình TCP/IP
Trang 20Để đạt được độ tin cậy, TCP dựa vào các thông tin trong TCP header TCP header có nhiều cột, mỗi cột cung cấp nhiều tính năng xác định Hình 1.5 chỉ ra các cột trong TCP header
Source Port (16) Destination Port (16)
Source Port (16 bit): port của ứng dụng nguồn
Destination Port (16 bit): port của ứng dụng đích
Sequence Number (32 bit): chỉ ra số octet (byte) đầu tiên trong một đoạn
Acknowledgement Number (32 bit): chỉ ra số octet kết tiếp mà máy nhận đang mong chờ
Header Length (4 bit): chỉ ra chiều dài của header, tính theo byte
Reserved (6 bit): dành để dùng cho tương lai
Code Bits (6 bit): được sử dụng trong việc quản lý phiên giao dịch và theo dõi các đoạn
Window (16 bit): là giá trị của cửa sổ động – có thể gửi bao nhiêu octet trước khi đợi nhận một ACK
Checksum (16 bit): được sử dụng để kiểm tra lỗi của header và data
Hình 1.5: TCP header
Trang 21 Urgent (16 bit): chỉ được sử dụng với cờ URG
Options (độ dài thay đổi): khai báo các option của TCP, trong đó có độ dài tối đa của vùng TCP data trong một đoạn
Data (độ dài thay đổi): chứa dữ liệu của lớp trên, có độ dài tối đa là 536 byte Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options
1.3.1.2 Giao thức IP (Internet Protocol)
Nhiệm vụ chính của giao thức IP là cung cấp khả năng kết nối các mạng con thành liên kết mạng để truyền và nhận dữ liệu, vai trò của IP là vai trò của lớp Network trong mô hình OSI Giao thức IP là một giao thức kiểu không kết nối (connectionless) có nghĩa là nó không cần có giai đoạn thiết lập kết nối trước khi truyền dữ liệu Các chức năng được thực hiện ở IP là:
• Gán địa chỉ (Addressing): tất cả các host trong mạng và trong liên mạng
đều được cung cấp một địa chỉ IP duy nhất Theo giao thức IPv4, mỗi địa chỉ
IP gồm 32 bit và được chia làm 5 lớp ký hiệu là A, B, C, D, E Các lớp A,B,C được sử dụng để định danh các host trên các mạng Lớp D dành riêng cho lớp kỹ thuật multicast, còn lớp E được dành cho những ứng dụng cho tương lai
• Định tuyến (Routing): giúp xác định đường đi cho gói tin khi được truyền
trên mạng Nó giúp lựa chọn đường đi tối ưu cho các gói dữ liệu Nếu hai host cần liên lạc không nằm trên một subnet thì bảng định tuyến sẽ được sử dụng để quyết định việc chuyển dữ liệu và các bộ định tuyến thường xuyên trao đổi và cập nhật thông tin trong bảng định tuyến tùy thuộc vào phương pháp định tuyến được sử dụng
Có 3 cách truyền các gói IP là:
o Unicast: là quá trình gửi một gói tin từ một thiết bị đến một thiết bị khác
o Multicast: là quá trình gửi một gói tin từ một thiết bị đến một nhóm các thiết bị được chọn trong một mạng
o Broadcast: là quá trình gửi một gói tin từ một thiết bị đến tất cả các thiết bị còn lại trong một mạng
Trang 22Ngoài ra, giao thức IP còn cung cấp khả năng phân mảnh dữ liệu lớn thành các gói có kích thước nhỏ hơn để truyền qua mạng
Giao thức IP phiên bản 4 (IPv4):
Hình 1.6 cho biết cấu trúc của một header IPv4
Source Address Destination Address
Ý nghĩa của từng cột:
Ver (4 bit): chỉ ra phiên bản của IP
IHL – Internet Header Length (4 bit): chỉ ra kích thước của IP header
Type of Service (8 bit): nó được dùng để quyết định độ ưu tiên của mỗi gói tin Giá trị này cho phép QoS được tác động đến các gói tin
có độ ưu tiên cao Ta có thể cấu hình router dựa vào giá trị này để quyết định thứ tự ưu tiên chuyển các gói tin
Total Length (16 bit): cho biết kích thước của toàn bộ gói tin bao gồm header và data được tính theo byte
Identification (16 bit): cột này được sử dụng để nhận dạng các phân mảnh (fragment) duy nhất của một IP gói tin
Flag(3 bit): Các gói tin khi được truyền trên mạng có thể bị phân thành nhiều gói tin nhỏ, trong trường hợp đó cột Flag được dùng để điều khiển phân mảnh và tái lắp ghép các gói tin nhỏ lại với nhau Tùy
Hình 1.6: Các cột trong IPv4 header
Byte 1
Trang 23theo giá trị của Flag sẽ có ý nghĩa là gói tin có hoặc không bị phân mảnh hay gói tin đó là phân mảnh cuối cùng
Fragment Offset (13 bit): chỉ rõ vị trí của phân mảnh trong gói tin tính theo đơn vị 64 bit
Time to Live(8 bit): là thời gian tối đa một gói tin có thể tồn tại trên mạng, được tính bằng giây Mỗi lần gói tin qua một bộ định tuyến thì giá trị này giảm đi 1s, kể cả khi thời gian xử lý gói này chưa tới 1s Khi giá trị này bằng 0 thì gói tin sẽ bị hủy
Protocol (bit): Xác định giao thức của lớp trên sẽ nhận dữ liệu Giá trị phổ biến của cột này là:
Source Address (32 bit): xác định địa chỉ của máy nguồn
Destination Address (32 bit): xác định địa chỉ của máy đích
Options (có độ dài thay đổi): dành cho dự phòng khi thêm các cột mới vào IPv4 header để cung cấp các dịch vụ khác nhưng nhưng option này hiếm khi được dùng
Padding (có độ dài thay đổi): vùng đệm, được dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32 bit
Giao thức IP phiên bản 6 (IPv6):
Do sự phát triển như vũ bão của mạng và dịch vụ Internet, nguồn IPv4 dần cạn kiệt, đồng thời bộc lộ các hạn chế đối với việc phát triển các loại hình dịch vụ hiện đại trên Internet Phiên bản địa chỉ Internet mới IPv6 được thiết kế để thay thế cho phiên bản IPv4 IPv6 là giao thức Internet mới được kế thừa đặc điểm chính của IPv4 và có nhiều cải tiến để khắc phục những hạn chế:
Trang 24 Địa chỉ IPv6 có chiều dài 128 bit, biểu diễn dưới dạng các cụm số hexa phân cách bởi dấu :: Với 128 bit chiều dài, không gian địa chỉ IPv6 gồm
2128 địa chỉ, cung cấp một lượng địa chỉ khổng lồ cho hoạt động Internet
và loại bỏ công nghệ NAT
Quản trị TCP/IP dễ dàng hơn: DHCP được sử dụng trong IPv4 nhằm giảm cấu hình thủ công TCP/IP cho host IPv6 được thiết kế với khả năng
tự động cấu hình, không cần sử dụng máy chủ DHCP, giảm cấu hình thủ công
Cấu trúc định tuyến tốt hơn: Định tuyến IPv6 được thiết kế hoàn toàn phân cấp
Hỗ trợ tốt hơn cho di động: Thời điểm IPv4 được thiết kế, chưa tồn tại khái niệm về thiết bị IP di động Trong thế hệ mạng mới, dạng thiết bị này ngày càng phát triển, đòi hỏi cấu trúc giao thức Internet có sự hỗ trợ tốt hơn
Cấu trúc của gói tin IPv6 như sau:
Ý nghĩa các trường như sau:
Version: phiên bản của IP, có giá trị bằng 6 với IPv6
Traffic Class (8 bit): dùng để quyết định độ ưu tiên
Flow Label (20bit): xác định các gói dữ liệu được ưu tiên trên đường
truyền nếu có xảy ra tranh chấp, thường được sử dụng cho các dịch vụ đòi hỏi chất lượng dịch vụ cao hay thời gian thực
Payload Length (16 bit): xác định độ dài phần dữ liệu không tính phần tiêu đề
Version Traffic Class Flow Label Payload Length Next Header Hop Limit
Source Address Destination Address
Hình 1.7: Các cột trong IPv6 header
Trang 25 Hop Limit (8 bit): giống như trường Time to Live của IPv4
Source Address và Destination Address giống như IPv4 nhưng có độ dài 128bit
Data: có độ dài tối đa là 65535 byte
1.3.2 Giao thức UDP (User Datagram Protocol)
UDP là giao thức không kết nối (connectionless) được sử dụng thay thế cho TCP ở trên IP theo yêu cầu của từng ứng dụng UDP không có các cơ chế giống như TCP chẳng hạn như: thiết lập kết nối trước khi truyền dữ liệu thực sự, truyền lại đối với những dữ liệu bị mất, đánh số thứ tự các segment và điều khiển luồng Điều này không có nghĩa là các ứng dụng sử dụng giao thức UDP để vận chuyển thì luôn luôn không tin cậy (unreliable) Nó chỉ đơn giản là làm sao vận chuyển dữ liệu cho nhanh và tính năng tin cậy được thực hiện ở lớp Application nếu cần
Source Port (16) Destination Port (16)
APPLICATION LAYER DATA
Ý nghĩa của các cột:
Source Port (16 bit): port của ứng dụng nguồn
Destination Port (16 bit): port của ứng dụng đích
Length(16 bit): chỉ thị chiều dài của gói dữ liệu, gồm cả header và dữ liệu
Checksum(16 bit): được sử dụng để kiểm tra lỗi
Data (độ dài tùy thay đổi): chứa dữ liệu vào
1.3.3 Giao thức RTP (Real – time Transport Protocol)
RTP là giao thức cung cấp các chức năng phục vụ cho quá trình truyền dữ liệu mang đặc tính thời gian thực như là audio,video RTP có nhiệm vụ xác định loại tải trọng (payload type identification), đánh số thứ tự các gói tin (sequence
Hình 1.8: Tiêu đề UDP
Trang 26numbering), đánh dấu thời gian phát (timestamping) phục vụ cho cơ chế đồng bộ khi phát lại tín hiệu ở bên thu và giám sát việc chuyển gói tin (delivery monitoring)
Các ứng dụng thường chạy giao thức RTP ở bên trên giao thức UDP để sử dụng dịch vụ ghép kênh (multiplexing) và kiểm tra lỗi (checksum) của dịch vụ này
Cả hai giao thức này tạo nên một phần chức năng của lớp transport Tuy nhiên RTP cũng có thể được sử dụng với những giao thức khác của lớp network và lớp transport bên dưới miễn là các giao thức này cung cấp được các dịch vụ mà RTP đòi hỏi Giao thức RTP hỗ trợ việc truyền dữ liệu tới nhiều đích sử dụng phân bố dữ liệu multicast nếu như khả năng này được lớp mạng hoạt động bên dưới nó cung cấp
Bản thân RTP không hề cung cấp một cơ chế nào nhằm đảm bảo về mặt thời gian, cũng như sự đảm bảo về chất lượng dịch vụ (QoS) của các ứng dụng thời gian thực, nhưng điều này vẫn được đảm bảo dựa trên các dịch vụ lớp dưới
Cũng như vậy RTP không đảm bảo độ tin cậy hay thứ tự của các gói tin Nhưng các cơ chế đảm bảo độ tin cậy và việc đảm bảo thứ tự các gói tin nhận được
sẽ được đảm bảo dưới các cơ chế của lớp mạng Số thứ tự được đánh trong khung RTP cho phép bên nhận có thể khôi phục lại thứ tự gói phía gửi, nhưng có thể nó cũng được dùng để định vị gói tin như trong quá trình giải mã tín hiệu video, trên thực tế việc giải mã tín hiệu video theo thứ tự là không nhất thiết
Đi cùng với RTP là giao thức RTCP để nhận cácthông tin phản hồi về chất lượng truyền dẫn và các thông tin về thành phần tham dự các phiên truyền hiện thời Không giống như các giao thức 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 header của RTP:
RTP header bao gồm một phần cố định có ở mọi gói RTP và một phần mở rộngphục vụ cho các mục đích nhất định
Phần cố định:
Trang 27V=2 P X CC M PT Sequence Number
Timestamp Synchronization Source (SSRC) identifier Contributing Source (CSRC) identifier
…
V – Version (2 bit): Chỉ ra version của RTP, hiện nay là version 2
P – Padding(1 bit): Nếu bit này được đặt, sẽ có thêm một vài octet thêm vào
cuối gói dữ liệu Các octet này không phải là thông tin, chúng được thêm vào
để nhằm mục đích phục vụ cho một vài thuật toán mã hoá thông tin cần kích thước của gói cố định Hay dùng để cách ly các gói RTP trong trường hợp có nhiều gói thông tin được mang trong cùng một đơn vị dữ liệu của giao thức ở lớp dưới
X – Extension (1 bit): nếu bit này được đặt, thì theo sau phần header cố định
sẽ là một header mở rộng
CC – Contributing Sources Count (4 bit): số lượng các thành phần nhận
dạng nguồn CSRC nằm trong phần header gói tin Số này lớn hơn 1 nếu các gói tin RTP đến từ nhiều nguồn
M – Marker (1 bit): được áp dụng trong các hệ thống sử dụng phương pháp
loại bỏ khoảng lặng Bit M sẽ được đặt là 1 ngay sau khi có sự xuất hiện của khoảng lặng
PT – Payload Type (7 bit): xác định loại thông tin được truyền đi
Sequence Number (16 bit): Số thứ tự được đánh tăng dần theo số lượng các
gói RTP được phát đi Phía nhận sẽ sử dụng số thứ tự này để khôi phục lại trật tự các gói, hoặc dùng để phát hiện số lượng gói đã bị mất
Timestamp (32 bit): xác định thời điểm các gói thoại được gửi
Synchronization Source Identifier (SSRC, 32 bit): chỉ ra nguồn đồng bộ
của gói RTP, số này được chọn ngẫu nhiên Trong 1 phiên RTP có thể có
Hình 1.9: Phần cố định của RTP header
Trang 28nhiều hơn một nguồn đồng bộ Mỗi một nguồn phát ra một luồng RTP Bên thu nhóm các gói của cùng một nguồn đồng bộ lại với nhau để phát lại tín hiệu thời gian thực
Contributing Source Identifier (CSRC, 32 bit): giúp bên thu nhận biết
được gói tin này mang thông tin của những nguồn nào
Phần mở rộng: Cơ chế mở rộng của RTP cho phép những ứng dụng riêng lẻ
của giao thức RTP thực hiện được với những chức năng mới đòi hỏi những thông tin thêm vào phần tiêu đề của gói Cơ chế này được thiết kế để một vài ứng dụng có thể bỏ qua một số ứng dụng khác lại có thể sử dụng được phần nào đó
Cấu trúc của phần tiêu đề mở rộng như hình 1.10
1.4 Giao thức báo hiệu SIP:
SIP (Session Initiation Protocol – giao thức thiết lập kết nối) là một giao thức chuẩn được thiết kế và phát triển bởi tổ chức IETF, nó được sử dụng trong việc truyền thông đa phương tiện thông qua mạng IP, để thiết lập các kết nối VoIP
Giao thức SIP cung cấp một khuôn khổ để thiết lập voice, video, hội thảo và thông điệp văn bản truyền theo kiểu point-to-point Giao thức SIP là một giao thức
Hình 1.10: Phần mở rộng của RTP header
Trang 29điều khiển ở lớp ứng dụng có thể khởi tạo, thay đổi và kết thúc một phiên truyền thông đa phương tiện như là VoIP Cấu trúc của SIP tương tự như HTTP (giao thức Client – Server) Các yêu cầu được tạo ra bởi các máy client và gửi tới server Server xử lý các yêu cầu và gửi một phản hồi là hai thành phần để tạo ra 1 session Giao thức SIP cho phép thực hiện các thao tác khởi tạo và kết thúc một kết nối VoIP như sau:
Vị trí người sử dụng (User Location): Xác định thiết bị đầu cuối để sử dụng cho việc truyền thông
Thiết lập cuộc gọi (Call Setup): Báo chuông và thiết lập các thông thông
số cho bên gọi và được bên nhận
Sự sẵn sàng của người dùng (User Availability): Xác định sự sẵn sàng của người sử dụng
Khả năng của người dùng (User Capabilities): Xác định phương tiện và các thông số được sử dụng
Xử lý cuộc gọi (Call handling): Chuyển giao và kết thúc cuộc gọi
1.4.1 Các thành phần của SIP:
Hai thành phần chính trong hệ thống SIP bao gồm: User Agent và SIP Network Server
1.4.1.1 User Agent – UA:
UA là một ứng dụng để khởi tạo, nhận và kết thúc cuộc gọi Mỗi UA có một UAC (User Agent Client) và một UAS (User Agent Server)
UAC: chịu trách nhiệm gửi yêu cầu và đón nhận các thông tin trả lời
UAS: chịu trách nhiệm nhận các yêu cầu và trả lời cho các yêu cầu đó
1.4.1.2 Network Servers:
Network server gồm 4 kiểu: Proxy server, Location server, Redirect server, Register server
Proxy server: là một thiết bị trung gian nhận các yêu cầu SIP từ một
client và sau đó thay mặt cho client chuyển tiếp các yêu cầu đó Về cơ bản, proxy server nhận tin nhắn SIP và chuyển đến các máy chủ SIP khác
Trang 30trong mạng Các proxy server có thể cung cấp các chức năng như xác thực, ủy quyền, kiểm soát truy cập mạng, định tuyến, phát lại các yêu cầu một cách đáng tin cậy và bảo mật
Redirect server: nhận các thông điệp yêu cầu từ bên gửi, nó sẽ tìm kiếm
thông tin về người nhận trong cơ sở dữ liệu được tạo ra bởi registrar Sau
đó nó sẽ tạo ra một danh sách các vị trí hiện tại của người được gọi đó và gửi thông tin đó về cho người gửi yêu cầu trên Người gửi sẽ trích thông tin từ danh sách các địa chỉ đó và tạo ra yêu cầu mới gửi trực tiếp cho bên nhận
Registrarserver: là server nhận các thông tin đăng ký hay cập nhật thông
tin của người dùng và lưu thông tin đó vào cơ sở dữ liệu của nó Cơ sở dữ liệu này được sử dụng bởi Proxy server, khi Proxy server nhận được một yêu cầu từ một người dùng muốn kết nối tới một tài khoản nào đó thì nó
sẽ tìm kiếm trong cơ sở dữ liệu, sau đó sẽ gửi thông điệp mời đến người dùng có tài khoản đó
Mỗi thông tin đăng ký có một thời gian tồn tại nhất định UA phải làm mới thông tin đăng ký đó trong thời gian nó còn hiệu lực Nếu không nó
sẽ hết hạn và tài khoản user sẽ không còn hiệu lực
Location server: được sử dụng bởi redirect server hoặc proxy server để
lấy thông tin về vị trí của người được gọi
1.4.2 Các loại thông điệp SIP
Có hai kiểu thông điệp SIP là thông điệp yêu cầu (Request) và thông điệp phản hồi (Response), cả hai loại thông điệp này đều bao gồm một dòng start line, một hoặc nhiều trường header,một dòng bỏ trống để cho biết kết thúc phần header,
và một phần tùy chọn message body
Thông điệp yêu cầu: được client gửi đến server Theo tài liệu [7] định
nghĩa 6 kiểu thông điệp request cho phép UA và proxy có thể xác định người dùng, khởitạo, sửa đổi và hủy một phiên: INVITE, ACK, OPTIONS, CANCEL, BYE và REGISTER
Trang 31 Thông điệp phản hồi (Response): Cũng theo tài liệu [7], SIP định nghĩa
6 loại phản hồi đối với các thông điệp mà chúng ta thấy trong phần trước Mỗi loại phản hồi đúng một mã trong một dãy:
1XX– PROVISIONAL: nhận yêu cầu, tiếp tục xử lý yêu cầu
2XX – SUCCESS: cho biết yêu cầu nhận được và chấp nhận
3XX – REDIRECTION: cho biết cần có bản tin khác để hoàn thành yêu cầu
4XX – CLIENT ERROR: cho biết yêu cầu chứa cấu trúc sai hoặc không được phản hồi ở server
5XX – SERVER ERROR: cho biết server không thể phản hồi được yêu cầu có cấu trúc hợp lệ
6XX – GLOBAL FAILURE: cho biết yêu cầu không thể xử lý được ở bất cứ server nào
1.4.3 Giao thức đặc tả phiên SDP (Session DescriptionProtocol):
SIP sử dụng SDP để mô tả các thông số truyền thông cho một cuộc gọi, các thông số truyền thông này là các thông tin về băng thông, các chuần mã hóa audio, video và một số các thông tin khác Các thành phần trong SDP được miêu tả thông qua các trường sau:
Protocol Version (“v=”) – Phiên bản giao thức:
Trường này có dạng: v= (số phiên bản)
Origin (“o=”)–Thông tin về người khởi tạo phiên:
Trường này có dạng: o=<username><session id><version><network type><address type><address>
<username> là tên người đăng nhập vào máy chủ, hoặc là “-” nếu máy chủ không hỗ trợ nội dụng định danh người sử dụng Trường username phải có giá trị, không được là khoảng trống
<session id> là một chuỗi số mà ứng với các hình thể
<username>,<session id>, <network type>, <address type> và
<address> là một định danh độc nhất cho phiên <session id> tuỳ
Trang 32vào công cụ tạo ra nhưng nó xuất phát từ giao thức NTP (Network Time Protocol)
<version> là số phiên bản
<network type> là một số đại diện cho kiểu mạng Khởi tạo là
“IN” được định nghĩa cho mạng Internet
<addresss type> là một số đại diện cho kiểu địa chỉ cho phép Khởi tạo là IP4 hay IP6
<address> là địa chỉ duy nhất của máy nơi phiên được tạo ra
Session Name ("s=") – Tên phiên
s=<session name> Chỉ có một dòng trong mô tả và phải chứa các ký tự tuân theo ISO 10646
Connection Data (“c=”) – Thông tin kết nối:
c=<network type><address type><connection address>
Trường đầu tiên là kiểu mạng được định nghĩa như trên
Trường thứ hai là kiểu địa chỉ cũng được định nghĩa như trên
Trường thứ ba là địa chỉ kết nối đến
Timing (“t=”) – Thông tin mô tả thời gian
t = <start time><stop time>
Media Descriptions ("m=") – Miêu tả truyền thông
m = <media><port><transport><fmt list>
<media>là kiểu truyền thông Ví dụ như "audio", "video",
"application", "data" và "control"
<port> là cổng vận chuyển
<transport> là giao thứ vận chuyển Giá trị phụ thuộc vào trường
địa chỉ c
<fmt list> là một mô tả định dạng phương tiện truyền thông
Attributes (“a=”) – Một số thuộc tính
a=rtpmap: mô tả các thông tin về chuẩn codecs
Trang 33 a=fmtp: thường được sử dụng để mô tả các thông tin về độ phân giải của video codecs
a=sendonly: cho biết chế độ chỉ gửi không nhận các gói tin media
a=recvonly: chỉ nhận không gửi các gói tin media
a=sendrecv: vừa nhận vừa gửi các gói tin media
Phần message body mặc định trong các bản tin SIP là application/sdp Phía gọi liệt kê một danh sách về khả năng media mà nó hỗ trợ trong phần message body của thông điệp INVITE hoặc thông điệp ACK Đối tượng được gọi liệt kê khả năng media mà nó hỗ trợ trong thông điệp phản hồi 200 OK cho thông điệp INVITE Trong một thông điệp SIP phần message body nên có các trường của giao thức SDP sau: version(V), origin(O), subject(S), time(T), connection(C), và một hoặc vài trường mô tả về các chuẩn audio codecs, video codecs Các trường O, S, T không được sử dụng trong giao thức SIP, nhưng đây là các trường bắt buộc của giao thức SDP nên chúng cần được thêm vào nhằm mục đích cho tính tương thích SIP sử dụng các trường C, M, A của giao thức SDP để thiết lập một phiên đa phương tiện giữa các UA
Ví dụ: phía gọi HaiLy muốn thiết lập một cuộc gọi với hai chuẩn audio codecs được mô tả bằng SDP và được gửi đi trong thông điệp INVITE:
Trang 341.4.5 Mô tả cuộc gọi thông qua SIP:
Với hệ thống VoIP ta có thể triển khai những mô hình gọi có thể là rất đơn giản cho đến phức tạp Mô hình đơn gian như triển khai gọi giữa PC với PC và phức tạp hơn như mô hình gồm nhiều proxy Mỗi proxy ở đây có thể xem như là một chi nhánh và khi đó nhiều proxy sẽ tương ứng với nhiều chi nhánh kết nối với nhau Ngoài ra mô hình VoIP hoàn chỉnh là sự kết hợp giữa các mạng LAN, WAN, PSTN… Khi đó ta có thể gọi cho nhau ở bất cứ mạng nào
Mô hình thực hiện việc gọi điện giữa 2 máy sử dụng một proxy server
Hình 1.11 dưới đây mô tả một phiên thiết lập cuộc gọi giữa 2 máy tính với một proxy server Những thông điệp SIP đã được chụp lại khi thực hiện cuộc gọi theo mô hình PC to PC, giữa user 200 (Minh Dung) có địa chỉ
ip là 192.168.100.101 gọi tới user 201 (Hai Ly) có địa chỉ ip là 192.168.100.102 qua server có ip là 192.168.100.231
Trang 35Bước 1: User 200 gọi đến user 201 Thông điệp INVITE sẽ được gửi từ user 200
có địa chỉ IP 192.168.100.101 đến server địa chỉ IP 192.168.100.231
Bước 2: Ngay khi server nhận được bản tin INVITE từ user 200, nó lập tức gửi bản
tin 100 Trying và OK để thông báo rằng nó đã nhận được yêu cầu của user 200 và đang cố gắng thực hiện yêu cầu đó
Bước 3: Khi user 200 nhận được hồi đáp của server nó sẽ gửi thông điệp ACK để
thông báo cho server là nó đã nhận được phản hồi của server
Bước 4: Proxy sau khi nhận được thông điệp từ user 200 gửi tới nó có trách nhiệm
chuyển tiếp thông điệp đó cho user 201, lúc này trường To sẽ thay đổi bằng địa chỉ của máy 201: 192.168.100.102
Hình 1.11: Mô hình thực hiện việc gọi điện giữa 2 máy sử dụng
ACK Voice RTP
BY BY
2
200
200 OK
Trang 36Bước 5: Trong trường hợp này user 201 chấp nhận kết nối với user 200 và gửi lại
thông điệp 180 Ring ngược về user 200, thông qua proxy
Bước 6: User 201 nhấc máy đồng ý kết nối với user 200 bằng thông điệp 200 OK Bước 7: Server gửi thông điệp ACK báo đã nhận được tín hiệu 200 OK được gửi
từ user 201 Sau đó tiến hành đàm thoại
Bước 8: Khi User 201 cúp máy sẽ gửi thông điệp BYE đến user 200 thông qua
proxy để kết thúc cuộc gọi
Bước 9: Khi nhận được thông điệp BYE, server sẽ báo đã nhận được yêu cầu kết
thúc cuộc gọi của user 201 bằng thông điệp 200 OK và chuyển tiếp thông điệp BYE tới user 200
Bước 10: Khi user 200 nhận được thông báo kết thúc cuộc gọi từ server nó sẽ gửi
thông điệp OK để kết thúc cuộc gọi
1.5 Hệ thống Asterisk
1.5.1 Giới thiệu Asterisk
Asterisk là một “phần mềm mã nguồn mở” được cài đặt trên một máy tính
PC có các giao tiếp tương ứng đi kèm với phần cứng, có thể được sử dụng như là một PBX cho phép các điện thoại nhánh (extensions) thực hiện các cuộc gọi với nhau và kết nối với các hệ thống điện thoại khác bao gồm cả mạng điện thoại analog thông thường (PSTN) và VoIP Asterisk có đầy đủ tính năng của một tổng đài PBX thương mại như: phân luồng cuộc gọi, thư thoại, hội đàm … phù hợp cho người sử dụng gia đình, công ty, các nhà cung cấp dịch vụ VoIP và viễn thông Asterisk còn là một cộng đồng mã nguồn mở và là một sản phẩm thương mại của Digium Chúng ta có thể sử dụng miễn phí Asterisk và thay đổi mã nguồn tự do để phù hợp với các yêu cầu trên hệ thống của mình
1.5.2 Lịch sử của Asterisk
Năm 1999, Mark Spencer – tác giả của Asterisk, gặp phải một vấn đề: ông muốn mua một hệ thống PBX cho công ty của mình để họ có thể có hộp thư thoại
Trang 37(voicemail), gọi điện tới các văn phòng khác nhau trong công ty mà không phải trả cước cho các cuộc gọi và làm tất cả những điều khác mà người ta mong đợi từ một
hệ thống PBX Tuy nhiên, sau khi nghiên cứu những lựa chọn của mình một cách
kỹ lưỡng, Mark Spencer nhận ra rằng những hệ thống PBX thương mại lúc bấy giờ
có giá quá đắt Không nản lòng, Mark Spencer đã quyết định tự xây dựng một tổng đài phù hợp với yêu cầu của mình và kết quả là Asterisk ra đời
Ngày 05/12/1999 Asterisk 0.1.0 ra đời
Ngày 23/09/2004, sau nhiều đóng góp của những nhà phát triển và người dùng, Mark Spencer đã cho ra Asterisk 1.0 với nhiều tính năng hơn Asterisk 1.0 là phiên bản mã nguồn mở ổn định với nhiều tính năng ấn tượng vào thời điểm đó, nó bao gồm một hệ thống hội thoại hoàn chỉnh, hộp thư thoại, khả năng giao tiếp ấn tượng với các thiết bị analog và khả năng giao tiếp đáng tin cậy với ba giao thức của VoIP (H.323, SIP, IAX)
Với việc phát triển không ngừng, ngày 17/11/2005 Asterisk 1.2 ra đời với hơn 3000 code được sửa lại, bao gồm những cải tiến về lõi của phần mềm, nhiều giao thức VoIP hơn, và khả năng mở rộng tốt hơn
Hiện nay, Asterisk đang trên đà phát triển rất nhanh được rất nhiều doanh nghiệp triển khai cho công ty của mình Đây là một 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ó hệ thống mạng máy tính và nhu cầu liên lạc với nhau trong công việc giữa các nhân viên, phòng ban, giữa các chi nhánh là rất cao, nên việc triển khai một hệ thống tổng đài trên hệ thống mạng có sẵn với việc không tốn chi phí cho các cuộc gọi nội bộ trong mạng công ty hoặc cần một chi phí thấp cho việc gọi điện ra mạng PSTN là điều mong muốn của bất cứ công ty, doanh nghiệp nào
Trang 38Asterisk 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 APIcũng được liên kết nạp vào
hệ thống
Sau đó hệ thống PBX Swiching 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 tùy vào dial plan được cấu hình trong file extensions.conf Chức năng Application Launcher
Hình 1.12: Kiến trúc Asterisk
Application Laugher
Scheduler and I/O Manager
PBX Swiching Core Dynamic Module
Loader
Conferencing, Voicemail, Calling Card, Dialing …
Asterisk Application API
SIP, H.323, IAX, MGCP, Custom Hardware …
Asterisk Channel API
Trang 39dùng để 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…
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 thức 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 thức khác nhau đó để xử lý cuộc gọi
Kiến trúc Asterisk bao gồm 4 chức năng API chính:
Asterisk Application API: Bao gồm tất cả các ứng dụng được thực thi trong
hệ thống Asterisk như Voicemail, CallerID …
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ư: gsm, wav,mp3 …
Asterisk Channel API: Giao tiếp với các kênh lệnh 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, H.323 …
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ư G723, GSM, Linear …
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
1.5.5 SIP trong Asterisk
Giao thức SIP trong Asterisk có ba dạng sau:
SIP client: điều này có nghĩa là Asterisk đăng kí như một máy khách (user) tới một server SIP khác Nó sẽ nhận hoặc thực hiện cuộc gọi từ server này
Trang 40 SIP server: Asterisk được cấu hình mặc định là vậy, những SIP client
sẽ đăng kí tới server Asterisk và thiết lập phiên kết nối với server này thông qua giao thức SIP
SIP Gateway: Asterisk xem như là media gateway giữa các giao thức SIP, H.323, IAX và những mối liên kết với mạng PSTN
Mỗi SIP client hay SIP server được định nghĩa thông qua việc cấu hình nó trong file sip.conf, và có cấu trúc như sau:
[username] ; Tên của SIP Client, có thể là kí tự hoặc số
Type = thuộc tính ; trong đó thuộc tính có thể là:
User: Được sử dụng để xác thực cuộc gọi vào
Peer: Được sử dụng để xác thực cuộc gọi ra
Friend: Được sử dụng cho cả hai mục đích trên
Secret=*** ; mật khẩu của user
Context = contexts ; những user trong cùng một context thì mới có thể liên
lạcđược với nhau
Host = dynamic (hoặc một địa chỉ IP cụ thể) ;nếu là dynamic thì user có thể
đăng kí tới tổng đài Asterisk bằng bất cứ địa chỉ IP nào, còn nếu là một địa chỉ IP cụ thể thì user chỉ đăng kí tới tổng đài Asterisk bằng duy nhất địa chỉ
IP đó
Nat=yes (hoặc no) ; cho phép NAT ở môi trường mạng có địa chỉ IP ở các
lớp khác nhau hay không
Port=5060 ; port để kết nối tới các user khác, mặc định của SIP là 5060 Mailbox=username@vm-context ; thiết lập hộp thư thoại cho user
Allow=xyz ; trong đó xyz là những codec được Asterisk hỗ trợ
… và một số thông số khác
Ví dụ:[200]
type=friend secret=abc123 context=incoming