1.5 Hoạt động của SIP
1.5.9 Thí dụ về hoạt động của SIP
SIP hoạt động theo cơ chế trao đổi các yêu cầu và đáp ứng. Ta sẽ xem xét thủ tục báo hiệu trong SIP thơng qua một ví dụ trao đổi thơng tin giữa hai người là A và B sử dụng hệ thống SIP (bản tin giữa các bước được thể hiển ở mục lục).
•Đầu tiên, A gọi B bằng cách sử dụng địa chỉ SIP của mình được gọi là SIP URI. Địa chỉ này tương tự như một địa chỉ e - mail bao gồm hai phần user name và host name. Vì A’s softphone khơng biết được vị trí của B cũng như máy chủ SIP phục vụ miền cntt.com, nên nó gửi bản tin INVITE tới náy chủ SIP phục vụ miền của A, đó là dtvt.com
•Máy chủ SIP tại dtvt là một proxy server. Nó nhận yêu cầu INVITE sẽ gửi trở lại máy tính của A một đáp ứng 100 (Trying: thông báo đợi) để chỉ thị rằng INVITE đã được nhận và nó đang là đại diện cho thiết bị của A để định tuyến bản tin INVITE tới đích của cuộc gọi. Tiếp sau đó, máy chủ ở dtvt sẽ xác định máy chủ của miền cntt.com và chuyển tiếp bản tin yêu cầu INVITE tới đó. Khi máy chủ ở cntt nhận được bản tin INVITE, nó gửi trở lại một bản tin 100 (Trying) để trả lời cho máy chủ tại dtvt biết nó đã nhận được yêu cầu và đang xử lý yêu cầu này. Tiếp đến, nó truy vấn cơ sở dữ liệu, được gọi chung là dịch vụ định vị, để xác định địa chỉ IP hiện tại của B. Tại các điểm trung gian, trước khi được truyền đi bản tin INVITE sẽ được bổ xung thêm vào đầu trường “Via” địa chỉ của điểm trung gian để sử dụng sau này.
A’s softphone dtvt.com proxy cntt.com proxy B’s SIP phone INVITE F1 INVITE F2 100 Trying F3 INVITE F4 100 Trying F5 180 Ringing F6 180 Ringing F7 180 Ringing F8 200 OK F9 200 OK F10 200 OK F11 ACK F12 BYE F13 200 OK F14
Hình 1.10 Thí dụ hoạt động của giao thức SIP.
•Máy điện thoại của B khi nhận được bản tin này nó sẽ rung chng để báo cho B biết có một cuộc gọi từ A tới để quyết định xem có trả lời cuộc gọi hay không. Đồng thời máy điện thoại B cũng gửi lại bản tin 180 (Ringing) qua hai proxy server để trả lời cho chương trình trên máy của A biết cuộc gọi đã được định tuyến tới đích.
-Nếu B quyết định trả lời cuộc gọi từ A. Khi nhấc máy lên, một bản tin trả lời 200 (OK) sẽ được máy điện thoại của B tạo ra và gửi trở lại phía A để thơng báo rằng cuộc gọi đã được trả lời. Bản tin này có phần thân mang thơng tin miêu tả về kiểu phiên mà B mong muốn thiết lập với A.
- Nếu B không muốn trả lời cuộc gọi hay đang bận tham gia một cuộc gọi khác, một đáp ứng lỗi sẽ được gửi đi thay cho bản tin 200 (OK), và khi đó sẽ khơng có một phiên phương tiện nào được thiết lập.
•Khi bản tin 200 (OK) được gửi tới chương trình thoại trên máy PC của A. Nó sẽ ngắt hồi âm chuông để thông báo rằng cuộc gọi đã được trả lời. Cuối cùng A’s softphone sẽ gửi một bản tin công nhận ACK tới máy điện thoại SIP của B để xác nhận nó đã nhận được đáp ứng cuối cùng. Trong ví dụ này, ACK được gửi trực tiếp từ máy của A tới máy của B, nhờ sự biết trước địa chỉ của nhau trong trong trường header “Contact” của các bản tin INVITE/200 (OK).
•Khi phiên phương tiện đã được thiết lập giữa A và B, chúng có thể gửi đi các gói sử dụng định dạng đã được đề nghị trong phần miêu tả phiên trước đó. Trong phiên dữ liệu hoặc A hoặc B có thể quyết định thay đổi các đặc tính của phiên
•Khi một bên tham gia muốn kết thúc cuộc gọi. Giả sử B đặt máy trước, khi đó máy của B sẽ tạo ra một bản tin BYE. Bản tin này được định tuyến trực tiếp tới máy của A và được xác nhận bằng một đáp ứng 200 ( OK ), phiên phương tiện kết thúc mà không cần thiết phải gửi đi một bản tin ACK.