BỘ giáo dục và ĐÀo tạo tậP ĐOÀn bưu chính viễn thông việt nam



tải về 0.57 Mb.
trang5/9
Chuyển đổi dữ liệu26.11.2017
Kích0.57 Mb.
#34636
1   2   3   4   5   6   7   8   9

2.2 Bản tin SIP

2.2.1 Cấu trúc chung


SIP là giao thức dạng TEXT sử dụng bộ ký tự UTF-8. Điều này tạo cho SIP tính linh hoạt cao và dễ sử dụng cùng với các ngôn ngữ lập trình bậc cao như Java, Tol, Perl. Cú pháp của SIP gần giống với giao thức HTTP cho phép đơn giản hóa sự liên kết giữa SIP Server với Web Server.

Một bản tin SIP có thể là một yêu cầu từ Client tới Server hay một trả lời từ Server về phía Client. Cấu trúc này được tóm tắt như sau:

generic-message = start-line

*message-header

[message-body]

2.2.2 Request-Line trong bản tin yêu cầu


Các bản tin SIP được phân biệt với nhau dựa vào dòng khởi đầu. Trong đó, các bản tin yêu cầu có dòng khởi đầu là một Request-Line chứa tên phương thức, một Request-URI và phiên bản của giao thức. Các thành phần này được ngăn cách với nhau bằng một ký tự trống

Request-Line = Method Request-URI SIP-Version


2.2.2.1 Trường Method


Trong SIP định nghĩa 6 phương thức (method) cơ bản sau: REGISTER INVITE, ACK, BYE, CANCEL, OPTIONS.

2.2.2.1.1 REGISTER

Trong hội thoại SIP, mỗi bên tham gia (bên bị gọi và bên gọi) được gắn một địa chỉ SIP hay còn gọi là SIP URI. SIP URI được dùng trong các bản tin SIP để thông báo về nơi gửi, đích hiện thời và nơi nhận cuối cùng của một yêu cầu SIP và chỉ rõ địa chỉ gián tiếp.

2.2.2.1.2 INVITE

Để tạo một cuộc gọi SIP, phía bị gọi định vị tới Server tương ứng và gửi đi một yêu cầu SIP. Lúc này bản tin INVITE được dùng để thông báo rằng một người dùng hoặc một dịch vụ được mời tham gia vào một phiên hội thoại.

2.2.2.1.3 ACK

Sau khi nhận được trả lời 200 OK rằng phía bị gọi sẵn sàng tham gia hội thoại, bên gọi cần xác nhận đã được trả lời bằng cách gửi đi một yêu cầu ACK.

2.2.2.1.4 BYE

UAC sử dụng phương thức BYE để thông báo cho Server rằng nó muốn giải phóng cuộc gọi.

2.2.2.1.5 CANCEL

Yêu cầu CANCEL được dùng để hủy bỏ một yêu cầu trước đó hiện đang được xử lý bởi Server tiếp nhận yêu cầu.

2.2.2.1.6 OPTION

Phương thức OPTION dùng để hỏi về khả năng của SIP Server.

2.2.2.2 Trường Request-URI

Trường Request-URI chứa SIP URI của người dùng hay dịch vụ đã tạo ra bản tin yêu cầu. Khác với trường To, Request-URI có thể được ghi lại bởi Proxy. Khi sử dụng như một Request-URI, SIP URI phải chứa các tham số transport-param, maddr-param, ttl-param và các thành phần tiêu đề.



2.2.2.3 Trường SIP-Version

Tương tự như trong bản tin HTTP, cả bản tin Request và Response đều chứa trường này để chỉ ra phiên bản SIP đang được sử dụng. Hiện nay, có hai phiên bản SIP khác nhau là SIP và SIP v2.0.


2.2.3 Status-line trong bản tin trả lời


