Các loại bản tin SIP

  • Monday 17/08/2020

Tóm tắt bản tin trong một session SIP.

Bản tin yêu cầu (Request)

Được gửi từ client tới server. RFC 3261 định nghĩa 6 kiểu bản tin request cho phép UA và proxy có thể xác định người dùng, khởi tạo, sửa đổi, hủy một phiên, ngoài ra trong các phiên bản RFC khác còn định nghĩa thêm một số bản tin mở rộng của SIP.

Bản tin INVITE

Được UAC (user agent client) sử dụng để yêu cầu thiết lập một cuộc gọi với UAS (user agent server). Khi một UA (user agent) muốn thiết lập một cuộc gọi với một UA khác, nó sẽ gửi bản tin INVITE tới địa chỉ của UA kia, trong bản tin INVITE này sẽ chứa các thông tin như địa chỉ SIP (SIP URI) của phía gọi, hoặc các thông tin mô tả phiên nằm trong phần message body các thông tin này thường được mô tả bằng giao thức SDP(Session Description Protocol), các thông tin mô tả phiên thường là các thông tin như các chuẩn mã hóa âm thanh, hình ảnh (codecs), các thông tin cần thiết để mở các kênh logic.

Bản tin Register

        Bản tin Register được UA sử dụng để thực hiện thủ tục đăng ký với SIP server, trong bản tin Register này sẽ chứa các thông tin về UA như: địa chỉ hiện tại, số port mà UA đang lắng nghe…. Nếu nhận được bản tin Response 200 OK từ phía SIP server nghĩa là quá trình đăng ký đã thành công.

Bản tin BYE

        Bản tin BYE được gửi từ phía user agent để kết thúc một cuộc gọiKhi một user agent muốn kết thúc cuộc gọi, nó sẽ gửi bản tin BYE tới phía còn lại để thông báo rằng nó muốn kết thúc cuộc gọi. Một bản tin Respone 200 OK được gửi trả lại để thông báo rằng yêu cầu kết thúc được chấp nhận và cuộc gọi được kết thúc.

Bản tin ACK

Bản tin ACK được gửi từ phía user agent để cho biết rằng nó đã nhận được bản tin response cuối cùng cho bản tin INVITE trước đó. Các bản tin Response cuối cùng là các bản tin thuộc lớp 2xx, 3xx, 4xx, 5xx, 6xx.

Bản tin CANCEL

User agent1 muốn thực hiện cuộc gọi tới user agent2 ,ban đầu nó sẽ gửi bản tin INVITE tới user agent2. Nếu user agent1 không nhận được bản tin response cuối cùng từ phía user agent2 trong khoảng thời gian time out, nó sẽ gửi bản tin CANCEL tới user agent2 để hủy bỏ cuộc gọi. Bản tin BYE sẽ không được sử dụng trong trường hợp này vì cuộc gọi vẫn chưa được thiết lập. Một cuộc gọi được thiết lập khi các bản tin INVITE, 200 OK, ACK được trao đổi.

Bản tin OPTIONS

Được sử dụng để truy vấn về khả năng của 1 user agent. Khả năng ở đây có thể là khả năng mã hóa và giải mã âm thanh, hình ảnh, các message header được user agent hỗ trợ.

 Bản tin REFER

        Được gửi từ user agent để yêu cầu một user agent khác truy cập vào một địa chỉ URI hoặc URL trong trường header field Refer-To nằm trong bản tin REFER. Địa chỉ URI hoặc URL có thể là một địa chỉ SIP URI hoặc một địa chỉ của một trang web. Nếu là một địa chỉ SIP URI, user agent dường như đang thực hiện một dịch vụ chuyển cuộc gọi (transfer call), hoặc là đang tạo ra một cuộc gọi với nhiều bên tham gia (conferencing). Khi nhận được bản tin REFER nếu UA đồng ý truy cập vào địa chỉ URI hoặc URL được cung cấp nó sẽ gửi trả lại bản tin response 202 Accepted. Ví dụ UA nhận được bản tin REFER với địa chỉ SIP URI trong trường Refer-To, UA sau đó sẽ gửi một bản tin Invite tới địa chỉ SIP URI vừa được cung cấp trong bản tin Refer-To

