Dịch vụ nhắn tin tức thời session-base được giới thiệu trọng Release 6 của 3GPP. Chỉ tiêu kỹ thuật của giao thức đã được chi tiết hoá mô tả trong 3GPP TS 24.247 [10] (Messaging service using the IP Multimedia Core network subsystem Stage 3-Internet). Nhắn tin tức thời session-base
Giao thức MSRP (Message Session Relay Protocol) được dùng để truyền tải các bản tin khẩn Session-base (*). Trong IMS, MSRP được triển khai trên các đầu cuối IMS. MRFP cũng có thể triển khai MSRP. Có hai sơ đồ khác nhau cho việc thiết lập một phiên của các tin nhắn tức thời. Sơ đồ đầu tiên chúng ta mô tả ở hình 3.13:
Hình 3.13. Các tin nhắn tức thời Session-base: phiên MSRP end-to-end [18]
Trong hình 3.14, một đầu cuối IMS thiết lập một phiên đến điểm cuối khác. Các bản tin SIP sẽ đi qua các nút IMS (các P-CSCF, các S-CSCF, hoặc có thể qua các AS,…). Sau đó MSRP được gửi end-to-end. Khác với sự thiết lập phiên cơ bản là ở đây không có các phản hồi 183, yêu cầu PRACK hoặc yêu cầu UPDATE vì REGISTER ở MSRP chỉ chứa một luồng truyền thông được công khai trong SDP.
Hình 3.14. Chat Server - hội nghi session-base multi-part [13]
Trong sơ đồ thứ hai, MRFC và MRFP là những trung gian trong mạng, sẽ tạo điều kiện cho việc tạo các sự kiện tính cước theo kích thước của bản tin hoặc theo bất kỳ nội dung thêm nào trong các bản tin MSRP SEND. Lý do khác là MRF đang đảm nhận làm một đơn vị hội nghị nhiều bên cho các tin nhắn tức thời (ví dụ chat room). Hình 3.14 chỉ ra ví dụ của một hội nghị đa bên đó. Ở đây chúng ta cho rằng các user tham gia vào hội nghị đều thuộc cùng một mạng, mặc dù họ có thể được cấp các S-CSCF và P-CSCF khác nhau. Trong hình đó, đầu tiên user gửi một yêu cầu INVITE (1), yêu cầu đó sẽ đi qua P-CSCF và S-CSCF đã cấp cho user đó. S-CSCF sẽ gửi forward yêu cầu INVITE (5) đến MRFC. MRFC điều khiển MRFP nhờ giao thức H.248, sẽ tạo một sự kết thúc mới cho user. MRFC sẽ khởi tạo một kết nối TCP đến đầu cuối IMS và gửi một yêu cầu MSRP VISIT (8) đến đó. Đầu cuối IMS nhận được yêu cầu MSRP VISTIT sẽ phản hồi bằng một bản tin MSRP 200 (OK) (9). H.248 thực
hiện (10) để chỉ cho MRFC rằng kết nối MSRP mới đã được thiết lập, sau đó MRFC gửi phản hồi 200 (OK) (11) để hoàn thành việc thiết lập phiên.
Sau đó, một user thứ hai tham gia vào hội nghị và thiết lập phiên khác với MRFC. Tại mọi thời điểm, bất kỳ user nào cũng có thể gửi tin nhắn tức thời truyền bằng yêu cầu MSRP SEND: ví dụ khi user thứ hai gửi một yêu cầu MSRP SEND (33), MRFP sẽ gửi bản copy của yêu cầu đó (35) đến mọi người tham dự hội nghị đó.
(*) MSRP là giao thức trên nền văn bản, nó chạy trên giao thức truyền tải như TCP, SCTP và TLS trên TCP. MSRP không dùng trên UDP và bất cứ giao thức truyền tải nào khác. Một đặc tính khác của MSRP là nó có thể chạy trên mặt bằng media. Vì thế bản tin MSRP không truyền qua các SIP proxy. Đó là một lợi thế, vì khi ấy các SIP proxy sẽ không phải bận tâm đến các tin nhắn tức thời có kích thước lớn. MSRP hỗ trợ cho các tin nhắn tức thời truyền qua không, một hoặc hai MSRP relay (là nút đặc biệt truyền các bản tin MSRP giữa hai nút MSRP khác nhau, MSRP relay nằm ở mặt bằng media). Các MSRP relay thực hiện vai trò quan trọng khi một trong các điểm cuối nằm sau NAT (Network Address Translator). Chúng hữu ích cho các nhà quản lý mạng khi cấu hình tường lửa ngang hàng (firewall traversal).
MSRP là giao thức trên nền text, gồm các bản tin yêu cầu và bản tin phản hồi. Tuy nhiên không phải mọi yêu cầu MSRP đều được trả lời bằng một đáp ứng MSRP như SIP. Có ba loại phương thức được định nghĩa trong MSRP:
SEND: gửi tin khẩn từ điểm cuối tới một điểm cuối.
REPORT: điểm cuối hoặc relay cung cấp các thông báo phân phát tin nhắn.
AUTH: dùng bởi các điểm cuối để nhận thực các relay. Yêu cầu MSRP SEND mang thân được mã hoá theo luật MINE.
Hình 3.15 (để cho đơn giản, các proxy đã bị ẩn đi) chỉ ra một phiên nhắn tin MSRP được thiết lập. Điểm cuối gốc tạo phiên nhắn tin Alice gửi một yêu cầu SIP INVITE (1) chứa SDP đề nghị loại phương tiện tin nhắn hỗ trợ MSRP. Sau khi nhận được yêu cầu, Bob sẽ gửi phản hồi 200 OK (2) (các địa chỉ MSRP URI được nằm ở dòng a=). Sau đó Alice sẽ trả lời bằng yêu cầu ACK (3)…quá trình tiếp tục như hình 3.15, nội dung các bản tin được trình bầy như các hình 3.16, 3.17, 3.18 và 3.19.
INVITE sip:Bob.Brown@example.org SIP/2.0
Via: SIP/2.0/UDP wsl.example.com:5060;branch=z9hG4bk74gh5 Max-Forwards: 70
From: Alice <sip:Alice.Smith@example.com>;tag=hx34576s1 To: Bob <sip:Bob.Brown@example.orh
Call-ID: 2098adkj20 Cseq: 22 INVITE Contact: <sip:alice@192.0.100.2> Content-Type: application/sdp Content-Length: 220 v=0
o=alice 2890844526 2890844526 IN IP4 wsl.example.com s=-
c=IN IP4 wsl.example.com t=0 0
m=message 8231 msrp/tcp *
a=accept-type:message/cpim text/plain text/html a=path:msrp://wsl.example.com:8231/9s9cpl:tcp
Hình 3.16 Yêu cầu INVITE (1)
SIP/2.0 200 OK
Via: SIP/2.0/UDP wsl.example.com:5060;branch=z9Gbk74gh5 From: Alice <sip:Alice.Smith@example.com>;tag=hx34576sl To: Bob <sip:Bob.Brown@example.org>;tag=ba03s
Call-ID: 63287762982201885110192.0.100.2 Cseq: 1 INVITE Contact: <sip:bob@bob.example.org> Content-Type: application/sdp Content-Length: 215 v=0
o=bob 2890844528 289084458 IN IP4 bob.example.org s=-
c=IN IP4 bob.example.org t=0 0
m=message 7283 msrp/tcp *
a=accept-type:message/cpim text/plain text/html a=path:msrp://bob.example.org:7283/d9s9a;tcp
MSRP 230cmqj SEND To-Path: msrp://bob.example.org:7283/d9s9a;tcp From-Path: msrp://wsl.example.com:8231/9s9cpl;tcp Message-ID: 309203 Byte-Range: 1-20/20 Content-Type: text/plain This is Alice typing ---230cmqj$
Hình 3.18. Yêu cầu MSRP SEND chứa tin nhắn (5)
MSRP 230cmqj 200 OK To-Path: msrq://wsl.example.com:8231/9s9cpl;tcp From-Path: msrp://bob.example.org:7283/d9s9a;tcp Message-ID: 309203 Byte-Range: 1-20/20 ---230cmqj$ Hình 3.19. Phản hồi MSRP 200 (6)
MSRP relay - để truyền các gói MSRP giữa các điểm cuối thì cần thực thể này, nó nằm ở mặt bằng media. Trước khi dùng MSRP relay để truyền các gói MSRP thì user cần tạo kết nối TLS đến relay, nhận thực (bằng cách gửi AUTH MSRP), nếu nhận thực thành công, relay sẽ cung cấp cho điểm cuối một MSRP URI để user có thể dùng cho các phiên MSRP.
Hình 3.20. Sự nhận thực ở MSRP relay
Chú ý: AUTH thứ hai (4) chứa tên user và password cho khu vựct này (tên khu vực relay được chứa trong 401 (3)). Yêu cầu SIP INVITE (6) sẽ chứa cả MSRP URI của điểm cuối và của relay.
Hình 3.21 sẽ mô tả sơ lược về quá trình nhắn tin, nhìn trên mặt bằng media đối với các MSRP relay.
Hình 3.21. Sự thiết lập phiên end-to-end với MSRP relay [19]