Các bản tin SIP được phân biệt với nhau dựa vào dòng khởi đầu. Nếu trong các bản tin yêu cầu, dòng khởi đầu là một Request-Line thì trong các bản tin trả lời dòng khởi đầu là một dòng trạng thái (Status-Line). Mỗi thành phần cũng được phân biệt với nhau bằng một ký tự trống.

Status-Line = SIP-Version Status-Code Reason-Phrase

Mã trạng thái là một số nguyên 3 digit biểu thị kết quả đáp ứng một yêu cầu. Trong 3 digit của mã trạng thái, digit đầu tiên được dùng để định nghĩa loại trả lời SIP v2.0 liệt kê 6 giá trị của digit đầu tiên như sau:


  • 1xx: Provisional : yêu cầu được nhận và tiếp tục được xử lý.

  • 2xx: Success : hành động được chấp nhận.

  • 3xx: Redirect : cần thêm các hành động khác để thực hiện yêu cầu.

  • 4xx: Client Error : yêu cầu bị lỗi cú pháp hoặc gửi sai server.

  • 5xx: Server Error : yêu cầu hợp lệ nhưng server không thể đáp ứng.

  • 6xx: Global Failure: yêu cầu không được đáp ứng tại bất kỳ server nào.

2.2.3.1 Provisional 1xx


Trả lời tạm thời (Provisional Response) cho biết Server nhận yêu cầu đang xử lý yêu cầu đó và vẫn chưa đưa ra trả lời cuối cùng. Sau đây là một số mã trạng thái phổ biến.

(1) 100 Trying

(2) 180 Ringing

(3) 181 Call Is Being Forwarded

(4) 182 Queued

2.2.3.2 Successful 2xx


*Trả lời 200 OK

Cho biết yêu cầu đã được thực hiện thành công. Nội dung thông tin kèm trong bản tin trả lời tùy thuộc vào phương thức của yêu cầu.


2.2.3.3 Redirection 3xx


Các trả lời 3xx đưa ra thông tin về vị trí mới của User hoặc về các dịch vụ bổ sung có thể sử dụng để phục vụ cho các cuộc gọi.

2.2.3.4 Request Failure 4xx


Trả lời 4xx là các thông báo lỗi từ một Server cụ thể. Khi nhận được trả lời này Client bắt buộc phải thay đổi phần nào đó trong bản tin yêu cầu trước khi gửi lại đến Server đó.

2.2.3.5 Server Failure 5xx


Trả lời 5xx được gửi đi khi chính Server bị lỗi

2.2.3.6 Global Farlures 6xx


Đáp ứng 6xx chỉ ra rằng yêu cầu không được đáp ứng tại mọi Server.

2.2.4 Các trường tiêu đề

2.2.4.1 Định dạng chung


Một trường tiêu đề SIP có cấu trúc chung như sau:

header = header-name: header-value *(, header-value)

Định dạng các giá trị của từng trường tiêu đề phụ thuộc vào bản thân trường tiêu đề đó. Tuy nhiên một định dạng chung nhất có thể được sử dụng là:

field-name: field-value *(;parameter-name=parameter-value)


2.2.4.2 Các trường tiêu đề chung


Trường tiêu đề chung có thể xuất hiện ở cả bản tin yêu cầu và bản tin trả lời.

2.2.4.3 Các trường tiêu đề thực thể


Các trường tiêu đề thực thể định nghĩa thông tin về thân bản tin hoặc nếu thân bản tin không có thì nó thể hiện các tài nguyên để định danh theo yêu cầu.

2.2.4.4 Các trường tiêu đề yêu cầu


Các trường tiêu đề yêu cầu cho phép Client chuyển qua các thông tin bổ sung theo yêu cầu và các thông tin về Client đến Server.

2.2.4.5 Các trường tiêu đề trả lời


Trường tiêu đề trả lời cho phép Server bỏ qua các thông tin bổ sung về trả lời khi không thể đặt trong Status-Line. Các trường tiêu đề này đưa ra thông tin về Server và về các truy nhập đến tài nguyên được định danh bởi Request-URI.

