IV. Ví dụ về SIPServlet
4. Khởi tạo cuộc gọi Click-to-dial trong IMS
Dịch vụ được khởi tạo khi người dùng click vào đường dẫn để gửi bản tin yêu cầu HTTP POST. HTTP POST gửi một cặp tên hoặc cặp giá trị tới web server. Cách sử dụng hay dùng nhất là sử dụng biểu mẫu ngôn ngữ siêu văn bản (html form). Thông thường các bản tin HTTP POST có thể không chứa số điện thoại của người
gọi và số điện thoại của người bị gọi. Số điện thoại của người gọi thường có thể nhận được bởi ứng dụng web từ cơ sở dữ liệu đầu cuối, bởi vì người dùng phải đăng nhập vào trang web, cung cấp cho máy chủ ứng dụng một ngữ cảnh cần thiết. Còn số điện thoại của người bị gọi thu được thông qua:
• Bước 1: trên trình duyệt web của người dùng 1 đăng nhập vào tài khoản để thực hiện cuộc gọi, user 1 này click vào SIP URI của user 2 nhằm thiết lập một phiên tới user 2 (bản tin HTTP POST được gửi tới máy chủ ứng dụng có hỗ trợ dịch vụ click to dial). Máy chủ ứng dụng sẽ trả về bản tin hồi đáp OK để báo rằng yêu cầu được chấp nhận.
• Bước 2: máy chủ ứng dụng tạo ra bản tin INVITE tới bên khởi tạo phiên (user 1) bao gồm mô tả phiên (SDP) nhưng không có mô tả loại dữ liệu (no media). Như vậy lúc này trong bản tin SIP không có dòng m. Điều này ẩn ý rằng media của phiên sẽ được thiết lập sau.
• Bước 3: bên liên quan trả lời cuộc gọi và hồi đáp lại bản tin 200 OK có chứa giao thức mô tả phiên nhưng không có media (SDP no media).
• Bước 4: máy chủ ứng dụng gửi bản tin tới bên người bị gọi (user 2), lúc này chưa có giao thức mô tả phiên (no SDP).
• Bước 5: bên người bị gọi (user 2) trả về bản tin hồi đáp 200 OK kèm theo giao thức mô tả phiên để cho máy chủ ứng dụng sử dụng trong việc gửi lại bản tin INVITE tới bên khởi tạo cuộc gọi.
• Bước 6: máy chủ ứng dụng gửi bản tin Re-INVITE tới bên khởi tạo cuộc gọi. SDP trả về từ bên khởi tạo cuộc gọi user 1 trong khi bản tin 200 OK, được sử dụng để trả lời đề nghị trong bản tin ACK gửi tới bên bị gọi.
• Bước 7: bên gọi và bên bị gọi trao đổi thông tin dựa trên giao thức thời gian thực (RTP).
Hình 8 – Thực hiện khởi tạo cuộc gọi click-to-dial thành công sử dụng bản tin INVITE
Máy chủ ứng dụng trong ứng dụng này quyết định xem cần gửi bản tin INVITE tới S-CSCF nào, điều này có thể đạt được thông qua:
• Kiểm soát trạng thái đăng ký của thuê bao mà nó phục vụ.
• Truy vấn cơ sở dữ liệu HSS thông qua giao diện Sh.
• Cấu hình tĩnh.
Có một vài thiếu sót trong mô hình này. Trước hết, user 1 sẽ được cảnh báo mà không có bất kỳ một media nào được thiết lập. Điều này có nghĩa là user 1 sẽ không thể từ chối hay chấp nhận cuộc gọi dựa trên cấu tạo media của nó. Hơn nữa, cả user 1 và user 2 đều kết thúc trả lời cuộc gọi (ví dụ tạo ra bản tin 200 OK) trước khi nó biết liệu có loại media tương thích hay không. Nếu không có phương thức media chung giữa hai người dùng, cuộc gọi có thể bị kết thúc cùng với bản tin BYE.