Các loại bản tin SIP

Một phần của tài liệu TỔNG QUAN VỀ CÁC GIAO THỨC BÁO HIỆU VÀ ĐIỀU KHIỂN TRONG MẠNG NGN (Trang 60 - 63)

SIP là giao thức dạng Text sử dụng bộ ký tự ISO 10646 trong mã hoá UTF-8 (RFC 2279). Điều này tạo cho SIP tính linh hoạt, mở rộng và dễ thực thi các ngôn ngữ lập trình cấp cao như Java, Tol, Perl. Cú pháp của SIP gần giống với giao thức HTTP, nó cho phép dùng lại mã và đơn giản hóa sự liên kết của các máy phục vụ SIP với các máy phục vụ Web. Tuy nhiên, SIP không phải là một dạng mở rộng của HTTP. Khác với HTTP, SIP có thể sử dụng giao thức UDP.

Bản tin SIP được chia làm hai loại: Bản tin yêu cầu từ Client tới Server và bản tin đáp ứng từ Server trả lời cho Client:

SIP-message = Request/ Response 4.1.4.1. Bản tin yêu cầu (Request)

Bản tin Request có khuôn dạng gồm hai phần cơ bản: Request-line và phần mào đầu-header (với 3 loại header):

Request=Request-line*(General-header/Request-header/ Entity-header) CLRF

[message-body]

Trong đó thành phần Request-line chứa tên phương thức, một Request – URI và số phiên bản của giao thức. Các thành phần được ngăn cách với nhau bằng một khoảng trắng (SP). Cũng như các dòng khác, dòng khởi đầu được kết thúc bằng một ký tự xuống dòng (CRLF).

Request-line = Method SP Request-URI SP SIP-Version Trong đó:

Method (Phương thức SIP) : S IP định nghĩa 6 phương thức cơ bản như trong

bảng 4.2.

Request- URI : Trường Request-URI có khuôn dạng theo SIP URL. Nó thông

báo cho User hoặc dịch vụ về địa chỉ hiện tại. Khác với trường “To”, Request- URI có thể được ghi lại bởi Proxy (trường hợp máy phục vụ ủy quyền).

 SIP Version : Phiên bản SIP là các bản SIP được đưa ra các lần khác nhau. Cả hai bản tin Request và Response đều chứa phiên bản của SIP được sử dụng SIP Version. Hiện tại phiên bản SIP là 2.0.

Bảng 4.2. Các phương thức SIP

INVITE Mời thành viên tham gia hội thoại.

ACK Yêu cầu xác nhận đã nhận được đáp ứng chập nhận

(OK) cho yêu cầu INVITE.

OPTIONS Hỏi khả năng của máy phục vụ SIP.

BYE Yêu cầu giải phóng cuộc gọi

CANCEL

Hủy bỏ yêu cầu sắp được thực hiện với cùng giá trị trong các trường Call_ID, From, To, Cseq của yêu cầu đó bằng cách ngừng quá trình tìm kiếm báo hiệu.

REGISTER máy phục vụ.Đăng ký danh sách địa chỉ liên hệ của người dùng với

4.1.4.2. Bản tin phúc đáp (Response)

Sau khi nhận và thông dịch một bản tin yêu cầu, phía nhận thực hiện trả lời bằng một bản tin phúc đáp.

Khuôn dạng bản tin cũng gồm hai phần cơ bản: Status-line và phần mào đầu header (với 3 loại header):

Response = Status-line *(General-header/ Response-header/ Entity-header) CLRF

[message-body]

Trong đó thành phần Status-line có cấu trúc sau: (SP là ký tự phân cách): Status-line = SIP-Version SP status-code SP Reason-phrase

SIP Version : Cũng giống như trong bản tin Request.

Status-code và Reason-phrase : Status-code là một mã kết quả nguyên gồm 3