2.3 Hoạt động của SIP


Một cuộc gọi hay một phiên hội thoại gồm tất cả các thành viên trong phiên và được nhận biết bởi Call-ID. Sự kết hợp giữa Call-ID, ToFrom tạo thành Call leg và nó chỉ ra một hội thoại duy nhất giữa hai Client.

2.3.1 Ví dụ về hoạt động của SIP


SIP hoạt động theo cơ chế trao đổi các yêu cầu và các trả lời tương ứng. Dưới đây là một ví dụ về báo hiệu SIP trong quá trình trao đổi thông tin giữa hai người sử dụng A và B.



Hình 2.2: Hoạt động của SIP

2.3.1.1 Định vị người dùng


Phía bị gọi có thể di chuyển giữa các hệ thống đầu cuối khác nhau tại các thời điểm khác nhau. Những vị trí đó được đăng ký với SIP server. Chức năng định vị người dùng được đảm nhiệm bởi Location Server.

2.3.1.2 Thay đổi một phiên hiện tại


Trong trường hợp cần thay đổi các thông số của một phiên hội thoại hiện tại, ví dụ như thêm một thành viên thì cần phải phát lại bản tin INVITE.

2.3.2 Hoạt động của SIP Client và SIP Server


SIP có thể sử dụng cả giao thức UDP và TCP như những giao thức truyền tải ở tầng Transport mà không phải thay đổi khuôn dạng bản tin SIP.

2.3.2.1 Xử lý các yêu cầu


Server sẽ loại bỏ những yêu cầu giống nhau và gửi lại các trả lời thích hợp. Riêng yêu cầu CANCEL không đòi hỏi phải có trả lời tương ứng.

2.3.2.2 Xử lý các trả lời


Nếu một Server như Stateful Proxy, UAS, Redirect Server hay Registrar Server không thể đưa ra trả lời cuối cùng cho một yêu cầu trong khoảng thời gian quy định (200ms), nó sẽ gửi đi một hoặc nhiều trả lời tạm thời 1xx

2.3.3 Hoạt động của UA (User-Agent)

2.3.3.1 Phía gọi phát yêu cầu INVITE


Khi một UAC muốn khởi tạo một cuộc gọi, nó sẽ đưa ra một yêu cầu INVITE. Trường To trong yêu cầu chứa địa chỉ người được gọi. Trường Request-URI chứa cùng địa chỉ đó. Trường From chứa địa chỉ của phía gọi.

2.3.3.2 Phía bị gọi gửi trả lời


Khi phía bị gọi nhận được yêu cầu INVITE, nó có thể chấp nhận, gửi lại hay huỷ bỏ cuộc gọi.

2.3.4 Hoạt động của SIP Proxy và Redirect Server

2.3.4.1 Redirect Server


Redirect Server không thể phát ra các yêu cầu SIP cho chính nó. Sau khi nhận được một yêu cầu bất kỳ (trừ yêu cầu CANCEL), nó thu thập danh sách các vị trí thay đổi và trả lại một đáp ứng cuối cùng (3xx) hoặc trừ chối yêu cầu.

2.3.4.2 UAS


UAS hoạt động giống như Redirect Server, chúng có thể chấp nhận các yêu cầu và gửi lại một đáp ứng loại 2xx.

2.3.4.3 Proxy Server


SIP Proxy là các thành phần có nhiệm vụ định tuyến các yêu cầu SIP đến UAS và định tuyến các trả lời đến UAC. Một yêu cầu có thể phải qua nhiều Proxy trước khi đến được UAS. Mỗi Proxy sẽ định tuyến và thay đổi một phần yêu cầu trước khi chuyển tiếp đến các Proxy khác.

2.3.4.4 Forking Proxy


Server trả lại một yêu cầu ngay lập tức bằng đáp ứng 100.



tải về 0.57 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương