7. Kết cấu của đề tài:
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ỳ
và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=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:
v=0
o=HaiLy 2890844526 2890844526 IN IP4 sip.lhu.edu.vn s=- c=IN IP4 100.101.102.103 t=0 0 m=audio 49170 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000
Phía nhận cuộc gọi MinhDung trả lời cuộc gọi và chọn chuẩn audio codec thứ hai trong thông điệp INVITE của MinhDung.
v=0
o= HaiLy 2890844526 2890844526 IN IP4 test.minhdung.com s=-
c=IN IP4 200.201.202.203 t=0 0
m=audio 60000 RTP/AVP 8 a=rtpmap:8 PCMA/8000
Chuẩn audio codecs PCMA sau đó sẽ được sử dụng trong quá trình cuộc gọi giữa MinhDung và HaiLy.