digit, chỉ ra kết quả của việc cố gắng thực hiện và mức độ thỏa mãn yêu cầu. Reason-Phrase thì dùng để đưa ra một lời giải thích ngắn cho Status-code. Status-code mục đích là để sử dụng cho Server còn Reason-phrase là dùng cho User. Client không thể yêu cầu hiển thị hay kiểm tra Reason-phrase. (adsbygoogle = window.adsbygoogle || []).push({});

Status-code gồm 3 digit. Digit đầu tiên định nghĩa loại đáp ứng, hai digit sau không có vai trò phân loại. SIP 2.0 định nghĩa 6 giá trị của digit đầu tiên như sau:

Bảng 4.3. Các mã trạng thái SIP

Đồ án tốt nghiệp Đại học Chương 4. Các giao thức ngang hàng

2xx Thành công

3xx Chuyển tiếp yêu cầu

4xx Lỗi phía người dùng

5xx Lỗi phía Server

6xx Lỗi chung: đường dây đang bận, từ chối,….

Mã đáp ứng SIP có thể mở rộng được. Các ứng dụng SIP không yêu cầu phải hiểu rõ về ý nghĩa của tất cả mã đáp ứng được đăng ký mà chỉ cần hiểu các loại mã đáp ứng, ý nghĩa của digit đầu tiên.

4.1.4.3. Cấu trúc bản tin SIP

Cả hai loại bản tin trên đều sử dụng chung một định dạng cơ bản được quy định trong RFC 2822 với cấu trúc gồm một dòng khởi đầu (start – line), một số trường tiêu đề và một phần thân bản tin tuỳ chọn (hình 4.2). Cấu trúc này được tóm tắt như sau:

generic-message = start-line *message-header CRLF

[ message-body ]

Với

start-line = Request-Line / Status-Line

Hình 4.2. Cấu trúc bản tin SIP

Trong đó, dòng bắt đầu, các dòng tiêu đề hay các dòng trắng phải được kết thúc bằng một ký tự xuống dòng (CRLF) và phải lưu ý rằng dòng trắng vẫn phải có để ngăn cách phần tiêu đề và phần thân của bản tin ngay cả khi phần thân bản tin là rỗng.

Start line: Mỗi bản tin SIP được bắt đầu với một Start Line, Start Line vận

chuyển loại bản tin (phương thức trong các Request, và mã đáp ứng trong các bản tin đáp ứng) và phiên bản của giao thức. Start line có thể là Request-Line (trong các request) hoặc là Status-Line (trong các response).

Headers: Các trường Hearder của SIP được sử dụng để vận chuyển các thuộc

tính của bản tin và để thay đổi ý nghĩa của bản tin. Chúng tương tự như các trường tiêu để của bản tin HTTP theo cả cú pháp và ngữ nghĩa (thực tế có một

vài tiêu đề được mượn từ HTTP) cho nên chúng luôn có khuôn dạng như sau: <Name>:< Value>.

Thứ tự các trường tiêu đề khác tên là không quan trọng (nhưng các tiêu đề mà được sử dụng để định tuyến bởi các proxy sẽ được đặt trước). Thứ tự các tiêu đề có cùng tên là quan trọng.

Tiêu đề bản tin bao gồm bốn loại: – Tiêu đề chung.

– Tiêu đề Request. – Tiêu đề Response. – Tiêu đề thực thể.

Body: Thân bản tin được sử dụng để mô tả phiên được khởi tạo (ví dụ: trong

một phiên multimedia phần này sẽ mang loại mã hóa audio và video, tốc độ lấy mẫu …), hoặc nó có thể được sử dụng để mang dữ liệu dưới dạng text hoặc nhị phân (không được dịch) mà liên quan đến phiên đó. Phần thân bản tin có thể xuất hiện trong cả bản tin yêu cầu và đáp ứng. Các loại Body bao gồm:

– SDP: Session Description Protcol.

– MIME: Multipurpose Internet Mail Extentions. – Các phần khác: được định nghĩa trong IETF.

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu TỔNG QUAN VỀ CÁC GIAO THỨC BÁO HIỆU VÀ ĐIỀU KHIỂN TRONG MẠNG NGN (Trang 60 - 63)