Bản tin SUBSCRIBE

        Được gửi từ một UA để yêu cầu nhận một cảnh báo về sựu thay đổi của một sự kiện(event) nào đó, ví dụ như sự kiện chuyển cuộc gọi, hoặc sự kiện thiết lập hội nghị (cuộc gọi có nhiều bên tham gia). Bản tin SUBSCRIBE được gửi tới server với trường Event chứa giá trị là tên của sự kiện mà client muốn được nhận thông báo, và trường Expires là khoảng thời gian timeout của bản tin SUBSCRIBE. Nếu server hỗ trợ sự kiện mà client mô tả trong trường Event, server gửi trả lời bằng bản tin response 200 OK, lúc này cứ mỗi lần có một sự thay đổi nào đó của sự kiện mà client mong muốn nhận, server sẽ gửi bản tin NOTIFY thông báo tới client, bản tin NOTIFY sẽ được gửi cho tới khi khoảng thời gian timeout của bản tin SUBSCRIBE hết hạn, lúc này nếu muốn tiếp tục nhận các thông báo từ server, client phải gửi lại bản tin SUBSCRIBE

Bản tin NOTIFY

        Được sử dụng bởi UA để gửi một thông báo về sự thay đổi của một sự kiện tới UA phát ra bản tin SUBSCRIBE. Nội dung của phần thông báo chứa trong phần message body của bản tin NOTIFY và thường được định dạng theo kiểu XML.

 Bản tin MESSAGE

        Được sử dụng để mang nội dung của các tin nhắn nhanh (Instant message) được gửi giữa các UA. Nội dung của IM được chứa trong phần message body của bản tin MESSAGE.

Các bản tin trả lời (responses)

Một bản tin response là một bản tin được gửi bời UAS hoặc SIP server để trả lời cho một bản tin request trước đó. SIP định nghĩa sáu lớp của các bản tin responses, các lớp từ 1xx tới 5xx hầu như là tương tự với các bản tin response của giao thức HTTP, riêng lớp 6xx được định nghĩa riêng cho SIP.

Các lớp bản tin responses
  • 1xx responses: Các bản tin response ở lớp 1xx là các bản tin tạm thời hoặc là các bản tin thông báo các thông tin phản hồi. Khi một UA nhận được một bản tin request nó sẽ gửi ngay lập tức lại một bản tin ở lớp 1xx để thông báo rằng nó đã nhận được bản tin request và đang xử lý bản tin đó.
  • 2xx responses: Các bản tin lớp 2xx là các bản tin response cuối cùng với mục đích là thông báo cho phía gửi request rằng bản tin request thành công, hoặc yêu cầu được chấp nhận.
  • 3xx responses: Các bản tin lớp 3xx là các bản tin chuyển hướng, nó được gửi bởi SIP server có chức năng như là Redirect server. Ví dụ, nếu một Proxy server nhận được một bản tin Invite và nó không thể định vị được địa chỉ của phía nhận, khi đó nó sẽ gửi trả lại phía gọi một bản tin lớp 3xx để thông báo cho phía gọi sử dụng một địa chỉ khác.
  • 4xx responses: Các bản tin lớp 4xx là các bản tin thông báo thất bại, có nghĩa rằng phía nhận không thể xử lý được bản tin request.
  • 5xx responses: Các bản tin lớp 5xx là các bản tin thông báo rằng yêu cầu không thể được xử lý do lỗi phía server.
  • 6xx responses: Các bản tin lớp 6xx là các bản tin thông báo lỗi toàn bộ hệ thống
Rate this post