Hai thành chính trong hệ thống SIP bao gồm:SIP User Agents và SIP Network Servers.
SIP User Agents
Một SIP được thiết lập trên thiết bị cuối được gọi là một user agent.Mục đích của SIP là làm cho các session có thể thiết lập giữa các user agent.Một user agent là một hệ thống cuối cùng hoạt động trên nhân danh của người dung,user agent phải có khả năng thiết lập một session của phương tiện này với các user agent khác.
Một UA phải duy trì trạng thái trên các call mà nó khởi tạo hoặc tham gia vào.Trạng thái nhỏ nhất của các call được thiết lập bao gồm:các thẻ local và remote,Call-ID,các trường local và remote cseq,cùng với việc thiết lập hướng và các thông tin cần thiết của các phương tiện.Remote Cseq thì lưu trữ các thông tin cần thiết để phân biệt giữa một re-INVITE và một retransmission.
Một re-INVITE được sử dụng để thay đổi các tham số session của một call đã thực hiện hoặc chưa xử lý.Nó sử dụng như một Call-ID nhưng CSeq thì được gia tăng bởi vì nó là một request mới.Một INVITE được truyền lại chứa Call-ID và CSeq giống như INVITE trước.User agent duy trì trạng thái của một call trong thời gian tối thiểu là 32 giây.
User agents loại bỏ một ACK ,sự loại bỏ này thì cần thiết trong vấn đề bảo mật.Mặc khác các user agent xấu có thể lấy được các thông tin về các SIP user agent bằng cách spam các request hoặc response giả tạo.
Một user agent trả lời một request không được hỗ trợ với một response là:501 Not Implement.Một SIP UA phải hỗ trợ việc truyền tải của UDP và TCP nếu nó gởi thông điệp có kích thước lớn hơn 1000 octet.
User agent chứa một ứng dụng client và một ứng dụng server.Hai thành phần trên là một user agent client(UAC)và một user agent server(UAS).UAC bắt đầu các request trong khi UAS thì tạo ra các response.Trong một session,user agent thường điều khiển cả UAC và UAS.
Một SIP user agent cũng phải hỗ trợ SDP để mô tả media.
SIP Servers
SIP servers là các ứng dụng mà nó chấp nhận các SIP request và response đến chúng.Không nên lẫn lộn SIP server với một user agent server hoặc client-server. SIP server là một kiểu khác biệt của thực thể.Bởi vì SIP server cung cấp các dịch vụ và chức năng với user agent,chúng sẽ hỗ trợ cả TCP,TLS và UDP để truyền tải.Hình 4.2.2 thể hiện các liên kết hoạt động của user agents,servers và một location service.

Proxy servers
SIP proxy server nhận một SIP request từ một user agent hoặc một proxy khác và hành động trên nhân danh của user agent trong forwarding hoặc responding tới request.Một proxy không phải là B2BUA vì nó chỉ cho phép chỉnh sửa các request và chấp nhận các response để thiết lập các qui tắc bên ngoài trong RFC 3261.Các qui tắc này thì duy trì theo end-to-end của tín hiệu SIP trong khi đó vẫn còn cho phép các proxy server thực hiện các dịch vụ và chức năng với user agent.
Một proxy server phải có truy xuất đến các database hoặc vị trí các dịch vụ để giúp đỡ nó trong quá trình xử lý các request.SIP protocol thì không xác định giao diện giữa proxy và vị trí dịch vụ.Proxy có thể sử dụng nhiều kiểu database trong quá trình xử lý các request.Database có thể chứa SIP registration,các thông tin hiện hữu,và nhiểu kiểu khác của thông tin về nơi mà user được chỉ định.
Một proxy server khác biệt với một user agent hoặc gateway ở ba điểm sau:
1. Một proxy server không đưa ra các request,nó chỉ đáp ứng các request từ một user agent(A CANCEL request là một ngoại lệ trong qui tắc này).
2. Một proxy server không có khả năng về media.
3. Một proxy server thì không phân tích các thông điệp,mà chỉ dựa vào các header field.
Các bước cần thiết trong mô hình proxy để mang đi một call hai hướng.
Mô hình Proxy của Operation

