Instant Messaging with SIMPLE Michał Albrycht
Plan prezentacji Co to jest SIMPLE Instant Messaging Pager Mode Session Mode Protokół MSRP
Co to jest SIMPLE SIMPLE = SIP for Instant Messaging and Presence Leveraging Extensions Główne zadania: Rejestracja i otrzymywanie komunikatow Presence Wysyłanie krótkich wiadomości tekstowych Tworzenie sesji konwersacyjnych pomiędzy jednym lub kilkoma użytkownikami Referencyjna implementacja to OMA SIMPLE
Instant Messaging Form of real-time direct text-based communication between two or more people using personal computers or other devices. Więc SMSy także są formą IM... ale za to bardzo ograniczoną.
Rynek komunikatorów Liczba aktywnych użytkowników: Skype 309 mln XMPP 50 mln Windows Live Messenger 330 mln Yahoo! Messenger 248 mln TencentQQ 440 mln AIM 53 mln GG 6 mln
OMA SIMPLE IM Możemy wyróżnić podstawowe tryby: Pager Mode Large Message Mode Group Messages Deferred Messages Session Mode IM Conference Peer-to-Peer IM Session
Schemat Architektury
Pager Mode Nie tworzymy sesji IM (nie mylić z sesją SIP). Wiadomość w jedną stronę. Możliwość odpowiedzi na wiadomość. Złudzenie konwersacji. Treść wiadomości wstawiona jako treści metody MESSAGE w protokole SIP. SIP/IP Core (IMS) zapewnia dostarczenie wiadomości bez utrzymywania sesji SIP.
Pager Mode Przykład użycia metody MESSAGE obaj klienci znajdują się w tej samej domenie.
Pager Mode Wiadomość F1 Wiadomość F2
Pager Mode Niestety, długość komunikatu ograniczona. W ten sposób nie możemy przesłać żadnych multimediów. Po przekroczeniu pewnej wielkości, wiadomość nie jest wstawiana do metody MESSAGE, tylko jest przenoszona z użyciem protokołu MSRP. Tryb ten nazwano Large Message Mode.
Large Message Mode Zostaje utworzona sesja SIP pomiędzy wysyłającym a wszystkimi odbiorcami. Treść wiadomości jest przenoszona z użyciem protokołu MSRP. Jeśli potrzeba to wiadomość jest dzielona na mniejsze częsci. Sesja SIP jest tworzona na przesłanie dokładnie jednej wiadomości.
Group Messages Aby wysłać wiadomość do więcej niż jednej osoby, polu Request-URI umieszcza się adres grupy. Ewentualnie lista odbiorców jako treść załącznika MIME w ciele komunikatu. Wiadomość zostaje powielona i dostarczona do każdego odbiorcy.
Deferred Messages Wysyłamy wiadomości do użytkownika, który nie jest zalogowany. Wiadomości zostają zachowane na serwerze. Adresat otrzyma wiadomości po ponownym podłączeniu. W przypadku dużej ilosći wiadomości dostanie tylko część z nich oraz listę, z której będzie mógł wybrać które wiadomości chce odebrać.
Deferred Messages
Deferred Messages in Group
RCS a SIMPLE IM Fragment dokumentacji RCS v3.0
Session Mode W przeciwieństwie do Pager Mode, tworzona jest sesja, w której wszyscy uczestnicy rozmowy są połączeni przez pewien okres czasu. Schemat podobny do dołączania do Chata. Wiadomości przenoszone z użyciem MSRP, niezależnie od wielkości. Przez cały czas trwania sesji IM, utrzymywana jest sesja SIP.
IM Conference IM Conference to instancja IM Session, która jest jednoznacznie identyfikowana poprzez nadane URI. Hostem jest IM Server. Sprawuje on nadzór nad sesją SIP i sesją MSRP. Można wykorzystać IM Groups to zapraszania określonego grona osób do konferencji.
IM Conference Jeśli nie ma określonej IM Group, tworzona jest sesja Ad-hoc (Ad-hoc IM Session). Lista użytkowników tworzona w locie i jest zapominana po zakończeniu konferencji. Szczególny rodzaj sesji to one-to-one session
Peer-to-Peer Session Uczestniczą tylko 2 osoby. Podczas uzgadniania sesji zostaje wyznaczona bezpośrednia ścieżka dla komunikatów MSRP. Jest to efektywniejszy system komunikacji. Istnieje możliwość rozszerzenia sesji na więcej osób, lecz musi ona zostać przekształcona na konferencję (IM Conference).
Rozszerzanie sesji
Conversation History Zapis treści komunikacji IM wraz z dodatkowymi metainformacjami (czas, temat, itd.). Conversation History Function umożliwia zarządzanie przechowywaniem i odczytywaniem historii wiadomości, a także modyfikację (usuwanie, zmiana nazwy).
Conversation History
Conversation History
MSRP Message Session Relay Protocol. Służy do przesyłania wiadomości w ramach sesji. Nie jest samoistnym protokołem musi korzystać z mechanizmu randkowania np. SIP Wykorzystuje SDP do wymieniania się MSRP URI. SDP może być również wykorzystany do negocjowania rozszerzen MSRP. Działa na porcie TCP 2855.
MSRP przykład Alice inicjuje sesje wysyłając do Boba SIP INVITE. W treści wiadomości znajduje się opis oferowanej sesji, który zawiera sesję MSRP. Bob akceptuje zaproszenie. W odpowiedzi zamieszcza answer session-description (odpowiedziowy opis sesji?), który zawiera wybrany rodzaj mediów. Wysyłający umieszcza MSRP URI, na którym będzie oczekiwać na odpowiedzi MSRP.
MSRP przykład Niektóre linie usunięto w celu poprawy czytelności.
MSRP przykład Odpowiedź Boba.
MSRP przykład Alice odpowiada Bobowi.
MSRP MSRP definiuje 2 metody: SEND do dostarczania wiadomości lub jej fragmentu. REPORT do raportowania statusu poprzednio wysłanej wiadomości, lub zakresu bajtów wewnątrze wiadomości.
MSRP
MSRP Wysyłający może wybrać jaki rodzaj potwierdzeń chce otrzymywać. Jeśli Alice zażąda positive acknowledgements Bob wyśle REPORT po otrzymaniu wiadomości. Duże wiadomości, są dzielone na części. Każda z części jest wysyłana w osobnym komunikacie SEND.
MSRP Message Chuncking Wiadomości zakończone 7 myślnikami, identyfikatorem transakcji, oraz znacznikiem porcjowania ($ koniec wiadomości, + - będzie dalsza część, # - przerawno wysyłanie).
MSRP Identyfokator transakcji unikalny w danej chwili + 64 bity losowe. Jeśli treść zawiera znacznik końca to wysyłający powinien wygenerować nowy identyfikator transakcji. Zaleca się aby kawałki były nie mniejsze niż 2048 oktetów.
MSRP standardowy przebieg
MSRP standardowy przebieg
MSRP standardowy przebieg
MSRP standardowy przykład
MSRP standardowy przykład
MSRP standardowy przykład
MSRP Extensions Dodano metodę AUTH, której głównym zadaniem jest zwiększnie bezpieczeństwa protokołu poprzez m.in. utrudnienie/uniemożliwienie ataku DoS.
MSRP Extensions
MSRP Extensions
Recording in Session Mode
Recording in Session Mode
Ciekawostka - Emotikony
Dziękuję