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.
A’s softphone Atlanta.com proxy Biloxi.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 2.9 Cơ chế hoạt động của giao thức SIP
Đầ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 biloxi.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à atlanta.com
Máy chủ SIP tại Atlanta 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 ) để 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ủ ở Atlanta sẽ xác định máy chủ của miền biloxi.com và chuyển tiếp bản tin yêu cầu INVITE tới đó. Khi máy chủ ở Biloxi 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 Atlanta 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.
Máy điện thoại của B khi nhận đ−ợc bản tin này nó sẽ rung chuông để 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 thạ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. Quá trình định tuyến ng−ợc lại đ−ợc thực hiện bằng cách sử dụng các địa chỉ trong tr−ờng “Via” của bản tin đ−ợc sao từ bản tin INVITE.
- 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 “Contact” ( của header ) 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.