(Nguồn:Henning Schulzrinne, Columbia University)
1. Proxy server chấp nhận INVITE request từ client.
2. Proxy server liên hệ với location server để yêu cầu địa chỉ của UA called.
3. Location server xác định vị trí của called và cung cấp địa chỉ của server đích.
4. INVITE request được tiếp tới một địa chỉ của vị trí mà nó được trở lại.Proxy phải them vào một Record-Route header tới thông điệp INVITE để chắc chắn rằng tất cả các thông điệp đến sau đều được route thông qua proxy.Điều này thì cần thiết để thống kê các mục đích hoặc các ứng dụng khác .
5. Called UA cảnh giác các user.User trả lời cuộc gọi.
6. UAS trở về một 200 OK biểu thị tới yêu cầu proxy server.
7. 200 OK response được tiếp tới từ proxy server tới calling UA.
8. Calling UA xác nhận của 200 OK bằng cách đưa ra một ACK request,cái mà được gởi tới proxy(khi mà proxy chèn vào đầu Record-Route trong thông điệp INVITE)hoặc gởi trực tiếp tới called UA.
9. Proxy forward ACK tới called UA.
Redirect Servers
Một redirect server(hình 4.2.2.2a)như là một kiểu của SIP server mà đáp ứng tới,nó không forward các request.

Hình 4.2.2.2 a
Giống như proxy server,redirect server sử dụng database hoặc location service để tra cứu user.Thông tin về vị trí,tuy nhiên nó được gởi trở lại trong một redirection class response(3xx),cái mà sau khi ACK,kết thúc các giao tác.Hình 3.5 thể hiện một call đơn giản theo ví dụ hình 4.2,server sử dụng redirection stead của proxying để trợ giúp Schroedinger locate Heisenberg.
NVITE chứa:

Redirection response từ INVITE được gởi bởi redirect server:

Hình 4.2.2.2b ví dụ với redirect server

Schroedinger thừa nhận response:

Chú ý rằng ACK request sử dụng lại các nhánh ID giống nhau như là INVITE và response 302.Bởi vì một ACK đến một response non-2xx cuối cùng đều nghĩ tới các phần của các giao tác giống nhau như là INVITE.Chỉ một ACK gởi trong một response được đến một 200 OK được tính đến việc tách rời các giao tác với một nhánh ID độc nhất.Một ACK đến một response 200 OK cuối cùng là một hop-by-hop response,không phải là end-to-end response.
Vì vậy một INVITE mới được tạo ra với một Call-ID mới và gởi trực tiếp tới các vị trí vẫn được sử dụng từ các trường Contact header trong một response 302,từ redirect server:

Các bước trong mô hình redirect để mang đi một call two-way:
1. Redirect server chấp nhận INVITE request từ calling party UA.
2. Redirect server liên hệ với location services để lấy địa chỉ của called party UA.
3. Location services trở về địa chỉ của called party UA.
4. Sau khi user được chỉ định,redirect server trở lại địa chỉ trực tiếp tới calling party trong một thông điệp 3xx,với danh sách được cập nhật:vị trí đầu tới đích mới.Không giống như proxy server,redirect server không forward tới INVITE.
5. UAC gởi một ACK tới redirect server báo nhận response 3xx.
6. UAC gởi một request INVITE trực tiếp tới Contact:địa chỉ trở lại bởi redirect.
7. Called party UA cảnh báo các user,user trả lời call.Called party UA cung cấp một chỉ báo thành công(200 OK) tới UAC.
8. UAC gởi một ACK tới UAS báo đã nhận response 200 OK.
Mô hình Redirect Server của Operation.
(Nguồn:Henning Schulzrinne, Columbia University)

