SIP - Giao thức mô tả phiên
SDP là viết tắt của Session Description Protocol. Nó được sử dụng để mô tả các phiên đa phương tiện ở một định dạng được hiểu bởi những người tham gia qua mạng. Tùy thuộc vào mô tả này, một bên quyết định có tham gia hội nghị hay không hoặc khi nào hoặc cách thức tham gia hội nghị.
Chủ sở hữu của một hội nghị quảng cáo nó qua mạng bằng cách gửi các tin nhắn đa hướng có mô tả về phiên họp, ví dụ như tên của chủ sở hữu, tên của phiên họp, mã hóa, thời gian, v.v. Tùy thuộc vào những thông tin này, người nhận quảng cáo quyết định về việc tham gia phiên họp.
SDP thường được chứa trong phần nội dung của Giao thức Khởi tạo Phiên thường được gọi là SIP.
SDP được định nghĩa trong RFC 2327. Thông báo SDP bao gồm một loạt các dòng, được gọi là các trường, có tên được viết tắt bằng một chữ cái thường duy nhất và theo thứ tự bắt buộc để đơn giản hóa việc phân tích cú pháp.
Mục đích của SDP
Mục đích của SDP là truyền tải thông tin về các luồng phương tiện trong các phiên đa phương tiện để giúp người tham gia tham gia hoặc thu thập thông tin của một phiên cụ thể.
SDP là một mô tả dạng văn bản có cấu trúc ngắn.
Nó truyền đạt tên và mục đích của phiên, phương tiện, giao thức, định dạng codec, thời gian và thông tin truyền tải.
Người tham gia dự kiến sẽ kiểm tra những thông tin này và quyết định có tham gia một phiên hay không và cách thức và thời gian tham gia một phiên nếu họ quyết định làm như vậy.
Định dạng có các mục nhập ở dạng <type> = <value>, trong đó <type> xác định một tham số phiên duy nhất và <value> cung cấp một giá trị cụ thể cho tham số đó.
Hình thức chung của thông báo SDP là -
x = parameter1 parameter2 ... parameterN
Dòng bắt đầu bằng một chữ thường, ví dụ: x. Không bao giờ có bất kỳ khoảng trắng nào giữa chữ cái và dấu =, và có chính xác một khoảng trắng giữa mỗi tham số. Mỗi trường có một số tham số xác định.
Thông số mô tả phiên
Mô tả phiên (* biểu thị tùy chọn)
- v = (phiên bản giao thức)
- o = (chủ sở hữu / người tạo và mã định danh phiên)
- s = (tên phiên)
- i = * (thông tin phiên)
- u = * (URI của mô tả)
- e = * (địa chỉ email)
- p = * (số điện thoại)
- c = * (thông tin kết nối - không bắt buộc nếu có trong tất cả các phương tiện)
- b = * (thông tin băng thông)
- z = * (điều chỉnh múi giờ)
- k = * (khóa mã hóa)
- a = * (không hoặc nhiều dòng thuộc tính phiên)
Phiên bản giao thức
Trường v = chứa số phiên bản SDP. Vì phiên bản hiện tại của SDP là 0, một thông báo SDP hợp lệ sẽ luôn bắt đầu bằng v = 0.
Gốc
Trường o = chứa thông tin về người khởi tạo phiên và các định danh phiên. Trường này được sử dụng để xác định phiên duy nhất.
Trường chứa -
o = <tên người dùng> <session-id> <version> <network-type> <address-type>
Các username tham số chứa thông tin đăng nhập hoặc máy chủ của người khởi tạo.
Các session-id tham số là dấu thời gian Giao thức Thời gian Mạng (NTP) hoặc một số ngẫu nhiên được sử dụng để đảm bảo tính duy nhất.
Các version là một trường số được tăng lên cho mỗi thay đổi đối với phiên, cũng được khuyến nghị làm dấu thời gian NTP.
Các network-typeluôn IN cho Internet. Tham số kiểu địa chỉ là IP4 hoặc IP6 cho địa chỉ IPv4 hoặc IPv6 ở dạng thập phân chấm hoặc tên máy chủ đủ điều kiện.
Tên phiên và thông tin
Trường s = chứa tên cho phiên. Nó có thể chứa bất kỳ số ký tự khác không. Trường i = tùy chọn chứa thông tin về phiên. Nó có thể chứa bất kỳ số ký tự nào.
URI
Trường u = tùy chọn chứa chỉ báo tài nguyên thống nhất (URI) với nhiều thông tin hơn về phiên
Địa chỉ e-mail và số điện thoại
Trường e = tùy chọn chứa địa chỉ e-mail của máy chủ của phiên. Trường p = tùy chọn chứa một số điện thoại.
Dữ liệu kết nối
Trường c = chứa thông tin về kết nối phương tiện.
Trường chứa -
c = <network-type> <address-type> <connection-address>
Các network-type tham số được định nghĩa là IN cho Internet.
Các address-type được định nghĩa là IP4 cho địa chỉ IPv4 và IP6 cho địa chỉ IPv6.
Các connection-address là địa chỉ IP hoặc máy chủ lưu trữ sẽ gửi các gói phương tiện, có thể là multicast hoặc unicast.
Nếu phát đa hướng, trường địa chỉ kết nối chứa:
connection-address = base-multicast-address / ttl / number-of-address
Ở đâu ttl là giá trị thời gian tồn tại và số lượng địa chỉ cho biết có bao nhiêu địa chỉ phát đa hướng liền kề được bao gồm bắt đầu bằng địa chỉ đa hướng cơ sở.
Băng thông
Trường b = tùy chọn chứa thông tin về băng thông cần thiết. Nó có dạng -
b = modifier: băng thông - giá trị
Thời gian, Thời gian lặp lại và Múi giờ
Trường t = chứa thời gian bắt đầu và thời gian dừng của phiên.
t = thời gian bắt đầu dừng lại
Trường r = tùy chọn chứa thông tin về thời gian lặp lại có thể được chỉ định trong NTP hoặc theo ngày ( d ), giờ ( h ) hoặc phút ( m ).
Trường z = tùy chọn chứa thông tin về chênh lệch múi giờ. Trường này được sử dụng nếu phiên đang diễn ra kéo dài sự thay đổi từ tiết kiệm ánh sáng ban ngày sang giờ chuẩn hoặc ngược lại.
Thông báo truyền thông
Trường m = tùy chọn chứa thông tin về loại phiên phương tiện. Trường chứa -
m = định dạng-danh sách vận chuyển cổng phương tiện
Tham số phương tiện là âm thanh, video, văn bản, ứng dụng, tin nhắn, hình ảnh hoặc điều khiển. Tham số cổng chứa số cổng.
Tham số truyền tải chứa giao thức truyền tải hoặc cấu hình RTP được sử dụng.
Danh sách định dạng chứa thêm thông tin về phương tiện. Thông thường, nó chứa các loại tải trọng phương tiện được xác định trong cấu hình video âm thanh RTP.
Example:
m = audio 49430 RTP/AVP 0 6 8 99
Một trong ba codec này có thể được sử dụng cho phiên phương tiện âm thanh. Nếu mục đích là thiết lập ba kênh âm thanh, ba trường phương tiện riêng biệt sẽ được sử dụng.
Thuộc tính
Trường a = tùy chọn chứa các thuộc tính của phiên phương tiện trước đó. Trường này có thể được sử dụng đểextend SDP to provide more information about the media. Nếu người dùng SDP không hiểu đầy đủ, trường thuộc tính có thể bị bỏ qua. Có thể có một hoặc nhiều trường thuộc tính cho mỗi loại tải trọng phương tiện được liệt kê trong trường phương tiện.
Các thuộc tính trong SDP có thể là
- cấp độ phiên, hoặc
- mức độ phương tiện.
Cấp độ phiên có nghĩa là thuộc tính được liệt kê trước dòng phương tiện đầu tiên trong SDP. Nếu đúng như vậy, thuộc tính sẽ áp dụng cho tất cả các dòng phương tiện bên dưới nó.
Mức phương tiện có nghĩa là nó được liệt kê sau một dòng phương tiện. Trong trường hợp này, thuộc tính chỉ áp dụng cho luồng phương tiện cụ thể này.
SDP có thể bao gồm cả thuộc tính cấp phiên và cấp phương tiện. Nếu cùng một thuộc tính xuất hiện như cả hai, thuộc tính cấp phương tiện sẽ ghi đè thuộc tính cấp phiên cho luồng phương tiện cụ thể đó. Lưu ý rằng trường dữ liệu kết nối cũng có thể là cấp phiên hoặc cấp phương tiện.
Ví dụ về SDP
Dưới đây là mô tả phiên ví dụ, được lấy từ RFC 2327 -
v = 0
o = mhandley2890844526 2890842807 IN IP4 126.16.64.4
s = SDP Seminar
i = A Seminar on the session description protocol
u = http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
e = mjh@isi.edu(Mark Handley)
c = IN IP4 224.2.17.12/127
t = 2873397496 2873404696
a = recvonly
m = audio 49170 RTP/AVP 0
m = video 51372 RTP/AVP 31
m = application 32416udp wb
a = orient:portrait