42 Giao diện cổng Asterisk 2 ALG Application-level gateway Gateway mức ứng dụng – thông thường bao gồm tường lửa và chuyển đổi địa chỉ ip từ địa chỉ riêng sang địa chỉ công cộng Protoco
Trang 1LUẬN VĂN THẠC SĨ KHOA HỌC
NGƯỜI HƯỚNG DẪN : TS PHẠM CÔNG HÙNG
Trang 2TÓM TẮT ĐỒ ÁN
VoIP – công nghệ truyền tải thoại trên nền IP là một công nghệ mới đang rất phát triển và tương lai có khả năng thay thế mạng thoại truyền thống PSTN Do vậy, việc phát triển những ứng dụng cho hệ thống VoIP đang là một lĩnh vực nghiên cứu đầy tiềm năng “Hệ thống Business” là một ứng dụng mang tính giải pháp cho các doanh nghiệp kinh doanh VoIP, bên cạnh những tính năng giống mạng PSTN,
hệ thống thoại Business còn cung cấp các tính năng ưu việt mà hệ thống PSTN không có khả năng đáp ứng được
Trong phần đầu, em sẽ nghiên cứu và giới thiệu về giao thức báo hiệu SIP Đây là giao thức hay dùng nhất trên mạng thoại VoIP Phần tiếp theo là phân tích, thiết kế hệ thống Business
Dựa trên hệ thống đã khai thác trên thế giới, em xây dựng một hệ thống mới
có những chức năng của những doanh nghiệp kinh doanh thoại và thiết kế cơ sở dữ liệu, xây dựng các module và chương trình chính, xây dựng giao diện quản lý của
hệ thống cho người sử dụng
Hệ thống mới được xây dựng nhằm đáp ứng nhu cầu thực tế tại Việt Nam, nhằm đem lại hiệu quả cao với tính năng đa dạng, dịch vụ ưu việt nhằm dần thay thế hệ thống PSTN mà vẫn đảm bảo các thói quen trong mạng PSTN truyền thống
Trang 3MỤC LỤC
TÓM TẮT ĐỒ ÁN 1
MỤC LỤC 2
DANH SÁCH CÁC HÌNH 4
DANH SÁCH CÁC BẢNG 5
BẢNG VIẾT TẮT 5
Chương 1: GIỚI THIỆU ĐỀ TÀI 9
1.1 Tính ứng dụng của đề tài 9
1.2 Nội dung nghiên cứu của đề tài 11
Chương 2: CÁC KHÁI NIỆM VÀ KIẾN THỨC LIÊN QUAN 12
2.1 Giới thiệu tổng quan về VoIP 12
2.2 Tổng quan về giao thức SIP 15
2.2.1 Lịch sử phát triển của giao thức SIP 15
2.2.2 Chức năng của giao thức SIP 16
2.2.3 Các đặc tính của giao thức SIP 18
2.2.4 SIP và các giao thức liên quan 19
2.3 Các thành phần trong mạng Voip sử dụng giao thức báo hiệu SIP 31
2.3.1 SIP User Agent 31
2.3.2 Back-to-Back User Agent - B2BUA 32
2.3.3 SIP Gateways 33
2.3.4 SIP Proxy Server 35
2.3.5 SIP Registrar Server 38
2.3.6 Redirect Server 40
2.4 Một số ví dụ về giao thức báo hiệu SIP 45
2.4.1 Thiết lập phiên 46
2.4.2 Thiết lập phiên với sự tham gia của Proxy Server 53
2.4.3 Cuộc gọi từ SIP tới PSTN và từ PSTN vào SIP qua Gateway 62
Chương 3: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG BUSINESS 68
3.1 Giới thiệu chung 68
3.2 Các chức năng của thành phần trong hệ thống Business 71
3.2.1 OpenSer 72
3.2.2 Radius server 73
3.2.3 MySQL 76
3.3.4 Apache – HTTP server 77
3.3 Phân tích thiết kế cơ sở dữ liệu hệ thống 79
3.3.1 Bảng Company 80
3.3.2 Bảng Gateway 81
3.3.3 Bảng Gid (Số máy lẻ) 82
3.3.4 Bảng subscriber (Số thuê bao) 83
3.3.5 Bảng Register 84
3.3.5 Bảng Location 84
3.3.6 Bảng Area 85
3.3.6 Bảng CDR 86
Trang 4Chương 4: XÂY DỰNG CHƯƠNG TRÌNH 86
4.1 Module Routing (định tuyến) 86
4.2 Module CDR 90
4.3 Cài đặt và vận hành hệ thống 92
4.3.1 Cài đặt Openser 92
4.3.2 Radius Client 92
4.3.3 Radius Server 93
4.3.4 RTPProxy 93
4.3.5 Mysql 94
4.4 Vận hành hệ thống 94
KẾT LUẬN 97
Tài liệu tham khảo 98
Trang 5DANH SÁCH CÁC HÌNH
Hình 1.1 Mô hình mạng thoại doanh nghiệp sử dụng dịch vụ VoIP 10
Hình 2.1 Cấu trúc header của giao thức RTP 24
Hình 2.2 Sip User Agent 32
Hình 2.3 Mạng SIP với các gateway chuyển đổi giao thức báo hiệu 34
Hình 2.4 Chức năng của Proxy Server 36
Hình 2.5 Qúa trình gửi bản tin INVITE 38
Hình 2.6 Register sever và quá trình đăng kí 39
Hình 2.7 Redirect sever 40
Hình 2.8 Mô tả thiết lập phiên 46
Hình 2.9 Báo hiệu với sự có mặt của proxy server 55
Hình 2.10 Cuộc gọi từ SIP tới PSTN qua Gateway 63
Hình 3.1 Sơ đồ hệ thống Business 68
Hình 3.2 Sơ đồ thực hiện cuộc gọi trên hệ thống Business 70
Hình 3.3 Hình vẽ quan hệ giữa các bảng trong hệ thống Business 79
Hình 4.1 Thuật toán Routing 88
Hình 4.2 Kiểm tra tiến trình Openser 95
Hình 4.3 Kiểm tra tiến trình Rtpproxy 95
Hình 4.4 Kiểm tra tiến trình B2BUA và tiến trình radius client 96
Hình 4.4 Kiểm tra tiến trình radius 96
Trang 6DANH SÁCH CÁC BẢNG
Bảng 2.1 Các trường trong giao thức SDP 20 Bảng 2.2 RTCP Packet Types 28 Bảng 2.3 Một số mã lỗi và các giải pháp khắc phục 42
Giao diện cổng Asterisk
2 ALG Application-level gateway Gateway mức ứng dụng – thông
thường bao gồm tường lửa và chuyển đổi địa chỉ ip từ địa chỉ riêng sang địa chỉ công cộng
Protocol
Giao thức phân giải địa chỉ
Mode
Phương thức truyền không đồng bộ
5 AVT Audio/Video/Transport
6 B2BUA Back to Back User Agent
Signaling
Báo hiệu kênh kết hợp
8 CPL Call Process Language Ngôn ngữ xử lý cuộc gọi
Configuaration Protocol
Giao thức cấu hình host động – gửi các tham số cấu hình mạng
Trang 7cho host khi có yêu cầu
10 DNS Domain Name Service Kỹ thuật hay dịch vụ ánh xạ từ
tên sang địa chỉ IP
11 HTTP Hypertext Transfer
protocol
Giao thức truyền siêu văn bản
12 ICMP Internet Control Message
14 IP Internet Protocol Giao thức internet – giao thức
lớp 3 trong mô hình tham chiếu OSI
16 ISDN Integrated Services
Digital Network
Mạng số đa dịch vụ tích hợp
17 ISUP ISDN User Part Là một giao thức trong báo hiệu
số bảy, được sử dụng để thiết lập cuộc gọi qua mạng PSTN
Telecommunication Union
Tổ chức liên hợp viễn thông quốc tế
19 IVR Interactive Voice
Response
Trả lời dưới dạng thoại có thể tương tác được
Trang 820 LAN Local Area Network Mạng nội bộ
Translation
Giao thức chuyển đổi địa chỉ từ địa chỉ Private sang địa chỉ IP Public
Interconnection
Mô hình liên kết hệ thống mở -
mô hình tham chiếu
26 PBX Private Branch Exchange Tổng đài chi nhánh riêng
30 RTP Real Time Protocol Giao thức thời gian thực – dùng
để vận chuyển các gói tin thoại trọng mạng Voi
31 SBC Session Boder controller Thiết bị điều khiển biên
Trang 932 SDP Session Descripsion
Protocol
Giao thức miêu tả phiên
33 SIP Session Initiation Protocol Giao thức khởi tạo phiên
34 SMTP Simple Mail Transfer
36 TLS Transmission Layer
Security
Bảo mật lớp truyền dẫn
38 UAC User Agent Client
39 UAS User Agent Server
40 UDP User Datagram Protocol Giao thức truyền tin không tin
cậy lớp 4 trong mô hình OSI
Trang 10CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Tính ứng dụng của đề tài
Công nghệ truyền thoại bằng giao thức IP là một công nghệ mới, cho phép chúng ta có thể truyền tín hiệu thoại trên mạng chuyển mạch gói, thay vì bằng chuyển mạch kênh Với phương pháp này, các đặc trưng của dịch vụ thoại truyền thống không những được giữ nguyên mà còn cho phép thêm vào đó những tính năng tối ưu khác từng bước làm thay đổi bộ mặt của dịch vụ thoại
Tuy nhiên, để sử dụng được những ưu điểm mà VoIP mang lại, các nhà cung cấp dịch vụ phải nghiên cứu giải quyết hàng loạt những vấn đề kĩ thuật phức tạp, ví
dụ như việc báo hiệu trong mạng, kết nối giữa mạng VoIP với mạng thoại PSTN truyền thống cũng như tận dụng được cơ sở vật chất có sẵn của mạng này, đảm bảo chất lượng dịch vụ …Trong đó vấn đề quản lý thuê bao và định tuyến cuộc gọi đóng một vai trò khá quan trọng Khái niệm định tuyến là chỉ quá trình tìm ra các tuyến đường cho các gói tin truyền đi trên mạng Đối với mạng VoIP, định tuyến được hiểu là quá trình tìm ra các tuyến đường để thiết lập kênh báo hiệu và kênh truyền dẫn cho một cuộc gọi
Có thể nói nếu giải quyết tốt bài toán quản lý thuê bao và định tuyến cuộc gọi đồng nghĩa với việc giải quyết thành công bài toán kinh tế - bài toán quyết định
sự tồn tại và phát triển của một doanh nghiệp Trong một vài năm gần đây, thị trường viễn thông nói chung và thị trường VoIP nói riêng ở nước ta đang trở nên khá nhộn nhịp với sự góp mặt của nhiều nhà cung cấp dịch vụ trong và ngoài nước Tuy nhiên đa phần trong số họ vẫn chưa đánh giá đúng vai trò cũng như tầm quan trọng của vấn đề quản lý thuê bao và định tuyến cuộc gọi Để hiểu rõ thực trạng này, chúng ta sẽ nghiên cứu một mô hình hệ thống thoại doanh nghiệp sử dụng dịch
vụ VoIP sau:
Trang 11SS7 Switch STP
PSTN / ISDN
SS7 Switch STP
PSTN / ISDN
Hình 1.1 Mô hình mạng thoại doanh nghiệp sử dụng dịch vụ VoIP
Mô hình trên bao gồm các thành phần:
• Các đám mây mạng thể hiện mạng IP hoặc mạng internet của doanh nghiệp
• Các điện thoại IP, PC có hỗ trợ SIP phone, hay điện thoại truyền thống được nối tới các đám mây mạng để kết nối tới nhà cung cấp dịch vụ thoại
• Mô hình nhà cung cấp dịch vụ được biểu diễn bằng hình vuông ở chính giữa bao gồm server, gateway, billing server và server dịch vụ
• Công ty A, công ty B … là các công ty sử dụng dịch vụ thoại doanh nghiệp của nhà cung cấp dịch vụ
• Các nhà cung cấp dịch vụ VoIP khác: Là các nhà cung cấp hệ thống thoại khác, mục đích kết nối này để mở rộng hệ thống mạng đến các nhà cung cấp dịch vụ khác
Trang 12• Kết nối mạng PSTN: phục vụ cho việc gọi ra và gọi vào mạng thoại doanh nghiệp
Trong mô hình này, hệ thống của nhà cung cấp dịch vụ sẽ cung cấp các dịch
vụ thoại cho các công ty Trên hình vẽ ta có thể thấy, các công ty có thể có nhiều chi nhánh khác nhau, các chi nhánh được kết nối đến nhà cung cấp dịch vụ Từ đó, các chi nhánh có thể sử dụng dịch vụ thoại mà không còn cảm giác là khác nhau về
vị trí giữa các chi nhánh
1.2 Nội dung nghiên cứu của đề tài
Trong quá trình nghiên cứu và làm đồ án tốt nghiệp vừa qua, dưới sự giúp đỡ
và tạo mọi điều kiện từ ban giám đốc công ty Viễn thông số - Tổng công ty truyền thông đa phương tiện Việt Nam, dưới sự chỉ dạy nhiệt tình của thầy Phạm Công Hùng, em đã hoàn thành đồ án ‘Phân tích thiết kế hệ thống Business cho doanh nghiệp sử dụng VoIP " Để giải quyết bài toán trên, đồ án của em tập trung vào các vấn đề sau:
• Tìm hiểu về VoIP và giao thức báo hiệu SIP
• Thiết kế xây dựng hệ thống cơ sở dữ liệu quản lý các thuê bao trong hệ thống
• Nghiên cứu và cấu hình hệ thống Business sử dụng các mã nguồn mở có sẵn trên mạng: Openser, Asterisk, B2BUA …
Trang 13CHƯƠNG 2: CÁC KHÁI NIỆM VÀ KIẾN THỨC LIÊN QUAN
2.1 Giới thiệu tổng quan về VoIP
Trong một vài năm trở lại đây, sự ra đời và phát triển của công nghệ VoIP dựa trên những tiến bộ trong công nghệ điện tử, kỹ thuật nén và xử lý tín hiệu cộng với nền tảng kỹ thuật của giao thức Internet (IP - Internet Protocol) đã đánh dấu một cuộc cách mạng trong lĩnh vực truyền dẫn thoại Dịch vụ VoIP cho phép người dùng có khả năng thực hiện các cuộc đàm thoại thông thường như trong dịch vụ thoại PSTN truyền thống, ngoài ra nó còn bao gồm các dịch vụ khác như fax, multimedia Tất cả đều được đảm bảo với cơ chế giám sát chất lượng dịch vụ QoS rất nghiêm ngặt
VoIP ra đời nhằm khai thác tính hiệu quả của các mạng truyền số liệu, khai thác tính linh hoạt trong phát triển các ứng dụng mới của giao thức IP và nó được
áp dụng trên một mạng toàn cầu là mạng Internet Các tiến bộ của công nghệ mang đến cho VoIP những ưu điểm sau:
+ Giảm chi phí cuộc gọi: Ưu điểm nổi bật nhất của dịch vụ VoIP so với dịch
vụ điện thoại hiện tại là khả năng cung cấp những cuộc gọi đường dài giá rẻ với chất lượng chấp nhận được Nếu dịch vụ VoIP được triển khai, chi phí cho một cuộc gọi đường dài sẽ chỉ tương đương với chi phí truy nhậ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 giảm tốc độ bít từ 64 Kbps xuống thấp tới 8 Kbps (theo tiêu chuẩn nén thoại G.729A của ITU-T) kết hợp với tốc độ xử lý nhanh của các bộ vi xử lý ngày nay cho phép việc truyền tiếng nói theo thời gian thực là có thể thực hiện được với lượng tài nguyên băng thông thấp hơn nhiều so với kỹ thuật cũ
So sánh một cuộc gọi trong mạng PSTN với một cuộc gọi qua mạng IP, ta thấy:
Trang 14Chi phí phải trả cho cuộc gọi trong mạng PSTN là chi phí phải bỏ ra để duy trì cho một kênh 64kbps suốt từ đầu cuối này tới đầu cuối kia thông qua một hệ thống các tổng đài Chi phí này đối với các cuộc gọi đường dài (liên tỉnh, quốc tế) là khá lớn
Trong trường hợp cuộc gọi qua mạng IP, người sử dụng từ mạng PSTN chỉ phải duy trì kênh 64kbps đến Gateway của nhà cung cấp dịch vụ tại địa phương Nhà cung cấp dịch vụ điện thoại IP sẽ đảm nhận nhiệm vụ nén, đóng gói tín hiệu thoại và gửi chúng đi qua mạng IP một cách có hiệu quả nhất để tới được Gateway nối tới một mạng điện thoại khác có người liên lạc đầu kia Việc kết nối như vậy làm giảm đáng kể chi phí cuộc gọi do phần lớn kênh truyền 64Kbps đã được thay thế bằng việc truyền thông tin qua mạng dữ liệu hiệu quả cao
+ Tích hợp mạng thoại, mạng số liệu và mạng báo hiệu: Trong dịch vụ
thoại VoIP, tín hiệu thoại, dữ liệu data và ngay cả báo hiệu đều có thể cùng đi trên cùng một mạng IP Điều này sẽ tiết kiệm được chi phí đầu tư để xây dựng những mạng riêng rẽ
+ Khả năng mở rộng: Nếu như các hệ tổng đài thường là những hệ thống
kín, rất khó can thiệp điểu chỉnh thì các thiết bị trong mạng internet thường có khả năng thêm vào những tính năng mới theo nhu cầu phát triển của hệ thống Chính tính mềm dẻo đó mang lại cho dịch vụ VoIP khả năng mở rộng dễ dàng hơn so với điện thoại truyền thống
+ Không cần thông tin điều khiển để thiết lập kênh truyền vật lý: Gói
thông tin trong mạng IP truyền đến đích mà không cần một sự thiết lập kênh nào Gói chỉ cần mang địa chỉ của nơi nhận cuối cùng là thông tin đã có thể đến được đích Do vậy, việc điều khiển cuộc gọi trong mạng IP chỉ cần tập trung vào chức năng cuộc gọi mà không phải tập trung vào chức năng thiết lập kênh
+ Quản lý băng thông: Trong điện thoại chuyển mạch kênh, tài nguyên
băng thông cung cấp cho một cuộc liên lạc là cố định (một kênh 64Kbps) nhưng trong VoIP, việc phân chia tài nguyên cho các cuộc thoại linh hoạt hơn nhiều Khi
Trang 15một cuộc liên lạc diễn ra, nếu lưu lượng của mạng thấp, băng thông dành cho liên lạc sẽ cho chất lượng thoại tốt nhất có thể, nhưng khi lưu lượng của mạng cao, mạng sẽ hạn chế băng thông của từng cuộc gọi ở mức duy trì chất lượng thoại chấp nhận được nhằm phục vụ cùng lúc được nhiều người nhất Điểm này cũng là một yếu tố làm tăng hiệu quả sử dụng của VoIP Việc quản lý băng thông một cách tiết kiệm như vậy cho phép người ta nghĩ tới những dịch vụ cao cấp hơn như truyền hình hội nghị, điều mà với công nghệ chuyển mạch cũ người ta đã không thực hiện
vì chi phí quá cao
+ Nhiều tính năng dịch vụ: Tính linh hoạt của mạng IP cho phép tạo ra
nhiều tính năng mới trong dịch vụ thoại Ví dụ cho biết thông tin về người gọi tới hay một thuê bao điện thoại VoIP có thể có nhiều số liên lạc mà chỉ cần một thiết bị đầu cuối duy nhất (Ví dụ như một thiết bị IP Phone có thể có một số điện thoại dành cho công việc, một cho các cuộc gọi riêng tư)
+ Khả năng multimedia: Trong một “cuộc gọi” người sử dụng có thể vừa
nói chuyện vừa sử dụng các dịch vụ khác như truyền file, chia sẻ dữ liệu, hay xem hình ảnh của người nói chuyện bên kia
Tuy nhiên, bên cạnh những ưu điểm trên, công nghệ VoIP cũng có những hạn chế như:
+ 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 khó thực hiện do mất gói trong mạng là không thể tránh được và độ trễ không cố định của các gói thông tin khi truyền trên mạng Để có được một dịch
vụ thoại chấp nhận được, cần thiết 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: tỉ số nén lớn (để giảm được tốc độ bit xuống), có khả năng suy đoán và tạo lại thông tin của các gói bị thất lạc Tốc độ xử lý của các bộ Codec (Coder and Decoder) 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 như Frame Relay, ATM, để có tốc độ cao hơn và/hoặc phải có một cơ chế thực hiện chức năng QoS (Quality of Service) Tất cả các điều này làm cho kỹ thuật thực
Trang 16hiện điện thoại IP trở nên phức tạp và không thể thực hiện được trong những năm trước đây
+ Vấn đề bảo mật (security): Mạng Internet là một mạng có tính rộng khắp
và hỗn hợp (hetorogenous network) Trong đó có rất nhiều loại máy tính khác nhau cùng các dịch vụ khác nhau cùng sử dụng chung một cơ sở hạ tầng Do vậy không
có gì đảm bảo rằng thông tin liên quan đến cá nhân cũng như số liên lạc truy nhập
sử dụng dịch vụ của người dùng được giữ bí mật
Như vậy, VoIP thực sự là một loại hình dịch vụ mới rất có tiềm năng Trong tương lai, VoIP sẽ cung cấp các dịch vụ hiện có của điện thoại trong mạng PSTN và các dịch vụ mới của riêng nó nhằm đem lại lợi ích cho đông đảo người dùng Tuy nhiên, VoIP với tư cách là một dịch vụ sẽ không trở nên hấp dẫn hơn PSTN chỉ vì
nó chạy trên mạng IP Khách hàng chỉ chấp nhận loại dịch vụ này nếu như nó đưa
ra được một chi phí thấp và/hoặc những tính năng vượt trội hơn so với dịch vụ điện thoại hiện tại
2.2 Tổng quan về giao thức SIP
Giao thức khởi tạo phiên (Session Intiation Protocol - SIP) là một giao thức báo hiệu mới thuộc lớp ứng dụng trong mô hình tham chiếu OSI, được sử dụng để thiết lập, định dạng và kết thúc các phiên Multimedia và các cuộc điện thoại internet SIP cũng có thể mời các thành phần khác tham gia vào các phiên đang tồn tại, các cuộc hội thảo multicast SIP hỗ trợ trong suốt việc ánh xạ tên và tái định hướng các dịch vụ, hỗ trợ tính di động SIP được coi là một phần của cấu trúc hội thảo đa phương tiện internet, được thiết kế để tương thích với các giao thức khác như TCP, UDP, IP, DNS…
2.2.1 Lịch sử phát triển của giao thức SIP
SIP khởi nguồn được phát triển bởi IETF Multi-Party Multimedia Session Control Working Group, và được biết đến dưới cái tên MMUSIC Phiên bản 1.0 được đệ trình như là một Internet-Draft vào năm 1997 Những thay đổi có ý nghĩa
Trang 17đã được bổ sung vào giao thức và cho kết quả trong phiên bản hai, phiên bản này cũng được đệ trình như là một bản Internet-Draft vào năm 1998 Giao thức SIP đã đạt được Proposed Standard vào tháng 3 năm 1999 và đã được xuất bản thành RFC
2543 vào tháng 4 cùng năm Tháng 9 năm 1999, nhóm khai thác phát triển SIP đã được thành lập bởi IETF với mục đích nhận được sự quan tâm đang lớn dần đối với giao thức này Một phiên bản Internet-Draft của giao thức SIP bao gồm những sửa lỗi và sự điều chỉnh gạn lọc làm cho dễ hiểu đã được công bố tháng 7 năm 2000, kí hiệu RFC 2543 “bis” Tài liệu này cuối cùng được xuất bản mang kí hiệu RFC
3261, thay thế phiên bản RFC 2543 Thêm vào đó, một vài tài liệu RFC về các mở rộng của SIP cũng đã được xuất bản
Sự phổ biến của SIP trong IETF đã dẫn tới việc hình thành các nhóm khai thác và phát triển liên quan đến SIP khác Nhóm nghiên cứu Giao Thức Khới Tạo Phiên (Session Initiation Protocol) đã được thành lập nhằm mục đích nghiên cứu các ứng dụng của SIP, phát triển thủ tục cho các mở rộng của SIP, và phát hành các tài liệu thực hành tốt nhất về SIP Nhóm làm việc này cũng công bố các gói SIP event RFCs Nhóm SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions) được thành lập để chuẩn hóa các giao thức cho các ứng dụng presence and instant messaging Các nhóm khác tạo ra các ứng dụng của SIP bao gồm: PSTN and Internet Internetworking (PINT) và Service in the PSTN/IN requesting Internet Services (SPIRITS)
2.2.2 Chức năng của giao thức SIP
SIP - Session Initial Protocol, giống như tên gọi đã chỉ ra, giao thức này cho phép hai điểm đầu cuối thiết lập các phiên media với nhau Những chức năng báo hiệu chính của giao thức:
• Location of end points: Xác định các điểm đầu cuối tham gia vào các phiên
media
Trang 18• Contacting an end point to determine willingness to establish a session:
Liên lạc với các điểm đầu cuối để xác định xem các điểm đầu cuối này đã sẵn sàng thiết lập phiên hay chưa
• Exchange of media information to allow session to be established: Sau
khi xác định các đầu cuối đã sẵn sàng để tham gia vào phiên thì SIP cho phép hai điểm đầu cuối này trao đổi các thông tin liên quan đến phiên media trước khi phiên được thiết lập
• Modification of existing media sessions: SIP cho phép định dạng lại một
phiên media đang diễn ra
• Tear-down of existing media sessions: SIP trao đổi các bản tin để báo hiệu
kết thúc một phiên media
SIP có sự kế thừa những ưu điểm của hai giao thức internet phổ biến nhất hiện nay đó là: Hyper Text Transport Protocol (HTTP) – giao thức được sử dụng cho trình duyệt web, Simple Mail Transport Protocol ( SMTP) – giao thức được sử dụng cho thư điện tử Từ HTTP, SIP được thiết kế dựa vào mô hình Client-Server
và trong đó có sử dụng cách đánh địa chỉ theo URL, URI Từ SMTP, SIP dựa vào kiểu mã hóa dưới dạng Text, không những thế SIP còn sử dụng các trường header
Ví dụ, SIP sử dụng lại các header của SMTP như To, From, Date và Subject cho các bản tin báo hiệu của nó
SIP chỉ là một trong các giao thức của IETF hoạt động kết hợp với nhau trong kiến trúc điều khiển, truyền số liệu đa phương tiện Những giao thức này bao gồm: RSVP dùng để giữ trước tài nguyên của mạng cho các phiên thông tin, RTP
để truyền thông tin trong thời gian thực với cơ chế phản hồi QoS, RSVP được sử dụng để điều khiển việc truyền các luồng thông tin, SAP dùng để thông báo các phiên truyền thông đa phương tiện thông qua multicast, SDP được sử dụng để mô tả các phiên thông tin Tuy nhiên hoạt động của SIP không phụ thuộc vào bất kỳ giao thức nào trong số đó
Trang 19SIP ngoài việc sử dụng các giao thức đã có của IETF như HTTP và SMTP
nó còn sử dụng kết hợp với các giao thức khác như: thoả thuận môi trường truyền bằng SDP (Session Description Protocol), môi trường truyền dùng RTP/RTCP, phân giải tên và sự di động bằng DHCP và DNS
2.2.3 Các đặc tính của giao thức SIP
SIP được thiết kế phục vụ cho mục đích lâu dài của điện thoại Internet và hội nghị đa phương tiện Rất nhiều sự quan tâm được tập trung vào việc phát triển SIP
để đảm bảo giao thức này trở thành cơ sở cho thông tin trên Internet Dưới đây là một số đặc điểm nổi bật tổng quát của SIP
* Simplicity (Tính đơn giản): không giống như các giao thức khác cho
Internet và thoại, SIP sử dụng các bản tin dạng text nên có thể dễ dàng đọc được Thêm vào đó các giao thức vốn có vẫn được sử dụng ví dụ như HTTP 1.1 Điều này làm cho giao thức này trở nên rất dễ khắc phục sự cố và tích hợp với các ứng dụng khác
* Efficiency (Hiệu quả): giao thức ở phía trên SIP có ảnh hưởng nhỏ đến
hiệu suất truyền thông, bởi vì các chức năng báo hiệu sử dụng một phần nhỏ băng thông so với các luồng truyền thông
* Scalability (Khả năng co giãn): Server không cần duy trì các thông tin
trạng thái về các phiên truyền thông SIP trên UDP Do đó một server có thể điều khiển một cách hiệu quả nhiều client Vòng lặp bản tin định tuyến có thể sử dụng tài nguyên mạng rộng khắp, trở nên phổ biến khi mạng được mở rộng SIP sẽ phát hiện
và ngăn chặn vòng lặp bản tin định tuyến, điều này cải thiện hoạt động của mạng lớn
* Flexibility (Tính mềm dẻo): Do SIP sử dụng SDP để thoả thuận việc
codec, bất kỳ codec nào có thể được sử dụng đều được đăng ký với IANA So sánh điều này với H.323, ta thấy được sự khác biệt Bởi vì trong H.323 các chuẩn codec
Trang 20được định nghĩa rõ ràng và ít thay đổi, còn các chuẩn khác cùng chia sẻ trường dành cho chuẩn không được sử dụng thường xuyên
* Support for Mobility (Hỗ trợ sự di động): Mô hình SIP cho phép người
sử dụng có thể di chuyển từ thiết bị đầu cuối này sang thiết bị đầu cuối khác mà không nhất thiết phải cùng loại Giao thức này đưa ra sự hỗ trợ rất mạnh cho việc
ủy nhiệm, tái định hướng, do đó người sử dụng có thể tùy ý lựa chọn việc che dấu hay không vị trí thực tế của họ
* User progammabiity (Khả năng lập trình của người sử dụng): Ngoài
việc hỗ trợ cho điện thoại truyền thống, SIP có thể khai thác tốt ngôn ngữ xử lý cuộc gọi (CPL) Điều này cho phép người sử dụng đưa ra những quy luật phức tạp cho server mà không cần quan tâm xem ai liên lạc với họ, vị trí, thời điểm, và loại phương tiện truyền dẫn
* Extensibility (Khả năng mở rộng): Người thiết kế giao thức không thể
đoán trước được tất cả các yêu cầu cho giao thức Điều này cho phép việc cải tiến
và mở rộng giao thức trong khi vẫn đảm bảo hoạt động nhịp nhàng với phiên bản
cũ Thêm vào đó, các tuỳ chọn không được sử dụng sẽ bị loại bỏ để giao thức không
bị cồng kềnh
2.2.4 SIP và các giao thức liên quan
Như đã trình bày ở trên, SIP có sử dụng một số giao thức khác để phục vụ cho họat động của nó Dưới đây ta xét đến một số giao thức có liên quan đó
Session Description Protocol
Giao thức mô tả phiên SDP được phát triển bởi nhóm nghiên cứu IETF MMUSIC Mục đích đầu tiên của SDP là mô tả những phiên multicast thiết lập trên multicast backbone (MBONE) của mạng internet Ứng dụng đầu tiên của SDP là bởi giao thức thử nghiệm Session Announcement Protocol (SAP) sử dụng để truyền
và nhận những thông cáo của các phiên MBONE Các bản tin SAP mang những
Trang 21phần thân bản tin SDP, và là một mẫu sử dụng của SDP trong SIP Mặc dù được thiết kế cho multicast nhưng SDP đã được ứng dụng cho nhiều bài toán về mô tả các phiên đa phương tiện nói chung được thiết lập bởi SIP
SDP bao gồm những thông tin sau về các phiên truyền tải:
• IP Address ( địa chỉ IPv4 hay host name)
• Port number (sử dụng bởi UDP or TCP cho vận chuyển)
• Media type (audio, video, interactive whiteboard, …)
• Media encoding scheme (PCM A-Law, MPEG II video, …)
Thêm vào đó, SDP còn bao gồm những thông tin sau:
• Subject of the session (chủ đề phiên)
• Start and stop times (thời gian bắt đầu và kết thúc phiên)
• Contact information about the session (thông tin liên lạc về phiên)
Cũng giống như SIP, SDP sử dụng mã hóa Text Một bản tin SDP là kết hợp của một loạt các dòng, gọi là trường có tên viết tắt bởi một ký tự đơn và có yêu cầu về thứ tự để đơn giản hóa cú pháp Tập hợp các trường SDP được liệt kê trong bảng 2.1 sau đây:
Bảng 2.1 Các trường trong giao thức SDP
Trang 22p= Số điện thoại o
t=
Thời gian bắt đầu và kết thúc phiên m r= Thời gian lặp lại o
SDP không được thiết kế với khả năng dễ dàng mở rộng, và những qui tắc về
cú pháp rất nghiêm ngặt Cách duy nhất để mở rộng hay thêm vào những khả năng
cho SDP là định nghĩa một loại thuộc tính mới Tuy nhiên, những loại thuộc tính
không được biết có thể âm thầm bị bỏ qua Trong cú pháp của SDP, nhất thiết
không được bỏ qua những trường “Unknown”, một trường vắng mặt bắt buộc hay
một dòng sai thứ tự Sau đây là một ví dụ về bản tin SDP bao gồm nhiều trường tùy
Trang 23Mẫu thông dụng của bản tin SDP là:
X=ThamSo1 Thamso2 ThamSoN
Dòng chữ bắt đầu với ký tự đơn x Không bao giờ có khoảng trắng giữa kí tự với dấu =, và có chính xác một khoảng trống giữa mỗi thông số Mỗi trường có một số của thông số đã được định nghĩa Mỗi dòng kết thúc bởi CRLF
Ứng dụng của SDP trong SIP
Loại message body chuẩn trong SIP là application/sdp Bên gọi sẽ liệt kê những khả năng truyền thông mà họ sẵn sàng đáp nhận trong SDP của cả bản tin INVITE hoặc ACK Bên bị gọi liệt kê các khả năng truyền thông trong bản tin đáp ứng 200 OK tới bản tin INVITE Phổ biến hơn, lời mời hay trả lời có thể có trong các bản tin INVITE, PRACK, hay UPDATE hay trong việc gửi tin cậy các đáp ứng
18x hay 200 tới những phương pháp này
SIP sử dụng kết nối, truyền thông, và các trường thuộc tính để thiết lập phiên giữa các user agent Bởi vì các loại phiên truyền thông và codec được sử dụng như một phần trong đàm phán kết nối, SIP có thể sử dụng SDP để xác định nhiều kiểu media luân phiên và chấp nhận có lựa chọn hay từ chối những kiểu media này Khi
có nhiều loại media codec được liệt kê, cả trường media của người gọi và người bị gọi đều phải được sắp hàng, nghĩa là phải có cùng số, chúng phải được liệt kê cùng thứ tự Theo đề xuất trong tài liệu RFC 3264, một thuộc tính bao gồm a=rtpmap sẽ được sử dụng cho mỗi trường media Một luồng media bị từ chối bằng cách thiết lập port number thành zero cho trường media phản hồi trong đáp ứng SDP Trong ví
Trang 24dụ sau đây, người gọi Tesla muốn thiết lập một cuộc gọi audio và video với hai mã audio codec và một mã video codec trong SDP ở bản tin INVITE:
Trang 25Một đối tác trong cuộc gọi có thể tạm thời đề nghị người kia gác máy (tạm dừng việc truyền gói media).Việc này được thực hiện bằng cách gửi một bản tin INVITE với SDP giống hệt với bản tin INVITE gốc, nhưng với thuộc tính a=secondly
RTP – Real Time transport protocol
Giao thức truyền tải thời gian thực (RTP) do tổ chức IETF đề xuất, được phát triển để cho phép truyền tải và giám sát các gói thời gian thực bao gồm thoại, video, hoặc những thông tin khác trên mạng IP RTP không đưa ra bất cứ tiêu chuẩn dịch vụ nào trên mạng IP – các gói RTP được kiểm soát tương tự như tất các gói khác trong mạng IP Tuy nhiên RTP cũng có khả năng phát hiện ra một vài lỗi hư
hại trong mạng IP, ví dụ như:
- Packet loss (mất gói tin)
- Variable transport delay (trễ truyền tải biến đổi)
- Out of sequence packet arrival (gói tin đến sai thứ tự)
- Asymmetric routing (định tuyến bất đối xứng)
RTP là một giao thức lớp ứng dụng sử dụng UDP để truyền tải dữ liệu qua
IP RTP không phải là text encoded, nhưng sử dụng tiếp đầu định hướng bằng bit, tương tự như UDP và IP RTP version 0 chỉ sử dụng bởi công cụ âm thanh và cho truyền thông MBONE Version 1 chỉ là một sự bổ sung mà không được sử dụng Phiên bản hiện thời RTP version 2 đóng gói tiếp đầu như hình 2.1 sau đây:
Hình 2.1 Cấu trúc header của giao thức RTP
Mười hai octet trong tiếp đầu của RTP là:
Trang 26• Version (V): Trường 2 bit này được set về 2, chỉ phiên bản hiện thời của
RTP
• Padding (P): Nếu bit này được thiết lập, sẽ có các octet đệm được thêm vào
cuối gói tin làm cho nó có độ dài xác định Đây là cách phổ biển nhất nếu dòng dữ liệu được mã hóa
• Extension (X): Nếu bit này được thiết lập, sẽ có một phần mở rộng được
thêm vào theo sau phần header (tăng tổng chiều dài header thành 14 octets) Những phần mở rộng được định nghĩa bởi những loại tải (payload) xác định
• CSRC count (CC): Trường 4 bit này bao một số content source identifiers
(CSRC) có mặt theo sau header Trường này chỉ được sử dụng bởi các bộ mixer trong trường hợp có nhiều luồng RTP ở đầu vào và một luồng RTP ở đầu ra
• Marker (M): Bit này được dùng để chỉ ra sự bắt đầu của một khung mới
trong video
• Payload Type (PT): Trường 7 bit này định nghĩa codec được sử dụng Giá
trị của trường này khớp với số profile liệt kê trong SDP
• Sequence Number: Trường 16 bit này được tăng thêm cho mỗi gói RTP gửi
đi và sử dụng để phát hiện ra những gói tin bị thất lạc hay sai thứ tự
• Timestamp: Trường 32 bit này chỉ ra một cách tương đối thời điểm mà
payload được lấy mẫu Nó cho phép đầu thu có thể loại bỏ jitter và phát lại gói tin vào đúng một khoảng thời gian nào đó với giả thiết rằng có đủ bộ đệm buffer
• Synchronization Source Identifier (SSRCI): Trường 32 bit này chỉ ra phía
gửi gói tin RTP Khi bắt đầu một phiên, mỗi bên tham gia sẽ chọn một số SSRC ngẫu nhiên Nếu mỗi lần cả hai phía chọn đồng thời một số giống nhau thì sẽ phải chọn lại tới khi nào mỗi bên có một số duy nhất
• CSRC Contributing Source Identifier: Có thể có từ 0 đến 15 giá trị cho
trường 32 bit này trong phần tiếp đầu Số đó được thết lập bởi trường CSRC Count (CC) header Trường này chỉ có mặt nếu gói tin RTP được gửi bởi bộ
Trang 27mixer, nơi nhận những gói tin RTP từ một số nguồn và gửi ra những gói tin kết hợp
RTP cho phép phát hiện ra trường hợp mất gói tin bởi một khoảng trống trong Sequence Number Những gói tin được nhận về không đúng thứ tự có thể được phát hiện ra nhờ số Sequence Number không đúng Chú ý rằng RTP có thể phát hiện ra những vấn đề liên quan đến truyền tải này nhưng lại dành phần xử lý cho bộ codec Ví dụ bộ video codec có thể bù những gói tin bị mất bằng cách lặp lại khung hình cuối cùng, trong khi bộ audio codec có thể phát tiếng nền theo chu kỳ Trễ biến đổi hay jitter có thể được phát hiện ra bằng trường Timestamp field Một
bộ codec tốc độ bit cố định như PCM có trường Timestamp tăng tuyến tính Còn bộ codec tốc độ bit biến đổi, tức những bộ codec gửi các gói tin trong những khoảng thời gian không đều, sẽ có trường Timestamp tăng không đều – trường này có thể được dùng để phát lại những gói tin ở những chu kỳ chính xác
Trong các phiên đa phương tiện được thiết lập với SIP, thông tin cần thiết để lựa chọn codec và gửi các gói tin RTP tới đích một cách chính xác được mang trong phần thân bản tin SDP Trong một vài trường hợp, có thể thay đổi được codec ngay trong quá trình của một phiên RTP Bởi vì một gói RTP bao gồm kiểu payload, nên
có thể thay đổi codec “trên đường đi” (on the fly) khi không có bất cứ thông tin báo hiệu nào đang trao đổi giữa các user agent Mặt khác, việc chuyển đổi codec thông thường không nên thực hiện mà không có một trao đổi báo hiệu SIP (re- INVITE) bởi vì cuộc gọi có thể thất bại nếu một bên chuyển sang codec mà bên kia không hỗ trợ Bản tin trao đổi SIP re-INVITE cho phép sự thay đổi này trong các thông số phiên truyền thông bị hỏng mà không làm cho phiên thiết lập bị thất bại
RTCP - RTP Control Protocol
Từ các thông tin cung cấp trong RTP cho mỗi gói tin, ta có thể giám sát chất lượng truyền tiếng nói trong quá trình diễn ra hội thoại RTCP phân tích và xử lý các thông tin này để tổng hợp thành các thông tin trạng thái rồi đưa ra các bản tin
Trang 28phản hồi đến tất cả các thành viên Ta có thể điều chỉnh tốc độ truyền số liệu nếu cần, trong khi các bên nhận khác có thể xác định xem vấn đề chất lượng dịch vụ là cục bộ hay toàn mạng Đồng thời, nhà quản lý mạng có thể sử dụng các thông tin tổng hợp cho việc đánh giá và quản lý chất lượng dịch vụ trong mạng đó
Ngoài ra, các bên tham gia có thể trao đổi các mục mô tả thành viên như tên, e-mail, số điện thoại và các thông tin khác
Giao thức điều khiển thời gian thực Real-time Control Protocol (RTCP) có nhiệm vụ giám sát và đánh giá quá trình truyền tin dựa trên việc truyền một cách định kỳ các gói tin điều khiển tới các thành viên tham gia hội thoại với cùng cơ chế truyền dữ liệu RTCP thi hành 4 chức năng chính:
- Cung cấp cơ chế phản hồi chất lượng truyền dữ liệu Bên gửi thống kê quá trình gửi dữ liệu qua bản tin người gửi cho các thành viên Bên nhận cũng tiến hành gửi lại bản thống kê các thông tin nhận được qua bản tin người nhận Từ việc giám sát quá trình gửi và nhận giữa các bên, ta có thể điều chỉnh lại các thông số cần thiết để tăng chất lượng cho cuộc gọi Đây là chức năng quan trọng nhất của RTCP
- Mỗi nguồn cung cấp gói tin RTP được định danh bởi một tên CNAME (Canonical end-point identifer SDES item) RTCP có nhiệm
vụ cho các thành viên biết tên này Khi có thành viên mới tham gia hội thoại thì anh ta phải được gán với một trường CNAME trong gói tin SDES
- Quan sát số thành viên tham gia hội thoại thông qua sự thống kê ở các bản tin
- Mang các thông tin thiết lập cuộc gọi, các thông tin về người dùng Đây là chức năng tùy chọn Nó đặc biệt hữu ích với việc điều khiển các phiên lỏng, cho phép dễ dàng thêm bớt số thành viên tham gia hội thoại mà không cần có ràng buộc nào
RTCP định nghĩa 5 loại gói tin:
Trang 29Bảng 2.2 RTCP Packet Types
RR Receiver Report, thông báo người nhận
SDES Source Description items, các mục mô tả nguồn
APP Cung cấp các chức năng riêng biệt của từng ứng dụng
Các thông tin được cung cấp bởi gói tin RTCP cho phép mỗi thành viên tham gia hội thoại giám sát được chất lượng truyền tin, số gói tin đã gửi đi, số gói tin nhận được, tỷ lệ gói tin bị mất, trễ là bao nhiêu … Vì vậy, các thông tin này thường được cập nhật một cách định kỳ và chiếm không quá 5% giải thông cuộc gọi
Như vậy không những RTP đáp ứng được yêu cầu thời gian thực cho việc truyền tiếng nói qua mạng IP mà còn cho phép ta giám sát và đánh giá chất lượng truyền tin cho VoIP Có rất nhiều yếu tố ảnh hưởng tới chất lượng dịch vụ (Quality
of Service- QoS) cho VoIP nhưng chủ yếu là do 3 nguyên nhân trễ, tỷ lệ gói tin mất
và Jitter Tại mỗi thời điểm diễn ra hội thoại ta đều có thể quan sát và đánh giá các tham số này
Tuy nhiên, bản thân RTP hoạt động trên tầng IP mà bản chất mạng IP là chuyển mạch gói, do vậy RTP không can thiệp được tới các nguyên nhân trên Ta không thể điều khiển được chất lượng dịch vụ qua thoại trên IP mà chỉ giám sát và đánh giá qua việc sử dụng RTP Biện pháp khắc phục hiện nay là sử dụng giao thức giữ trước tài nguyên Resource Reservation Protocol (RSVP) cho VoIP
Các giao thức PSTN
Trang 30Phần này sẽ giới thiệu tổng quan ba loại giao thức báo hiệu PSTN là: Circuit Associated Signaling (CAS), ISDN (Intergrated Services Digital Network), và ISUP
(ISDN User Part)
*Circuit Associated Signaling
Đây là kiểu báo hiệu cũ nhất được sử dụng trong mạng PSTN ngày nay Thông tin báo hiệu sử dụng chung một mạch audio với kênh thoại, với những kí số
và kí tự biểu diễn bới tín hiệu âm thanh Những tín hiệu này gọi là âm đa tần (MF) Chúng tương tự như tín hiệu được sử dụng để báo hiệu giữa điện thoại và chuyển mạch tổng đài - DTMF Trễ quay số được tính đến vì phải tính đến thời gian cho xung ra của các chuỗi kí số dài Hơn nữa, CAS không có tín bảo mật cao, một tín hiệu giả có thể được người gọi tạo ra nhằm đánh cắp những cuộc gọi miễn phí Kiểu báo hiệu này rất thông dụng trong những mạch trung kế giữa tổng đài và chuyển mạch PBX của các doanh nghiệp
*ISUP Signaling
ISDN User Part là một giao thức báo hiệu cuộc gọi sử dụng giữa các chuyến mạch điện thoại trong mạng PSTN Nó được sử dụng trong mạng chuyển mạch gói riêng biệt dùng hệ thống báo hiệu số 7 (SS7) cho truyền tải Phương thức báo hiệu này được phát triển để khắc phục những vấn đề về trễ và bảo mật mà CAS gặp phải Giao thức báo hiệu out-of-band này là một nhân tố để chuyển đổi từ mạng chuyển mạch kênh sang mạng chuyển mạch gói
*ISDN Signing
Báo hiệu mạng dịch vụ số tích hợp-Integrated Services Digital Network (ISDN) được phát triển cho các kết nối điện thoại số tới PSTN Loại thông dụng nhất của các giao diện tốc độ là giao diện tốc độ cơ bản (BRI) và giao diện tốc độ thứ nhất (PRI) Một BRI có thể bao gồm hai kênh B 64 Kbps cho cả thoại và data
và một kênh D 16 Kbps cho báo hiệu BRI có thể sử dụng trên những đường dây điện thoại qui ước nhưng yêu cầu một đường ISDN cho bộ đáp ứng đầu cuối PRI
Trang 31sử dụng một kết nối 1.544 Mbps gọi là một đường T1 hay một đường DS1, có thể chia thành 23 kênh B và một kênh D, với mỗi tốc độ mỗi kênh là 64 Kbps Giao thức H323 sử dụng lại một tập con của giao thức báo hiệu ISDN Q.931 trên kênh D
*SIP for Telephones
SIP for Telephones (SIP-T) là một cơ chế cho sự bắt tay giữa SIP và PSTN
Nó bao gồm hai phương pháp: chuyến đổi (translation) và đóng gói (encapsulation)
Translation là phép ánh xạ thẳng giữa các giao thức PSTN với giao thức SIP Phép ánh xạ giữa những giao thức phổ biến của PSTN như ISUP, Q.SIG và vài giao thức khác đã được định nghĩa rõ ràng Những ví dụ về SIP liên kết với những giao thức PSTN bao gồm ISDN và CAS có trong tài liệu SIP PSTN Call Flows Trong phương pháp này, tối đa các thông tin chung đối với mỗi giao thức sẽ được map giữa chúng, những giá trị còn lại được thiết lập về cấu hình chuẩn Với phương pháp này, một cuộc gọi SIP từ PSTN gateway không thể phân biệt được so với cuộc gọi SIP từ native device, và nó được điều khiển bởi chính giao thức Tuy nhiên, không phải mọi thông số đơn trong bản tin báo hiệu PSTN có một bản sao trong SIP, vài thông tin sẽ bị mất nếu cuộc gọi gửi lại tới một điểm cuối PSTN
Encapsulation là một phương pháp khác chỉ hữu dụng cho SIP/PSTN gateway Để sử dụng phương pháp này, đầu tiên phải thực hiện chuyển đổi PSTN-to-SIP để xây dựng bản tin SIP thích hợp, sau đó bản tin của giao thức PSTN được đóng gói cùng với bản tin SIP như là một phần thân của bản tin Nếu bản tin SIP được nhận bởi một SIP/PSTN gateway khác, bản tin báo hiệu PSTN kết quả được xây dựng từ cả bản tin SIP và bản tin PSTN được đóng gói nhận bởi gateway khác
đó Phương pháp này đề xuất khả năng trong suốt (thông tin PSTN không bị mất trong cuộc gọi qua mạng SIP ) Tuy nhiên, phương pháp này chỉ hoạt động trong một mạng mà ở đó chỉ có một sự biến đổi của giao thức PSTN Không giống các giao thức Internet, các giao thức PSTN biến đổi theo khu vực và không tương thích với một loại chuyển mạch PSTN đặc biệt - loại chuyển đổi một định dạng bản tin
Trang 32sang loại định dạng khác Bởi thực tế có rất nhiều giao thức biến thể được sử dụng trên thế giới
Một nhược điểm khác của phương pháp encapsulation là phần thân bản tin PSTN bắt buộc phải được mã hóa nếu chúng được truyền qua mạng Internet công cộng, hay được sử dụng trong một mạng có những thiết bị thuộc họ SIP Sở dĩ có yêu cầu này vì thông tin cá nhân có thể được mang theo trong bản tin PSTN do những giao thức PSTN đảm bảo có độ tin cậy khác biệt hơn nhiều so với các mô thức mạng khác như SIP Để đề phòng bị lộ những thông tin này, những message body phải được mã hóa bởi gateway đầu và được giải mã hóa bởi gateway cuối, điều này làm gia tăng yêu cầu xử lý và gọi trễ thiết lập
2.3 Các thành phần trong mạng Voip sử dụng giao thức báo hiệu SIP
2.3.1 SIP User Agent
Các thiết bị đầu cuối SIP được gọi là các User Agent (UA) ví dụ như IP phone, cell phone, PDA, Cisco Router các máy tính đang chạy các chương trình ứng dụng có hỗ trợ giao thức SIP Bên cạnh đó một trong những chức năng quan trọng nhất của giao thức SIP là chức năng thiết lập phiên giữa các UA Mỗi một UA
có những lúc hoạt động như một Client nhưng cũng có lúc nó hoạt động như một Server do đó yêu cầu mỗi UA phải có cả ứng dụng Client và ứng dụng Server trong
nó UAC là một phần của User Agent mà gửi bản tin yêu cầu và nhận lại các bản tin phúc đáp còn UAS là một phần của User Agent mà nhận các yêu cầu và gửi các phúc đáp cho UAC
Trang 33Hình 2.2 Sip User Agent
2.3.2 Back-to-Back User Agent - B2BUA
Một back-to-back user agent (B2BUA) là một loại thiết bị SIP nhận các bản tin yêu cầu SIP đầu vào, sau đó định dạng lại các bản tin đó và gửi ra ngoài như một bản tin yêu cầu mới Các bản tin trả lời cũng được định dạng lại và gửi trả về theo hướng ngược lại Ví dụ một thiết bị B2BUA có thể được sử dụng để thực thi dịch
vụ anomymizer, trong đó hai SIP UA có thể giao tiếp mà không cần phải tìm hiểu URI của đối tác, địa chỉ IP, hay bất cứ thông tin gì Để làm được điều này, một anomymizer B2BUA sẽ định dạng mới lại một bản tin request với toàn bộ trường From, Via, Contact, Call –ID và thông tin về SDP media, đồng thời loại bỏ tất cả các trường SIP header có chứa thông tin về bên gọi
Bản tin trả lời cũng sẽ được thay đổi trường Contact và thông tin SDP media
từ bên bị gọi SDP sửa đổi sẽ trỏ tới B2BUA, gửi các gói RTP media từ bên bị gọi tới bên gọi và ngược lại Bằng cách này, cả hai điểm đầu cuối đều học được bất cứ thông tin nhận dạng nào về bên còn lại trong suốt quá trình thiết lập phiên
Trang 34Đôi lúc B2BUA được sử dụng để thực thi những dịch vụ SIP khác như Prepaid Controller Tuy nhiên, chúng phá vỡ đặc tính end-to-end của giao thức Internet như SIP Cũng vậy, một B2BUA là một call-stateful single point of failure trong mạng, có nghĩa là sử dụng chúng sẽ làm giảm độ tin cậy của phiên SIP qua Internet từ việc tăng độ trễ tới khả năng mất gói tin, do đó làm giảm chất lượng của phiên media Sự phân bổ theo vùng địa lý của các B2BUA sẽ làm giảm hiệu ứng này, nhưng vấn đề là lựa chọn B2BUA tốt nhất cho mỗi phiên cụ thể là rất khó mỗi khi địa chỉ IP nguồn và đích của media không được biết tới khi phiên thực sự được thiết lập (với 200OK)
Mẫu B2BUA thông dụng nhất trong mạng SIP là các gateway lớp ứng dụng (ALG) Một số firewall có chức năng ALG, cho phép firewall có khả năng quản lý SIP và media traffic trong khi vẫn bảo đảm mức bảo mật cao
2.3.3 SIP Gateways
SIP gateway là một ứng dụng giao tiếp giữa mạng báo hiệu SIP và một mạng
sử dụng giao thức báo hiệu khác Trong ngôn ngữ của giao thức SIP, một gateway chỉ là một loại User Agent đặc biệt Nếu một gateway giới hạn số lượng kênh báo hiệu thì có thể nó cũng bị giới hạn kênh media
Ví dụ một gateway SIP/H323 sẽ kết thúc kênh báo hiệu SIP và chuyển sang báo hiệu H323, tuy nhiên các thiết bị đầu cuối SIP và H323 có thể trao đổi thông tin RTP media trực tiếp với nhau mà không phải đi qua gateway
Một gateway SIP/PSTN giới hạn cả kênh báo hiệu và kênh media SIP có thể được chuyển đổi hoặc bắt tay với những giao thức PSTN thông dụng như Intergrated Services Digital Network (ISDN), ISDN User Part (ISUP), và các giao thức CAS khác Một PSTN gateway cũng chuyển đổi luồng RTP media trong mạng
IP sang đường dây hay đường trung kế điện thoại chuẩn Sự chuyển đổi kênh báo hiệu và kênh media cho phép gọi tới và gọi từ mạng PSTN sử dụng báo hiệu SIP
Trang 35Hình 2.3 sau đây mô tả mạng SIP kết nối qua gateway với PSTN và một mạng H323 (Hiện nay đang có dự án xây dựng chức năng kết nối SIP/H323)
Hình 2.3 Mạng SIP với các gateway chuyển đổi giao thức báo hiệu
Trong hình trên, mạng SIP, mạng PSTN và mạng H323 được biểu diễn như những đám mây mạng Kết nối tới đám mây SIP là các SIP IP telephone, SIP-enabled PCs, và các Coporate SIP gateway cùng với nhiều điện thoại Những đám mây được kết nối với nhau bằng các gateway Gắn với đám mây mạng H323 là các thiết bị đầu cuối H323 và các PC hỗ trợ H323 Đám mây PSTN kết nối tới những điện thoại analog truyền thống Black Telephone và những điện thoại ISDN số, và những Coporate PBX Các PBX kết nối tới PSTN sử dụng chung những đường trung kế và cung cấp giao diện đường dây cho cả điện thoại tương tự và số
Gateway có lúc tách rời với một media gateway (MG) và một media gateway controller (MGC) Một MGC cũng còn được gọi là một call agent vì nó quản lý các giao thức điều khiển cuộc gọi, trong khi MG quản lý kết nối media Sự phân tách này là trong suốt đối với SIP, và những giao thức sử dụng để phân tách một gateway không được mô tả trong phần này
Một sự khác biệt nữa giữa một user agent với một gateway là số lượng các user được hỗ trợ Trong khi một user agent đặc trưng hỗ trợ một user đơn lẻ thì một
Trang 36gateway có thể hỗ trợ hàng trăm thậm chí hàng nghìn user Một PSTN gateway có thể hỗ trợ một lượng lớn khách hàng là những công ty, hay toàn bộ cả một vùng địa
lý Và kết quả là, một gateway không đăng ký tất cả user nó hỗ trợ giống cách mà một user agent làm Thay vì thế, một giao thức không phải SIP có thể được sử dụng
để thông báo cho các proxy về những gateway và cộng sự trong việc định tuyến Một giao thức được đề xuất cho việc này là giao thức Telephony Routing over IP (TRIP), cho phép xây dựng một bảng định tuyến liên vùng của những gateway Một giao thức khác có tên gọi Telephony Gateway Registration Protocol (TGREP) cũng
đã được phát triển cho phép một gateway đăng ký với một proxy server trong cùng một domain
2.3.4 SIP Proxy Server
Proxy Server giữ một vai trò quan trọng trong mạng SIP, nó có thực hiện chức năng định tuyến cuộc gọi, chức năng nhận thực, chức năng phân quyền, chức năng ánh xạ từ địa chỉ URI sang địa chỉ IP và chức năng phát hiện lặp bản tin báo hiệu trong mạng Proxy Server có thể forward các bản tin báo hiệu nếu nó biết được địa chỉ của đối tượng được gọi, nếu không nó có thể truy vấn các Server khác để tìm kiếm những thông tin cần thiết cho việc forward bản tin tới đúng đối tượng được gọi Sau khi cuộc gọi được thiết lập, Proxy Server có thể quyết định hoặc vẫn tồn tại trên tuyến báo hiệu giữa hai thiết bị đầu cuối để có thể quan sát sự thay đổi và kết thúc cuộc gọi hoặc có thể rút ra khỏi tuyến báo hiệu để đảm bảo sự trong suốt về mặt báo hiệu, cho phép các UA liên lạc trực tiếp với nhau.
Trang 37Hình 2.4 Chức năng của Proxy Server
Một Proxy server khác so với một UA hoặc một Gateway ở một số điểm quan trọng sau:
• Proxy Server không tạo ra các bản tin yêu cầu nó chỉ trả lời yêu cầu từ các
UA
• Proxy Server không có khả năng media
• Proxy Server không can thiệp vào nội dung của các bản tin mà nó chỉ được phép định dạng và sửa đổi lại một số thông tin trong các Header
Có 2 loại SIP Proxy servers cơ bản là stateless và stateful:
Stateless Servers
Stateless server đơn giản được xem như là các thiết bị chuyển tiếp thông tin Chúng chuyển tiếp thông tin một cách độc lập với nhau Mặc dù các thông tin được sắp xếp theo kiểu giao dịch nhưng stateless proxy không quan tâm tới vấn đề này, chúng không lưu giữ lại thông tin về các bản tin và các cuộc đàm thoại trước đó Do vậy Stateless Server thường đơn giản hơn nhưng nhanh hơn stateful Proxy servers Chúng có thể được sử dụng như các bộ định tuyến Một trong những hạn chế của
Trang 38stateless proxy là chúng không có khả năng truyền lại các thông tin và thực hiện công việc định tuyến cao cấp
Stateful servers
Chúng phức tạp hơn Trong lúc nhận yêu cầu, stateful proxy tạo ra một trạng thái và giữ nó cho đến khi sự giao dịch là kết thúc Vì stateful proxy phải đảm bảo trạng thái này trong suốt quá trình giao dịch, nên sự hoạt động của chúng là giới hạn
Khả năng kết hợp các thông tin SIP thành các phiên giao dịch tạo ra cho stateful proxy một vài đặc điểm thú vị Stateful proxy có thể thực hiện chia nhánh, nghĩa là trong khi nhận một tin thì 2 hoặc nhiều hơn các tin khác sẽ được gửi đi
Stateful proxy có thể thực hiện việc truyền lại bởi vì chúng biết được trạng thái của các phiên giao dịch trước đó nếu do có sự lưu trữ thông tin Stateful proxy
có thể thực hiện các phương pháp phức tạp hơn để tìm ra các user
Hầu hết các SIP proxy ngày nay là stateful vì cấu hình của chúng thường là rất phức tạp Chúng thường thực hiện việc tính toán, chia nhánh, và tất cả những đặc trưng đó đòi hỏi phải là một stateful proxy chứ Stateless proxy không đáp ứng được
Để hiểu hơn về Proxy server chúng ta hãy xem xét ví dụ sau:
Một cấu hình đặc trưng là mỗi một thực thể quản lý trung tâm (ví dụ như một công ty) bản thân chúng đều có proxy server SIP và được sử dụng bởi tất cả các tác nhân user trong thực thể đó Ví dụ có 2 công ty A và B và mỗi công ty đều có proxy server
Trang 39Hình 2.5 Quá trình gửi bản tin INVITE
Hình 2.5 chỉ ra một lời mời phiên từ nhân viên Joe của công ty A đưa tới nhân viên Bob của công ty B như thế nào
Joe sử dụng địa chỉ sip:bob@b.com để gọi tới Bob Tác nhân user của Joe không biết làm thế nào để định tuyến lời mời nhưng nó được cấu hình để gửi tất cả lưu lượng tới SIP proxy server proxy a.com Và Proxy server này sẽ tính toán là user có địa chỉ sip:bob@b.com đang ở trong một công ty khác và rồi nó tìm kiếm SIP Proxy server của B sau đó gửi lời mời đến đó Proxy server của B có thể hoặc được cấu hình trước tại Proxy.a.com hoặc proxy tại A sẽ sử dụng DNS SRV để tìm proxy server của B Lời mời tới được proxy.b.com Proxy này biết rằng Bob hiện nay đang ngồi tại cơ quan và có thể tới được thông qua điện thoại trên bàn của anh
ta, mà điện thoại này có địa chỉ IP là 1.2.3.4, vì vậy proxy tại B sẽ gửi lời mời tới
đó
2.3.5 SIP Registrar Server
Chúng ta đã đề cập đến SIP proxy tại proxy.b.com biết vị trí hiện thời của Bob nhưng không đề cập đến làm thế nào để có thể học được vị trí hiện thời của user User agent của Bob (điện thoại SIP) phải đăng ký với một một thiết bị gọi là Registrar Registrar này là một thực thể SIP, chúng nhận những đăng ký từ các users, trích ra những thông tin về vị trí như địa chỉ IP, cổng, hay username … và lưu
Trang 40trữ những thông tin này vào trong 1 vùng cơ sở dữ liệu Mục đích của vùng cơ sở
dữ liệu này là ánh xạ sip:bob@b.com thành những thứ tương tự như sip:bob@1.2.3.4:5060 Vùng cơ sở dữ liệu sau đó được sử dụng bởi proxy server của B Khi Proxy này nhận được một lời mời cho sip:bob@b.com, nó sẽ tìm kiếm vùng cơ sở dữ liệu Nó tìm ra sip:bob@1.2.3.4:5060 và gửi lời mời tới đó Registrar thực chất chỉ là một thực thể logic
Hình 2.6 chỉ ra một sự đăng ký SIP điển hình Một thông tin đăng ký mang theo địa chỉ của bản ghi sip:jan@iptel.org và liên hệ với địa chỉ jan@1.2.3.4:5060
mà ở đó 1.2.3.4 là địa chỉ IP của điện thoại, được gửi tới Registrar Registrar trích thông tin này ra và lưu trữ nó vào trong vùng cơ sở dữ liệu Nếu mọi chuyện đều thuận lợi thì Registrar gửi một đáp ứng là 200 OK tới điện thoại và quá trình đăng
ký được kết thúc
Hình 2.6 Register sever và quá trình đăng kí
Mỗi sự đăng ký đều có một vòng đời giới hạn Sự kết thúc của trường header hoặc kết thúc của các tham số có liên quan đến trường header xác định trong bao lâu thì sự đăng ký có hiệu lực Tác nhân user phải refresh lại sự đăng ký của nó