Một registration server được biết như là một registrar,chấp nhận các request của SIP REGISTER,tất cả các request nhận một response:501 Not Implemented.Thông tin liên quan từ request làm cho các SIP server có sẳn bên trong giống Administrator Domain,chẳng hạn như proxies và redirect server.Trong một resistration request,trường TO header chứa tên của tài nguyên bắt đầu registed,và trường Contact header chứa địa chỉ khác hoặc aliases.Registration server tạo ra một liên kết tạm giữa Address Of Record(AOR) URI trong TO và thiết bị URI trong Contact Courier.
Registration server thường yêu cầu các user agent đăng ký để xác thực,vì vậy các call đi vào không bị chiếm đoạt bởi các user không được xác thực.Phụ thuộc vào sự hiện diện của các trường,REGISTER request có thể được sử dụng bởi một user agent để lấy lại một danh sách của các registration hiện thời,làm sạch tất cả registrations,hoặc thêm vào một registration URI.
Để bảo vệ registration,TLS phải được sử dụng như HTTPDigest không cung cấp nhu cầu bảo vệ toàn vẹn.
SIP User Agents
Một SIP được thiết lập trên thiết bị cuối được gọi là một user agent.Mục đích của SIP là làm cho các session có thể thiết lập giữa các user agent.Một user agent là một hệ thống cuối cùng hoạt động trên nhân danh của người dung,user agent phải có khả năng thiết lập một session của phương tiện này với các user agent khác.
Một UA phải duy trì trạng thái trên các call mà nó khởi tạo hoặc tham gia vào.Trạng thái nhỏ nhất của các call được thiết lập bao gồm:các thẻ local và remote,Call-ID,các trường local và remote cseq,cùng với việc thiết lập hướng và các thông tin cần thiết của các phương tiện.Remote Cseq thì lưu trữ các thông tin cần thiết để phân biệt giữa một re-INVITE và một retransmission.
Một re-INVITE được sử dụng để thay đổi các tham số session của một call đã thực hiện hoặc chưa xử lý.Nó sử dụng như một Call-ID nhưng CSeq thì được gia tăng bởi vì nó là một request mới.Một INVITE được truyền lại chứa Call-ID và CSeq giống như INVITE trước.User agent duy trì trạng thái của một call trong thời gian tối thiểu là 32 giây.
User agents loại bỏ một ACK ,sự loại bỏ này thì cần thiết trong vấn đề bảo mật.Mặc khác các user agent xấu có thể lấy được các thông tin về các SIP user agent bằng cách spam các request hoặc response giả tạo.
Một user agent trả lời một request không được hỗ trợ với một response là:501 Not Implement.Một SIP UA phải hỗ trợ việc truyền tải của UDP và TCP nếu nó gởi thông điệp có kích thước lớn hơn 1000 octet.
User agent chứa một ứng dụng client và một ứng dụng server.Hai thành phần trên là một user agent client(UAC)và một user agent server(UAS).UAC bắt đầu các request trong khi UAS thì tạo ra các response.Trong một session,user agent thường điều khiển cả UAC và UAS.
Một SIP user agent cũng phải hỗ trợ SDP để mô tả media.
SIP Servers
SIP servers là các ứng dụng mà nó chấp nhận các SIP request và response đến chúng.Không nên lẫn lộn SIP server với một user agent server hoặc client-server. SIP server là một kiểu khác biệt của thực thể.Bởi vì SIP server cung cấp các dịch vụ và chức năng với user agent,chúng sẽ hỗ trợ cả TCP,TLS và UDP để truyền tải.Hình 4.2.2 thể hiện các liên kết hoạt động của user agents,servers và một location service.

Proxy servers
SIP proxy server nhận một SIP request từ một user agent hoặc một proxy khác và hành động trên nhân danh của user agent trong forwarding hoặc responding tới request.Một proxy không phải là B2BUA vì nó chỉ cho phép chỉnh sửa các request và chấp nhận các response để thiết lập các qui tắc bên ngoài trong RFC 3261.Các qui tắc này thì duy trì theo end-to-end của tín hiệu SIP trong khi đó vẫn còn cho phép các proxy server thực hiện các dịch vụ và chức năng với user agent.
Một proxy server phải có truy xuất đến các database hoặc vị trí các dịch vụ để giúp đỡ nó trong quá trình xử lý các request.SIP protocol thì không xác định giao diện giữa proxy và vị trí dịch vụ.Proxy có thể sử dụng nhiều kiểu database trong quá trình xử lý các request.Database có thể chứa SIP registration,các thông tin hiện hữu,và nhiểu kiểu khác của thông tin về nơi mà user được chỉ định.
Một proxy server khác biệt với một user agent hoặc gateway ở ba điểm sau:
1. Một proxy server không đưa ra các request,nó chỉ đáp ứng các request từ một user agent(A CANCEL request là một ngoại lệ trong qui tắc này).
2. Một proxy server không có khả năng về media.
3. Một proxy server thì không phân tích các thông điệp,mà chỉ dựa vào các header field.
Các bước cần thiết trong mô hình proxy để mang đi một call hai hướng.
Mô hình Proxy của Operation

