III. THIẾT KẾ VÀ THỰC THI CÁC MÔ PHỎNG
3.3.2.2. Kiến trúc SIP [17]
Một hệ thống SIP gồm hai thành phần là agent người dùng (users agent) và các server. Agent người dùng là một hệ thống đầu cuối, đại diện cho người nào đó muốn tham gia vào cuộc gọi. Một agent người dùng bao gồm cả giao thức client là UAC (user agent client) và giao thức server là UAS (user agent server). UAC được sử dụng để khởi tạo cuộc gọi, UAS dùng để trả lời cuộc gọi đến. Sự có mặt đồng thời hai loại agent này cho phép SIP hoạt động ở chế độ ngang hàng (peer-to-peer). SIP cung cấp hai loại server là server proxy và server chuyển hướng. Server proxy nhận các yêu cầu, xác định vị trí để gửi đi các yêu cầu và sau đó thay mặt người dùng để chuyển các yêu cầu đến server kế tiếp. Một server chuyển hướng nhận các yêu cầu, và chuyển các yêu cầu này đến server kế tiếp, nó gửi một phản hồi đến bên gọi để thông báo địa chỉ của bên được gọi. Bên gọi sẽ liên hệ trực tiếp với bên được gọi tại server kế tiếp. Chức năng chính của các server SIP là phân giải địa chỉ và xác định vị trí người dùng,…rất giống với dịch vụ phân giải tiên miền (Domain name system – DNS). Giống như HTTP, SIP sử dụng URL (Uniform Resource Locator) để nhận dạng người dùng. Các server SIP tìm kiếm URL từ cơ sở dữ liệu cục bộ hay tại các server ở xa và xác định được chính xác vị trí (địa chỉ IP) của người dùng. Hình sau mô tả kiến trúc SIP và các luồng thông ðiệp cõ bản ðể thiết lập một phiên làm việc [25]
Hình 3-27: Kiến trúc chủ chốt của SIP bao gồm agent người dùng, server (server proxy và server chuyển hướng) và dịch vụ xác định địa chỉ
Thủ tục để thiết lập một phiên làm việc SIP trên hình 3-27 có thể được diễn tả như sau:
- [1] Người dùng A gửi một yêu cầu INVITE đến server SIP Proxy
- [2] Nếu server proxy không thể phân giải được địa chỉ của bên được gọi, nó chuyển yêu cầu này đến server chuyển tiếp.
- [3] Server chuyển tiếp trả về địa chỉ của server kế tiếp
- [4] Dựa vào địa chỉ do server chuyển tiếp trả về, server proxy gửi yêu cầu đến server proxy kế tiếp đó
- [5] Server proxy tham vấn server xác định địa chỉ để có địa chỉ node kế tiếp
- [6] Server xác định địa chỉ trả về địa chỉ của node kế tiếp
- [7] Server proxy gửi yêu cầu đến node kế tiếp này
- [8] Tại thời điểm này, server proxy biết được vị trí của bên được gọi và gửi yêu cầu INVITE đến người dùng B
- [9-12] Thông điệp xác nhận từ người dùng B được trả về cho người dùng A trên cùng đường đi với thông điệp INVITE
- [13] Một khi thủ thục thiếp lập được hoàn tất, phiên làm việc sẽ thiết lập trực tiếp giữa người dùng A và B. Với mạng IP, các luồng âm thanh, h nh ảnh có thể được truyền sử dụng giao thức RTP
Một đối tượng khác trong SIP là server đăng kí (Registra) như ở hình 3-28. Server đăng kí sẽ hỗ trợ khả năng di động bên trong mạng SIP. Khi người dùng SIP di chuyển đến một vị trí mới, họ sẽ đăng kí vị trí mới với server này để cập nhật vào cơ sở dữ liệu địa chỉ trong server xác định địa chỉ. Sau đó khi các server khác tham vấn server địa chỉ, nó sẽ biết cách định tuyến các cuộc gọi đến địa chỉ mới. Thông thường server đăng kí và các server SIP khác sẽ được triển khai trên cùng một hệ thống phần cứng.
Hình 3-28: Server đăng kí SIP theo dõi vị trí hiện tại của người dùng SIP
Thủ tục để một người dùng SIP đăng kí với Registrar được thể hiện như sau:
- [1] Agent người dùng gửi thông điệp đăng kí đến Registra
- [2] Registrar lưu trữ thông tin đăng kí tại một server xác định vị trí
- [3-4] Một khi thông tin đã được lưu trữ, Registra sẽ gửi một phản hồi tương ứng cho agent người dùng