SIP hoạt động theo cơ chế trao đổi các yêu cầu và đáp ứng (request/respond). Trong ví dụ này, cuộc giao dịch bắt đầu bằng việc Alice's softphone gửi một lời mời INVITE tới Bob's SIP URI. Yêu cầu INVITE chứa một số trường header gọi là các thuộc tính mang các thông tin như: mã nhận dạng cuộc gọi, địa chỉ đích, địa chỉ của chủ gọi và thông tin về kiểu phiên mà Alice muốn thiết lập với Bob.
Đầu tiên, Alice gọi Bob bằng cách sử dụng địa chỉ SIP của anh ta được gọi là SIP URI (Uniform resource Identifier). Địa chỉ này tương tự như một địa chỉ e-mail
bao gồm hai phần username và host name, ví dụ như URI của Bob có thể là "sip:bob@biloxi.com" (trong đó "biloxi.com" là tên miền của nhà cung cấp dịch vụ SIP cho Bob), còn URI của Alice là "sip:alice@atlanta.com". Ngoài URI, SIP còn cung cấp một loại URI được bảo đảm an toàn hơn gọi là SIPS URI, ví dụ như "sips:bob@biloxi.com".
Vì Alice's softphone không biết được vị trí của Bob 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 máy chủ SIP phục vụ miền của Alice, đó là atlanta.com. Địa chỉ của server này có thể được cấu hình trước hay sử dụng giao thức cấu hình máy chủ động DHCP (Dynamic Host Configuration Protocol) để xác định.
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 Alice 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 Alice để định tuyến bản tin INVITE tới đích của cuộc gọi. Đáp ứng này mang cùng giá trị To, From, Call-ID, Cseq và tham số con (Branch parameter) trong mục "Via" của bản tin INVITE. Điều đó cho phép Alice's softphone có thể hiểu được đây là đáp ứng của bản tin INVITE mà nó đã gửi đi trước đó.Tiếp đến, 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ủ tại 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 Bob. Tại các điểm trung gian, trước khi được chuyển đi bản tin INVITE sẽ được bổ sung 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 Bob khi nhận được bản tin này nó sẽ rung chuông để báo cho Bob biết có một cuộc gọi từ Alice tới để anh ta có thể quyết định xem có trả lời cuộc gọi hay không. Đồng thời máy điện thoại của Bob cũng gửi trở lại một bản tin 180 (Ringing) qua hai proxy server để trả lời cho chương trình trên máy của Alice biết cuộc gọi đã được định tuyến đến đí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.
Hình 3.11: Cơ chế hoạt động của giao thức SIP
Giả sử, Bob quyết định trả lời cuộc gọi từ Alice, khi đó anh ta nhấc máy và một bản tin trả lời 200 (OK) sẽ được máy điện thoại của Bob tạo ra và gửi trở lại phía Alice để 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à Bob mong muốn thiết lập với Alice.
Nếu Bob không muốn trả lời cuộc gọi hay anh ta đ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) sẽ được gửi tới chương trình thoại trên máy PC của Alice. 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, Alice'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 Bob để xác nhận rằng 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 Alice tới điện thoại của Bob. Điều này có thể thực hiện được bởi vì khi đó các điểm cuối đã biết được địa chỉ của nhau từ trường "Contact" trong header của các bản tin INVITE/200 (OK).
Bây giờ, một phiên phương tiện đã được thiết lập giữa Alice và Bob và họ 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 Alice hoặc Bob có thể quyết định thay đổi các đặc tính của của phiên. Điều đó có thể thực hiện bằng cách gửi đi một bản tin re-INVITE chứa các miêu tả mới về phương tiện tới phía bên kia. Bản tin này được tham chiếu tới
dialog đang tồn tại để phía bên kia hiểu được đây là một yêu cầu thay đổi phiên đang tồn tại chứ không phải thiết lập một phiên mới. Nếu đồng ý, phía bên kia sẽ gửi trả lời bằng bản tin 200 (OK) để chấp nhận các thay đổi, và sẽ được xác nhận bằng bản tin ACK, sau đó hai bên sẽ trao đổi với nhau trên một phiên phương tiện với các tham số mới. Trong trường hợp phía bên kia không chấp nhận, nó sẽ gửi đi bản tin đáp ứng lỗi 488 (Not Acceptable Here) và cũng được xác nhận bằng bản tin ACK, khi đó hai bên tham gia vẫn tiếp tục trao đổi với nhau dựa trên các tham số của phiên phương tiện đã được thiết lập trước đó.
Khi một bên tham gia muốn kết thúc cuộc gọi, anh ta đặt máy. Giả sử Bob đặt máy trước, khi đó máy của anh ta 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 Alice 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.