(Nguồn:Henning Schulzrinne, Columbia University)
1. Proxy server chấp nhận INVITE request từ client.
2. Proxy server liên hệ với location server để yêu cầu địa chỉ của UA called.
3. Location server xác định vị trí của called và cung cấp địa chỉ của server đích.
4. INVITE request được tiếp tới một địa chỉ của vị trí mà nó được trở lại.Proxy phải them vào một Record-Route header tới thông điệp INVITE để chắc chắn rằng tất cả các thông điệp đến sau đều được route thông qua proxy.Điều này thì cần thiết để thống kê các mục đích hoặc các ứng dụng khác .
5. Called UA cảnh giác các user.User trả lời cuộc gọi.
6. UAS trở về một 200 OK biểu thị tới yêu cầu proxy server.
7. 200 OK response được tiếp tới từ proxy server tới calling UA.
8. Calling UA xác nhận của 200 OK bằng cách đưa ra một ACK request,cái mà được gởi tới proxy(khi mà proxy chèn vào đầu Record-Route trong thông điệp INVITE)hoặc gởi trực tiếp tới called UA.
9. Proxy forward ACK tới called UA.
Redirect Servers
Một redirect server(hình 4.2.2.2a)như là một kiểu của SIP server mà đáp ứng tới,nó không forward các request.

Hình 4.2.2.2 a
Giống như proxy server,redirect server sử dụng database hoặc location service để tra cứu user.Thông tin về vị trí,tuy nhiên nó được gởi trở lại trong một redirection class response(3xx),cái mà sau khi ACK,kết thúc các giao tác.Hình 3.5 thể hiện một call đơn giản theo ví dụ hình 4.2,server sử dụng redirection stead của proxying để trợ giúp Schroedinger locate Heisenberg.
NVITE chứa:

Redirection response từ INVITE được gởi bởi redirect server:

Hình 4.2.2.2b ví dụ với redirect server

Schroedinger thừa nhận response:

Chú ý rằng ACK request sử dụng lại các nhánh ID giống nhau như là INVITE và response 302.Bởi vì một ACK đến một response non-2xx cuối cùng đều nghĩ tới các phần của các giao tác giống nhau như là INVITE.Chỉ một ACK gởi trong một response được đến một 200 OK được tính đến việc tách rời các giao tác với một nhánh ID độc nhất.Một ACK đến một response 200 OK cuối cùng là một hop-by-hop response,không phải là end-to-end response.
Vì vậy một INVITE mới được tạo ra với một Call-ID mới và gởi trực tiếp tới các vị trí vẫn được sử dụng từ các trường Contact header trong một response 302,từ redirect server:

Các bước trong mô hình redirect để mang đi một call two-way:
1. Redirect server chấp nhận INVITE request từ calling party UA.
2. Redirect server liên hệ với location services để lấy địa chỉ của called party UA.
3. Location services trở về địa chỉ của called party UA.
4. Sau khi user được chỉ định,redirect server trở lại địa chỉ trực tiếp tới calling party trong một thông điệp 3xx,với danh sách được cập nhật:vị trí đầu tới đích mới.Không giống như proxy server,redirect server không forward tới INVITE.
5. UAC gởi một ACK tới redirect server báo nhận response 3xx.
6. UAC gởi một request INVITE trực tiếp tới Contact:địa chỉ trở lại bởi redirect.
7. Called party UA cảnh báo các user,user trả lời call.Called party UA cung cấp một chỉ báo thành công(200 OK) tới UAC.
8. UAC gởi một ACK tới UAS báo đã nhận response 200 OK.
Mô hình Redirect Server của Operation.
(Nguồn:Henning Schulzrinne, Columbia University)

Registration Servers
Một registration server được biết như là một registrar,chấp nhận các request của SIP REGISTER,tất cả các request nhận một response:501 Not Implemented.Thông tin liên quan từ request làm cho các SIP server có sẳn bên trong giống Administrator Domain,chẳng hạn như proxies và redirect server.Trong một resistration request,trường TO header chứa tên của tài nguyên bắt đầu registed,và trường Contact header chứa địa chỉ khác hoặc aliases.Registration server tạo ra một liên kết tạm giữa Address Of Record(AOR) URI trong TO và thiết bị URI trong Contact Courier.
Registration server thường yêu cầu các user agent đăng ký để xác thực,vì vậy các call đi vào không bị chiếm đoạt bởi các user không được xác thực.Phụ thuộc vào sự hiện diện của các trường,REGISTER request có thể được sử dụng bởi một user agent để lấy lại một danh sách của các registration hiện thời,làm sạch tất cả registrations,hoặc thêm vào một registration URI.
Để bảo vệ registration,TLS phải được sử dụng như HTTPDigest không cung cấp nhu cầu bảo vệ toàn vẹn.