STUDIA PODYPLOMOWE: TELEKOMUNIKACJA, TELLEINFORMATYKA DLA NIEINŻYNIERÓW

Podobne dokumenty
Protokół SIP w skrócie

SIP: Session Initiation Protocol

SIP: Session Initiation Protocol. Krzysztof Kryniecki 16 marca 2010

SIP: Session Initiation Protocol

STUDIA PODYPLOMOWE: TELEKOMUNIKACJA, TELLEINFORMATYKA DLA NIEINŻYNIERÓW

Usługi IMP i konferencyjne

SIP: przesłanki. Standard Internetowy. Wykorzystanie adresacji Internetowej. Wykorzystanie zasad kodowania HTTP

MODEL WARSTWOWY PROTOKOŁY TCP/IP

jest protokołem warstwy aplikacji, tworzy on sygnalizację, aby ustanowić ścieżki komunikacyjne, a następnie usuwa je po zakończeniu sesji

1. Wprowadzenie Środowisko multimedialnych sieci IP Schemat H

Bezpieczny system telefonii VoIP opartej na protokole SIP

Programowanie w Internecie

Sygnalizacja Kontrola bramy Media

Sygnalizacja Kontrola bramy Media

Technologie internetowe

Bezpieczeństwo VoIP SIP & Asterisk. Autor: Leszek Tomaszewski ltomasze@elka.pw.edu.pl

Telefonia Internetowa VoIP

Transmisja danych multimedialnych. mgr inż. Piotr Bratoszewski

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Protokoły sieciowe - TCP/IP

SNG architektura i protokół SIP Materiały wykładowe do użytku wewnętrznego

Zarządzanie ruchem i jakością usług w sieciach komputerowych

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Instytut Telekomunikacji PW. NGN od ISUP do BICC Materiały wykładowe do użytku wewnętrznego

Planowanie telefonii VoIP

Orange Send MMS. Autoryzacja. Metoda HTTP. Parametry wywołania. API wyślij MMS dostarcza wiadomości MMS. Basic POST

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Instant Messaging with SIMPLE. Michał Albrycht

Krajowe Sympozjum Telekomunikacji i Teleinformatyki KSTiT Autorzy: Tomasz Piotrowski Szczepan Wójcik Mikołaj Wiśniewski Wojciech Mazurczyk

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Wybrane działy Informatyki Stosowanej

Sieci komputerowe Warstwa transportowa

IP Multimedia Subsystem

Przesyłania danych przez protokół TCP/IP

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Testy współpracy. Asterisk z techniką WebRTC

Dr Michał Tanaś(

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Wideokonferencje MGR INŻ. PAWEŁ SPALENIAK

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Technologia VoIP Podstawy i standardy

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Technologia VoIP w aspekcie dostępu do numerów alarmowych

Protokół wymiany sentencji, wersja 1

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Sieci Komputerowe Modele warstwowe sieci

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Gatesms.eu Mobilne Rozwiązania dla biznesu

MMTel Multimedia telephony AUIMS

Sieci komputerowe - warstwa transportowa

Sieci komputerowe - administracja

1. Architektura logiczna Platformy Usługowej

ARP Address Resolution Protocol (RFC 826)

TELEFONIA W SIECI IP

Ilość sztuka 1 PBX/IP Opis minimalnych wymagań 1 W zakresie sprzętowym 1.1 Porty: - Min 1 port WAN - RJ-45 (10/100Base-TX, automatyczne wykrywanie)

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Dlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

MASKI SIECIOWE W IPv4

Rok akademicki: 2012/2013 Kod: IIN SK-n Punkty ECTS: 4. Kierunek: Informatyka Specjalność: Systemy komputerowe

Warstwy i funkcje modelu ISO/OSI

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Model sieci OSI, protokoły sieciowe, adresy IP

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Przesył mowy przez internet

Laboratorium 6.7.2: Śledzenie pakietów ICMP

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Rywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

HomeNetMedia - aplikacja spersonalizowanego dostępu do treści multimedialnych z sieci domowej

Dr Michał Tanaś(

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Java wybrane technologie

Implementacja protokołu komunikacyjnego

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź

Serwery multimedialne RealNetworks

Profesjonalne Platformy VOIP. Dariusz Dwornikowski

Architektura aplikacji sieciowych. Architektura klient-serwer

Podstawy działania sieci komputerowych

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami.

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

ZiMSK. Konsola, TELNET, SSH 1

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

MODEL OSI A INTERNET

2007 Cisco Systems, Inc. All rights reserved.

Sieci komputerowe i bazy danych

Adresy w sieciach komputerowych

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Transkrypt:

Telefonia IP SIP Marek Średniawa Instytut Telekomunikacji PW STUDIA PODYPLOMOWE: TELEKOMUNIKACJA, TELLEINFORMATYKA DLA NIEINŻYNIERÓW

Plan Wprowadzenie Protokół SIP Usługi obecności i wymiany wiadomości natychmiastowych Zastosowania protokołu SIP Podsumowanie 2

VoIP VoIP szerokie pojęcie Obejmuje multimedia nie tylko głos Wiele protokółów Standardy oficjalne Standardy de-facto Rozwiązania specyficzne firmowe Różne sieci IPv4, IPv6, Internet, Prywatne sieci LAN/WAN SIP

Odmiany VoIP VoIP a la PSTN VoIP a la PBX Nowa usługa VoIP (integracja z aplikacjami) Przykład Usługi VoIP Cisco Call Manager Skype, MS Live Messenger, UC, Google Hangout, WebRTC Cechy Usługa jak w PSTN. Tanie połączenia międzynarodowe. Usługa jak w PBX. Komunikacja głosowa jako jedna z funkcji aplikacji. Wbudowana obecność i status dostępności. Połączenia peer-to-peer nietaryfikowane. Użytkownicy Użytkownicy indywidualni, SME. Duże firmy i SME. Użytkownicy indywidualni. QoS Średni bądź niewielki zakres kontroli. Duży zakres kontroli. Brak lub niewielki zakres kontroli. Aspekt prawny Przedmiot dyskusji w UE czy PATS? Traktowane jako prywatne ECS. Poza regulacją prawną. 4

Ewolucja VoIP Pierwsza brama VoIP 1996 Sieci H.323 implementowane przez operatorów zasiedziałych i nowych od 1996 Izby rozliczeniowe VoIP - ITXC - ibasis, - DT/T-Systems 1997-1999 Kryzys 2001-2002 IMS UC VoLTE Web RTC Telefonia Internetowa 1995 Pierwszy Gatekeeper 1998 Początek migracji do uniwersalnych sieci wieloprotokołowych od 2002 VoIP IP PBX Hosted IP PBX / VoIP Skype, Hangout,... Faza 1 Faza 2 Faza 3 5

Świat VoIP

SIP, H.323 i MEGACO/H.248 Sterowanie połączeniem i sygnalizacja H.323 H.225 Sygnalizacja i sterowanie bramami Audio/ Wideo Media H.245 Q.931 RAS SIP MEGACO/H.248 RTP RTCP RTSP TCP UDP IP H.323 v1, v2 - H.245 na TCP, Q.931 na TCP i RAS na UDP. H.323 v3, v4 - H.245 na UDP/TCP i Q.931 na UDP/TCP i RAS na UDP. SIP TCP i UDP. 7

Podstawowa architektura fizyczna dla VoIP Nieformalnie: Call server= MGC+GK+SIPProxy/Redirect/Registrar (+API) Call server BICC, SIP-T, SIP, H.323 Call server ISUP H.248 H.248 ISUP SGW Sieć IP SGW PSTN MGW MGW PSTN ISUP - ISDN User Part SIP - Session Initiation Protocol SGW - Signalling Gateway MGW - Media Gateway MGC - Media Gateway Controller BICC - Bearer Independent Call Control logiczny przepływ sygnalizacji rzeczywisty transport informacji użytkownika 8

Telekomunikacja IP Integracja większości usług pod kontrolą użytkownika Usługi a la PSTN/PBX POTS IN CS-1, CS-2 PBX i Centrex Kontrola użytkownika nad: Wszystkimi adresowalnymi urządzeniami Preferencjami obu stron sesji Jakość potencjalnie lepsza niż PSTN 3.1 khz kodeki szerokopasmowe Usługi a la Internet Web RTC Obecność Pogawędki głosowe i tekstowe Wymiana wiadomości Głos, dane, wideo Usługi wielostronne konferencje teleedukacja gry Wiele do wymyślenia jeszcze!!! Usługi mieszane: Internet-PSTN: Click-to-call, ICW, zunifikowana obsługa wiadomości 9

Elementy telefonii IP Komponenty systemu telefonii IP: kodeki sygnału mowy rozwiązania zapewniające QoS w środowisku sieci IP protokoły umożliwiające sterowanie przebiegiem transmisji głosu w bezpołączeniowym środowisku sieci pakietowej IP Protokoły transportowe Protokoły sygnalizacyjne Sygnalizacja umożliwiająca ustanawianie i sterowanie przebiegiem sesji oraz lokalizację użytkownika w zasadniczym stopniu odróżnia telefonię IP od strumieniowanie mediów (multimedia streaming) np. SIP i H.323 10

System telefonii IP - VOIP Brama PSTN Sieć IP Sieć PSTN Brama PSTN PBX Gatekeeper / Sterownik PBX Sieć PSTN Typowy system telefonii IP - H323 11

System telefonii IP VOIP c.d. Ruter Ruter Sieć IP LAN SIP proxy Brama PSTN LAN PSTN Telefon IP Aplikacja tlf. System telefonii IP - SIP Telefon IP 12

Web RTC (Web Real Time Communications) Silnik RTC Media wbudowany w przeglądarkę Implementacja protokołów i Javascript API Niepotrzebne wtyczki Opracowany dla World Wide Web Wspólny projekt W3C i IETF IETF RTCWEB WG protokoły W3C WEBRTC WG Javascript API getusermedia API dostęp do strumieni mediów dla kamer i mikrofonów RTCPeerConnection API obsługa strumieni mediów w trybie P2P RTC jako funkcja, a nie usługa czy aplikacja

Podobieństwa VoIP i WebRTC Transmisja danych komunikacyjnych w czasie rzeczywistym Użycie protokołów RTP i SDP O/A G.711 Działanie w sieciach IP

SIP podstawy

SIP: przesłanki Standard Internetowy IETF - http://www.ietf.org RFC 3261 i wiele innych powiązanych norm RFC Wykorzystanie adresacji Internetowej URL, DNS, proxy Użycie bogactwa funkcjonalnego Internetu Wykorzystanie zasad kodowania HTTP Tekstowy protokół Niezależność od protokołów transportowych TCP, UDP, X.25, FR, ATM, Obsługa trybu multicast 16

SIP: Session Initiation Protocol Protokół aplikacyjny (tekstowy): ustanawianie, modyfikacja, likwidacja i zarządzanie przebiegiem multimedialnych sesji komunikacyjnych rozwinięcie HTTP i SMTP opracowane przez IETF Multiparty Multimedia Session Control (MMUSIC) WG RFC 3261 (wcześniej 2543bis) Model P2P (peer-to-peer) Alternatywa dla H.323 17

SIP:architektura Uogólnienie architektury internetowej pajęczyny WWW Prostota: model klient-serwer zasada żądanie-odpowiedź (Request - Response) Serwery Proxy, Redirect, Registrar Serwery aplikacji Konsekwencje: Upowszechnienie kreacji usług SIP Wiele SIP API (SIP servlets, CPL oparty na XML, JAIN) Rozwój narzędzi do projektowania usług (CGI) 18

SIP aspekt usługowy Mobilność Dostęp do usług z dowolnego urządzenia z dowolnego miejsca w Internecie Obecność Czynnik otwierający nowy wzorzec komunikacji Natychmiastowa komunikacja Usługi głosowe Wideopołączenia i widekonferencja Współpraca grupowa Interaktywne sesje 19

Co można zrobić za pomocą protokołu SIP Wykorzystanie środowiska SIP VoIP IM IPTV Audio i wideokonferencja NGN Wbudowanie komunikacji w aplikacje Poprawa produktywności Click to call, IM Zarządzanie połączeniami przez internet Identyfikacja, internet call waiting Poczta głosowa Integracja z procesami biznesowymi Automatyczna generacja połączeń dla scenariuszy współpracy 20

Geneza SIP Korzenie koncepcji SIP: Zapraszanie użytkowników do sesji multimedialnych w sieci Mbone Historia 1996 Mark Handley SIP, Henning Schulzrinne - SCIP 1996-97 Zainteresowanie w kręgach akademickich 1998 Początek zainteresowania komercyjnego SIP postrzegany jako realizacja VoIP zgodnie z duchem Internetu 1999 Pierwsza wersja RFC 2543 opublikowana przez IETF 1999-02 Bardzo duży wzrost zainteresowania ze strony usługodawców i dostawców. Uzupełnianie i korekta RFC 2543 kolejne wersje. 2001/10 RFC 2543bis wersja 05 przypominająca standardy ETSI i ITU-T 21

SIP historia Opracowany przez Internet Engineering Task Force (IETF) Pomysłodawcy: M. Handley, H. Schulzrinne, E. Schooler i J. Rosenberg Propozycja standardu i norma RFC 2543 w marcu 1999 w grupie roboczej IETF MMUSIC WG Powołanie oddzielnej grupy roboczej SIP WG we wrześniu 1999 Obecnie protokołem SIP zajmują się nowe grupy robocze: SIPPING - aplikacje SIMPLE obecność i natychmiastowa komunikacja (presence and instant messaging) RFC2543bis-09 stał się RFC 3261 w czerwcu 2002 Nowi współautorzy: G. Camarillo, A. Johnston, J. Peterson i R. Sparks Cała specyfikacja napisana od nowa przede wszystkim dla poprawienia czytelności, ale także pewne nowe funkcje Zgodność wstecz z RFC 2543 22

Sieć wykorzystująca protokół SIP Punkty końcowe SIP urządzenia dołączone do Internetu lub sieci IP obsługujące SIP Telefony stacjonarne i komórkowe z SIP UA Aplikacje na PC i PDA SIP UA Bramy sieciowe Serwery SIP węzły sieci realizujące zestaw funkcji na żądanie punktów końcowych SIP Mogą inicjować żądania Mogą być zlokalizowane w innej sieci 23

SIP jako protokół rendezvous Możliwości punktu końcowego SIP UA Znajdowanie drugiego UA Znajdowanie serwera SIP, który umożliwia znalezienie drugiego UA Ustanowienie sesji medialnej poprzez wymianę oferty/odpowiedzi Modyfikacja trwającej sesji medialnej poprzez wymianę oferty/odpowiedzi Wyrażenie możliwości i funkcji UA Żądanie wykonania działań związanych ze sterowaniem sesją przez (zdalną) stronę trzecią Uzyskanie informacji o statusie, możliwościach funkcjonalnych i dostępności drugiego UA Wymiana informacji sygnalizacyjnej w trakcie sesji Wymiana wiadomości natychmiastowych z innymi UA 24

Sieć wykorzystująca protokół SIP Forking Network Proxy Local Proxy INVITE Local Proxy INVITE Brama PSTN Sieć mobilna INVITE Caller, Watcher SUBSCRIBE Media, wiadomości NOTIFY INVITE Called, Presentity PBX Frame Relay, ATM H.323, H.248 Sieci nie-ip 25

SIP - charakterystyka Typy adresacji: Internetowy adres sip adres e-mail Telefoniczny Rejestracja Numer telefoniczny E.164 Użytkownik może się zarejestrować wykorzystując swój ID w celu uzyskania dostępu do swoich danych i usług, niezależnie od rejestracji urządzenia 26

SIP - charakterystyka Bezpieczeństwo SIP zaprojektowany tak by stosować mechanizmy ochrony opracowane dla potrzeb Internetu, w celu ochrony sygnalizacji przed różnymi metodami ataków Redirect Serwer SIP Redirect może przekierować żądanie na inny adres Proxy Serwery SIP proxy przekierowują żądania użytkowników na inny serwer, który może udostępnić żądaną usługę 27

SIP - charakterystyka Rozwidlanie (forking) Żądanie użytkownika może być jednocześnie przekazane w wielu kierunkach Spotkania i obecność Postać aktywna lub bierna Mobilność Użytkownicy mogą się posługiwać wieloma urządzeniami: Telefony, faksy, komputery, PDA, pagery W pracy, domu i podróży 28

SIP - charakterystyka Preferencje użytkownika Inicjator sesji komunikacyjnej może określić w jaki sposób serwery i sieć powinny obsłużyć żądania, a także wskazać typy pożądanych i akceptowanych usług Sterowanie routingiem Droga wiadomości SIP może być określana i rejestrowana dla różnych usług 29

SIP: Przesłanki Łatwość implementacji Zasada IETF KISS (Keep It Simple Stupid!) Uwzględnienie wymagań i możliwości Internetu Uniknięcie narzucenia konkretnej architektury fizycznej i konkretnych usług Uniwersalna funkcjonalność Wykorzystanie najlepszych standardów IETF URL MIME RFC 822 Skalowalność 30

SIP:architektura Uogólnienie architektury internetowej pajęczyny WWW Prostota: model klient-serwer zasada żądanie-odpowiedź (Request - Response) Serwery Proxy, Redirect, Registrar Serwery aplikacji Konsekwencje: Upowszechnienie kreacji usług SIP Wiele SIP API (SIP servlets, CPL oparty na XML, JAIN) Rozwój narzędzi do projektowania usług (CGI) 31

SIP stos protokołów Media HTTP H.323 SIP RTP RTCP TCP SCTP IPv4/IPv6 UDP PPP AALx Ethernet GPRS SONET V.x ATM 32

SIP: możliwości funkcjonalne Mobilność użytkownika: określenie bieżącego miejsca jego pobytu Charakterystyka możliwości komunikacyjnych użytkownika: negocjacja funkcjonalności i parametrów sesji (np. opis typu mediów - SDP) Dostępność: określenie gotowości użytkownika do uczestnictwa w sesji Zestawianie połączeń: Nadzorowanie połączenia - sesji przekazywanie połączeń, dołączanie nowych uczestników, odłączanie uczestników i rozłączanie połączeń 33

Trapez SIPowy DNS Server Location Server DNS Outbound Proxy Server SIP Inbound Proxy Server SIP RTP SIP User Agent A User Agent B 34

SIP: elementy architektury User Agent Client - UAC systemy końcowe wysyłają żądania SIP (np. żądanie ustanowienia połączenia) User Agent Server - UAS odbiera żądania połączeń wysyłane przez innych agentów wysyła odpowiedzi w imieniu użytkownika User Agent - Agent Użytkownika (typowy terminal) UAC + UAS Redirect Server Przekierowuje użytkownika na inny serwer Proxy Server reprezentuje żądanie do innego serwera. Może rozwidlić żądanie na wiele serwerów, budując drzewo przeszukiwania Registrar odbiera zgłoszenia rejestracyjne UA (User Agents) Location Server Baza danych o użytkownikach 35

Serwer Registar Serwer akceptujący rozkazy REGISTER i przekazujący zawarte w nich informacje do usługi lokalizacyjnej w zarządzanej przez siebie domenie. Zapewnienie odwzorowania miedzy zewnętrznie znanym adresem(ami) użytkownika a jego obecnym adresem(ami) fizycznym(i). Pobieranie aktualnych odwzorowań (odczytywanie). Usługa lokalizacyjna: baza danych (LDAP, SQL,...) 36

SIP: adresacja Format zbliżony do formatu adresów e-mail user@domain user@host user@ip_address lub phone-number@gateway SIP-URL = sip: [userinfo @ ] hostport url-parameters [headers]: 37

SIP URI (Uniform Resource Indicators) Dwa warianty URI: sip:henry@siptest.wcom.com (SIP URI) Najpopularniejsza forma wprowadzona w RFC 2543 sips:henry@siptest.wcom.com (Secure SIP URI) Nowa forma wprowadzona w RFC 3261 Wymaga TLS na TCP jako mechanizmu transportowego zapewniającego ochronę informacji Dwa typy SIP URI: Address of Record (AOR) (identyfikuje użytkownika) sip:henry@wcom.com (wymaga rekordów DNS SRV w celu lokalizacji serwerów SIP w domenie wcom.com) Fully Qualified Domain Name (FQDN) lub Contact (identyfikuje urządzenie) sip:henry@127.24.45.4 lub sip:henry@cube43.lab.wcom.com (nie wymaga roztrzygania przy rutingu) 38

SIP i URI URI Uniform Resource Identifier - uogólnienie URL Adresy SIP są także identyfikatorami URL!!! SIP umożliwia użycie dowolnego URI w miejscu, w którym może być użyty SIP URL Zastosowania: przekierowywanie połączeń na stronę WWW przekierowywanie połączeń na złożone adresy URL w celu udostępnienia serwera WWW z bazą danych 39

Podstawowe wiadomości (metody) SIP INVITE inicjowanie ustanowienia sesji BYE zakończenie trwającej sesji OPTIONS zapytanie o opcje i funkcjonalność serwera lub UA CANCEL anulowanie żądania w toku ACK potwierdzenie finalnej odpowiedzi na INVITE REGISTER rejestracja URI użytkownika w serwerze rejestrowym SIP (związanie URI urządzenia z AOR) 40

Podstawowe wiadomości (metody) SIP INVITE BYE OPTIONS CANCEL ACK Inicjowanie ustanowienia sesji Zakończenie trwającej sesji Zapytanie o opcje i funkcjonalność serwera lub UA Anulowanie żądania w toku Potwierdzenie finalnej odpowiedzi na INVITE RFC 3261 RFC 3261 RFC 3261 RFC 3261 RFC 3261 REGISTER Rejestracja URI użytkownika w serwerze rejestrowym SIP (związanie URI urządzenia z AOR) RFC 3261 41

Dodatkowe wiadomości (rozszerzenia) SIP INFO PRACK UPDATE REFER SUBSCRIBE PUBLISH NOTIFY MESSAGE Transport sygnalizacji w trakcie sesji Potwierdzenie prowizorycznej odpowiedzi Aktualizacja informacji o stanie sesji Transfer użytkownika pod adres określony przez URI Żądanie zaabonowania powiadamiania o zdarzeniach Przekazanie informacji o zmianie statusu do serwera Transport powiadomienia o zaabonowanym zdarzeniu Transport treści wiadomości natychmiastowych RFC 2976 RFC 6086 RFC 3262 RFC 3311 RFC 3515 RFC 3265 RFC 3903 RFC 3265 RFC 3428 42

SIP obsługiwane schematy URI sip:, sips: tel: pres: im: http: xmpp: Adres SIP i bezpieczny adres SIP Numery telefoniczne i sekwencje wybierania Zasób obecności Zasób wymiany wiadomości natychmiastowych Hyper Text Transport Protocol dla stron internetowych Jabber IM i URI związane z obecnością RFC 3261 RFC 3999 RFC 3861 RFC 3861 RFC 2616 ID H323:, h323: URL H.323 RFC 3508 43

SIP: odpowiedzi Kod Opis Przykłady 1xx 2xx 3xx 4xx 5xx 6xx Informacyjne żądanie odebrane, trwa kontynuacja przetwarzania żądania. Sukces akcja odebrana, zrozumiana i Zaakceptowana. Przekierowanie konieczne podjęcie dalszych działań w celu zakończenia żądania. Błąd klienta błędna postać żądania lub niemożność realizacji żądania przez dany serwer. Błąd serwera serwer nie był w stanie zrealizować żądania. Globalny błąd żądanie nie do zrealizowania przez dostępne serwery. 180 Ringing 181 Call is Being Forwarded 200 OK 300 Multiple Choices 302 Moved Temporarily 401 Unauthorized 404 Not found 408 Request Timeout 503 Service Unavailable 505 Version Not Suported 600 Busy Everywhere 603 Decline 44

SIP: Inicjowanie sesji 192.190.132.20 Anna W uproszczonym przykładzie zaproszenia do sesji - INVITE, terminal Anny informuje, że może odbierać głos w postaci danych PCM kodowanych wg reguły Law (RTP/AVP 0) pod adresem 192.190.132.20 za pomocą portu 49170 INVITE jan@192.190.132.31 c=in IP4 192.190.132.20 m=audio 49170 RTP/AVP 0 192.190.132.31 Jan Sygnał dzwonienia u Jana Port 49170 200 OK c=in IP4 192.190.132.31 m=audio 12345 RTP/AVP 3 Media mogą być wysyłane od razu po odebraniu wiadomości INVITE W odpowiedzi terminal Jana informuje, że może odbierać dane GSM, za pomocą portu 12345 ACK Port 12345 45

2Callee SIP: zestawienie połączenia w trybie Proxy Serwer DNS Serwer lokalizacji Caller@sip.com DNS Srv Query? onet.com Reply : IP Address of onet.com SIP Server INVITE sip:bob@onet.com From: sip:caller@sip.com To: sip:bob@onet.com Call-ID: 345678@sip.com 1 bob@192.219.223.160 3 INVITE sip:bob@192.219.223.160 From: sip:caller@sip.com To: sip:bob@onet.com Call-ID: 345678@sip.com 4 bob@onet.com 6 200 OK From: sip:caller@sip.com To: sip:bob@onet.com Call-ID: 345678@sip.com PROXY 200 OK From: sip:caller@sip.com To: sip:bob@onet.com Call-ID: 345678@sip.com 5 7 ACK sip:bob@onet.com 8 Media 46

SIP Proxy Pośredni element, który spełnia rolę zarówno serwera jak i klienta w celu realizacji żądań w imieniu innych klientów Ruting jako główna funkcja Przezroczystość dla urządzeń końcowych Interpretuje i jeśli zachodzi potrzeba modyfikuje żądanie przed przekazaniem go dalej Nagłówki, które mogą podlegać modyfikacji: Request-URI Via Record-Route Route Max-Forwards Proxy- Authorization 47

SIP Proxy Może utrzymywać informację o stanie transakcji stateful proxy Lub tylko przekazywać żądania dalej stateless proxy Przekazywanie żądań Sekwencyjne Z rozgałęzieniem do wielu serwerów Uprzydatny do realizacji polityk Identyfikacja i uwierzytelnienie użytkowników usług Implementacja polityk rutingu usługodawcy 48

Callee SIP: serwer przekierowujący - Redirect LOCATION SERVER Caller@sip.com 2 Callee@home.com 3 1 INVITE Callee@example.com 4 302 Moved Temporarily Contact:Callee@home.com 5 ACK Callee@example.com PROXY 6 INVITE Callee@home.com Callee@home.com 7 200 OK INVITE 8 ACK Callee@home.com 49

Serwery: Redirect Definicja: serwer odbierający rozkazy SIP (Req) od klientów i wysyłający odpowiedzi (Res) typu 3xx (Redirection), kierujące klientów pod alternatywne zestawy adresów SIP Odpowiedzi typu Redirection (wg RFC 3261) 300 Multiple choices 301 Moved permanently 302 Moved temporarily 305 Use proxy 380 Alternative service 50

SIP wybrane nagłówki Nagłówek Opis Przykłady Accept Wskazuje akceptowane formaty treści. Accept: application/sdp Accept: currency/dollars Authorization Zawiera informację o szyfrowaniu. Authorization: pgp info Call-ID Contact Content- Length Identyfikuje jednoznacznie sesję lub wiadomości rejestracyjne. Generowany losowo w sposób zapewniający globalną unikalność Alternatywny adres SIP URL do wykorzystania przy bezpośrednim kierowaniu wiadomości. Call-ID: 1@mars.brooks.net Call-ID: Jan-01-1999-1510-1@server.mci.com i: 31415926535@uunet.com Contact: W. Riker, Acting Captain <riker@starfleet.gov> Contact: room203@hotel.com; expires=3600 m: admin@mci.com Licznik długości treści wiadomości. Content-Length: 285 Content-Type Typ treści ciała wiadomości. Content-Type: application/sdp c: application/h.323 CSeq Nr sekwencyjny wiadomości uzywany w celu CSeq: 1 INVITE rozróżniania żądań w czasie tej samej sesji. CSeq: 1000 INVITE CSeq: 4325 BYE CSeq: 1 REGISTER Encryption Informacja związana z szyfrowaniem. Encryption: pgp info Expires Termin ważności treści wiadomości (w sekundach lub data I czas). Expires: 60 Expires: Thu, 07 Jan 1999 17:00 CST 51

SIP wybrane nagłówki From Pole wskazujące SIP URL nadawcy. From: Dana Scully <sip:dana@skeptics.org> From: sip:+1-314-342-7360@gateway.wcom.com; tag=1234567 f: sip: guest@192.168.1.1 Max-Forwards Licznik zmiejszany przez każdy serwer proxy przy przekazywaniu wiadomości. Wyzerowanie licznika generuje odpowiedź 483 Too Many Hops Max-Forwards: 10 Priority Priorytet wiadomości. Priority: normal Priority: emergency Record-Route Dodawany do żądania przez serwer proxy, który musi się znaleźć na ścieżce wiadomości w przyszłości.. Record Route: sip.mci.com Require Wskazuje wymagane opcje sesji. Require: local.telephony Response-Key Zawiera klucz PGP key dla oczekiwanej zaszyfrowanej odpowiedzi. Response-Key: pgp info Retry-After Wskazuje termin kiedy zasób będzie dostęny. Retry-After: 3600 Retry-After: Sat, 01 Jan 2000 00:01 GMT 52

SIP wybrane nagłówki Route Określa trasę wiadomości. Route: orinoco.brooks.net Subject To Unsupported Przekazuje pomocniczą informację o typie sesji. Obowiązkowe pole określające adresata sesji jego SIP URL. Listuje funckje nie obsługiwane przez serwer. Subject: More about SIP s: You d better answer! To: Fox Mulder <sip:mulder@ lonegunman.org> To: sip:10109000@operator.mci.com; tag=314 t: sip:1800collect@telecom.mci.co m; tag=52 Unsupported: tcap.telephony Via Wskazuje ścieżkę, przez Via: SIP/2. 0/UDP sip.mfs.com którą przeszła wiadomość. Via: SIP/2.0/TCP uunet.com v: SIP/2.0/UDP 192.168.1.1 Warning Kod i treść ostrzeżenia. Warning: 331 Unicast not available 53

Nagłówki SIP związane z rutingiem Request-URI: bieżące położnie, może się zmienić na ścieżce sygnalizacyjnej Contact: występuje w INVITE / OPTIONS / ACK / REGISTER i odpowiedziach. Wskazuje bezpośredni adres odpowiedzi, na który kolejne transakcje będą wysyłane. Via: Identyfikuje lokalizację gdzie ma być wysłana odpowiedź Record-Route: wstawiany przez proxy w żądaniu w celu wymuszenia aby przyszłe żądania w dialogu były kierowane przez dany węzeł proxy Route: służy do wymuszania rutingu żądania przez podana listę proxy 54

Ruting w protokole SIP Ruting żądań inicjujących sesję Oferowanie sesji adresatowi (np. dzwonek - informowanie o połączeniu przychodzącym ) Ruting odpowiedzi Poinformowanie inicjującego sesję o reakcji adresata sesji Ruting kolejnych żądań Monitotowanie przez serwery Proxy postępu sesji lub jej zakończenia 55

Ruting żądań i odpowiedzi Serwery Proxy przechowują informację o stanie transakcji maintain, która musi być usunięta w pewnych punktach Odpowiedzi przechodzą trasą żądań Każdy węzeł proxy dodaje swój nagłówek Via Proxy - P1 Proxy P2 Proxy P3 INVITE sip:bob@iptel.org Via: P1 INVITE sip:bob@iptel.org Via: P1 Via: P2 INVITE sip:bob@iptel.org Via: P1 Via: P2 Via:P3 INVITE sip:bob@iptel.org 56

Ruting żądań i odpowiedzi Odpowiedzi przechodzą ścieżkę wyznaczoną przez odwróconą listę adresów serwerów Proxy z nagłówków Via Proxy - P1 Proxy P2 Proxy P3 200 OK 200 OK Via: P1 200 OK Via: P2 Via: P1 200 OK Via: P3 Via: P2 Via: P1 ACK BYE 57

Ruting kolejnych żądań Serwery Proxy mogą być zainteresowane obserwacją wszystkich żądań związanych z poszczególnymi sesjami (monitorowanie, taryfikacja, realizacja usług) Żądania należące do tej samej sesji muszą przechodzić przez te serwery Proxy Każdy zainteresowany serwer Proxy dodaje swój nagłówek Record-route Proxy - P1 Proxy P2 Proxy P3 INVITE sip:bob@iptel.org Via: P1 Record-Route: P1 INVITE sip:bob@iptel.org Via: P1 Via: P2 Record-Route: P1 INVITE sip:bob@iptel.org Via: P1 Via: P2 Via: P3 Record-Route: P1 Record-Route: P3 INVITE sip:bob@iptel.org 58

Ruting żądań i odpowiedzi Proxy - P1 Proxy P2 Proxy P3 200 OK 200 OK Via: P1 Route: P1 Route: P3 200 OK Via: P2 Via: P1 Route: P1 Route: P3 200 OK Via: P3 Via: P2 Via: P1 Route: P1 Route: P3 59

Ruting żądań i odpowiedzi Kolejne żądania przechodzą przez tylko te węzły Proxy, które wcześniej dodały nagłówek Record-route Proxy - P1 Proxy P2 Proxy P3 ACK Route: P1 Route: P3 ACK Via: P1 Route: P3 ACK Via: P3 Via: P1 60

Obsługa BYE bez i z Record route Bez Record Route UA1 SIP Proxy UA2 Z Record Route UA1 SIP Proxy UA2 BYE 200 OK BYE BYE 200 OK 200 OK 61

Nagłówek Route Wymusza ruting żądania przez podaną listę serwerów proxy Potwierdzenie odpowiedzi ACK na żądanie INVITE, musi zawierać pola nagłówka Route jeśli one wystąpiły w INVITE Przykłady: Route: <sip:bigbox3.site3.atlanta.com;lr>, <sip:server10.biloxi.com;lr> Address wskaźnik Loose Routing Route: <sip:server10.biloxi.com;lr> A B INVITE D INVITE D Route B,C Route C INVITE D C D 62

Protokoły związane z SIP SDP Session Description Protocol Tekstowa notacja służąca do opisu sesji medialnych Dane przekazywane w treści wiadomości SIP Wykorzystuje profile RTP/AVP dla najczęściej spotykanych typów mediów Zdefiniowany w normie RFC 2327 RTP Real-time Transport Protocol Wykorzystywany do trasportu pakietów mediów po IP RTP dodaje nagłówek zawierający: Nazwę źródła mediów Stempel czasowy Typ kodeka Numer sekwencyjny Zdefiniowany w RFC 1889 (H. Schulzrinne i inni) Profile zdefiniowane w RFC 1890 63

Architektura SIP - składniki User Agents Outbound Proxy Server SIP DNS DNS Server SIP Registrar / Location Server UA wysyła i odbiera żądania SIP Inbound Proxy Server SIP UAC User Agent Client UAS User Agent Server Urządzenia końcowe: Telefon SIP PC/laptop z klientem SIP PDA Telefon komórkowy Bramy PSTN stanowią odmianę UA SIP Media (RTP) User Agent A User Agent B 64

Architektura SIP składniki serwery Proxy DNS Server Registrar / Location Server Przekazuje dalej lub pośredniczy przy przekazywaniu żądań w imieniu UA Odwołania do baz danych: DNS DNS Location Server Typy: Outbound Proxy Server SIP Inbound Proxy Server bezstanowy Stanowy dla transakcji Stanowy dla zgłoszeń SIP Nie ma funkcji związanych z mediami SIP Ignoruje SDP SIP Media (RTP) Normalnie pomijany po ustanowieniu dialogu, ale może rejestrować Record-Route aby pozostać w ścieżce User Agent A User Agent B 65

Architektura SIP składniki inne serwery DNS Server Location Server Location Server: Baza danych lokalizacji DNS Agentów Użytkownika SIP Odpytywana przez serwery proxy przy rutingu Outbound Proxy Server SIP Inbound Proxy Server Aktualizowana przez UA podczas rejestracji SIP DNS Server: SIP SIP Media (RTP) Rekordy SRV (Service Records) używane do lokalizacji serwerów Inbound Proxy User Agent A User Agent B 66

Model stanowy - serwer Initial INVITE 1xx CANCEL 200 INVITE 1xx Call Proceeding status change 1xx BYE 200 INVITE status Failure failure >= 300 max(t1*2 n, T2) status Callee Answer 2xx Success INVITE status 32s - event message sent ACK - ACK - Confirmed BYE 200 BYE 200

Model stanowy - klient 7 INVITE sent - T1*2 n INVITE Initial Calling - INVITE give up BYE 1xx 300-699 ACK Call Proceeding 1xx 300-699 ACK give up BYE event request sent 300-699 ACK Completed 32s (for proxy)

Metoda i nagłówek INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Type: application/sdp Content-Length: 201 v=0 o=userb 289375749 289375749 IN IP5 100.101.102.103 s=c=in IP4 100.101.102.103 t=0 0 m=audio 5004 RTP/AVP 0 m=audio 53000 RTP/AVP 96 c=in IP4 200.201.202.203 a=rtpmap:96 telephone-event Nagłówek To SDP Metoda INVITE 69

Nagłówki SIP Składnia i semantyka podobna do pół nagłówków HTTP Możliwość łączenia pól nagłówka Możliwość skróconego zapisu header = "header-name" HCOLON header-value *(COMMA header-value)

Przykłady nagłówków Postać długa From: sip:caller@clrdomain.com To: sip:called@clddomain.com Call ID: 31415@clrdomain.com CSeq: 1 OPTIONS Accept: application/sdp Accept-Encoding: gzip Accept-Language: en Content-Type: application/sdp Content-Length: 274 Postać krótka f: sip:caller@clrdomain.com t: sip:called@clddomain.com i: 31415@clrdomain.com CSeq: 1 OPTIONS Accept: application/sdp Accept-Encoding: gzip Accept-Language: en c: application/sdp l: 274 Zwielokrotnione pola nagłówka From: sip:caller@clrdomain.com To: sip:called@clddomain.com Call ID: 31415@clrdomain.com CSeq: 1 OPTIONS Contact: <sip:alice@atlanta.com>;expires=3600 Contact:<sip:alice@chicago.com> Route: <sip:alice@atlanta.com>,<sip:carol@chicago.com>, <sip:bob@biloxi.com>

SIP treść wiadomości Typ treści: Określony przez Content-Type Header (text/html, application/sdp) Kodowanie (jeśli realizowane) wskazywane przez Content-Encoding Header Multipart MIME może e być wykorzystany w treści wiadomości (multipart/mixed) do przekazywania opakowanych treści Długość treści: Content-Length Header Typ mediów: Accept Header Język odpowiedzi: Accept-Language Header 72

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Pierwszy wiersz żądania SIP request nie zawiera nagłówków, lecz zaczyna się od nazwy metody (INVITE), po której następuje spacja i identyfikacja adresata sesji - Request-URI, w tym przypadku sip:userb@there.com, spacja i nr używanej wersji protokołu SIP (2.0). Każdy wiersz kończy się CRLF. 73

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek Via nr wersji protokołu SIP (2.0) i stosowany protokół transportowy (UDP), następnie adres IP (4.3.2.1) lub nazwa węzła (host) inicjatora żądania i numer portu (5060 znany nr portu SIP). Każdy serwer, który przekazuje żądanie request dodaje do wiadomości nagłówek Via swój adres i numer portu, na który chce uzyskać odpowiedź. 74

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek To nazwę użytkownika (User B), następnie URL adresata w nawiasach kątowych <> (sip:userb@there.com) 75

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek To nazwę użytkownika (User A), następnie URL inicjatora w nawiasach kątowych <> (sip:usera@here.com) 76

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek Call-ID zawiera unikalny identyfikator sesji. Tworzą go unikalny lokalny losowo wygenerowany identyfikatora, znak @ i unikalna globalnie nazwa węzła (host) lub adres IP, tworząc unikalny łańcuch. Wszystkie żądania i odpowiedzi w trakcie sesji mają ten sam Call-ID. Unikalne łańcuchy Call-ID mogą być generowane również w inny sposób. 77

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 CSeq stanowi numer sekwencyjny, zawierający liczbę całkowitą (w tym przypadku 1), a następnie oddzieloną odstępem nazwę metody (INVITE). Każde kolejne żądanie podczas sesji ma kolejny wyższy numer sekwencyjny CSeq. Obie strony sesji utrzymują oddzielne lokalne liczniki CSeq. 78

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek Contact zawiera jeden lub więcej adresów SIP URL, które dostarczają informację dla drugiej strony uczestniczącej w sesji pozwalające skontaktować się z użytkownikiem A. 79

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Content-Length zawiera długość treści wiadomości wyrażoną w oktetach (bajtach) (126), która następuje po liście nagłówków SIPowych i jest oddzielona od nich pojedynczym pustym wierszem (CRLF). Content- Length równe 0 wskazuje, że wiadomość nie zawiera treści (składa się tylko z nagłówków). 80

Struktura wiadomości SIP - REGISTER REGISTER sip:titan.tele.pw.edu.pl SIP/2.0 Via: SIP/2.0/UDP 194.29.169.96:5060 From: sip:marek@titan.tele.pw.edu.pl To: sip:marek@titan.tele.pw.edu.pl Call-Id: 952579913@194.29.169.96 CSeq: 1 REGISTER Contact: sip:marek@194.29.169.96:5060;transport=udp Content-Length: 0 81

Struktura wiadomości SIP INVITE sip:wh@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Pierwszy wiersz wiadomości SIP wiersz początkowy zawiera: Metodę typ żądania: INVITE (żądanie ustanowienia sesji) Identyfikator żądania - Request-URI, który wskazuje adresata żądania sip:wh@200.201.202.203 Uwaga: identyfikator żądania Request-URI może być typu AOR (address-ofrecord) lub Contact (FQDN) Powyższy identyfikator Request-URI jest typu FQDN (fully qualified domain name), ale początkowy Request-URI był typu AOR (podobnie jak To URI) Identyfikacja wersji protokołu SIP SIP/2.0 82

Struktura wiadomości SIP INVITE sip:w.h@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Nagłówki Via ukazują ścieżkę, którą żądanie przebyło dolny nagłówek Via jest wstawiany przez UA, który zainicjował żądanie Dodatkowe nagłówki Via są wstawiane przez każdy serwer proxy po drodze w ścieżce Nagłówki Via są używane do kierowania odpowiedzi zwrotnych tą samą drogą Wymagany parametr branch zawiera cookie (z9hg4bk) i następnie identyfikator transakcji 83

Struktura wiadomości SIP INVITE sip:w.h@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Max-Forwards jest licznikiem zmniejszanym przez każdy serwer proxy który przekazuje dalej żądanie Gdy licznik osiąga wartość 0 to żądanie jest odrzucane i wysyłana odpowiedź 483 Too Many Hops Wykorzystywany do wykrywania pętli przez bezstanowe serwery proxy 84

Struktura wiadomości SIP INVITE sip:w.h@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Informacja o dialogu (przedtem nazywanym odnogą zgłoszenia call leg) znajduje się w nagłówku: To tag, From tag, i Call-ID (uwaga: nie URI) To and From URI zwykle zawierają identyfikatory AOR URI. Wszystkie żądania i odpowiedzi w przykładzie używają tej samej informacji o dialogu Call-ID unikalny identyfikator zwykle postaci Ciąg pseudolosowy @ nazwa hosta lub adres IP 85

Struktura wiadomości SIP INVITE sip:w.h@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 CSeq numer sekwencyjny komendy Inicjowany na początku sesji (1 w przykładzie) Zwiększany przez każde kolejne żądanie Używany do rozróżniania retransmisji od nowego żądania Zawiera także nazwę żądania (metody) - INVITE 86

Struktura wiadomości SIP INVITE sip:w.h@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Nagłówek Contact zawiera identyfikator SIP FQDN URI do bezpośredniej komunikacji między agentami użytkowników UA Jeżeli serwery proxy nie rejestrują Record-Route, mogą być ominięte Jeżeli Record-Route występuje w odpowiedzi 200 OK, to nagłówek Route będzie się pojawiać we wszystkich przyszłych żądaniach w dialogu Nagłówek Contact występuje również w odpowiedzi 200 OK 87

Struktura wiadomości SIP INVITE sip:w.h@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 Max-Forwards: 69 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Content-Type określa typ zawartości wiadomości (inne to np..: text/plain, application/cpl+xml, itp.) Content-Length określa rozmiar zawartości wiadomości wyrażony w bajtach (oktetach) Treść wiadomości jest oddzielona od nagłówka SIP pustym wierszem (CRLF) 88

Struktura wiadomości SDP v=0 o=tesla 289084526 28904529 IN IP4 lab.high-voltage.org s=c=in IP4 100.101.102.103 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 v: Version number numer wersji (ignorowany przez SIP) o: Origin źródło (28904529) s: Subject (ignorowany przez SIP) c: Connection Data dane dotyczące połączenia (adres IP dla mediów - 100.101.102.103) t: Time czas (ignorowany przez SIP) m: Media (typ - audio, port - 49170, Profil RTP/AVP - 0) a: Attribute atrybut (profil - 0, kodek - PCMU, częst.próbkowania 8000 Hz) 89

Struktura odpowiedzi SIP SIP/2.0 200 OK Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 To: Heisenberg <sip:w.heisenberg@munich.de>;tag=24019385 From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:wh@200.201.202.203 Content-Type: application/sdp Content-Length: 173 v=0 o=heisenberg 2452772446 2452772446 IN IP4 200.201.202.203 s=sip Call c=in IP4 200.201.202.203 t=0 0 m=audio 56321 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Via, To, From, Call-ID, & CSeq kopiowane z żądania To ma znacznik dodawany przez UAS Contact treść wiadomości zawierają informacje UAS 90

SIP sesje komunikacyjne

SIP funkcje obsługi sesji Ustanowienie sesji Negocjacja mediów Modyfikacja parametrów sesji Zakończenie sesji Anulowanie sesji Sygnalizacja w trakcie sesji Sterowanie zgłoszeniem Konfiguracja QoS 92

Ustanowienie sesji Żądanie INVITE ustanawia sesję między dwoma agentami użytkownika UA (User Agents) SIP UA określa nagłówki TO, FROM, i Call-ID na początku sesji Utrzymywanie stanu sesji w obu punktach końcowych sesji SIP uniezależnia proces jej ustanowienia od czasowej niesprawności i błędów Ustanowienie sesji realizowane jako trójetapowy handshake : INVITE / 200 / ACK Niepowodzenie ustanowienia sesji INVITE / 4xx lub 5xx lub 6xx / ACK INVITE jest jedyną metodą SIP używającą trójetapowej procedury handshake 93

Transport wiadomości SIP Dowolna warstwa transportowa stosu protokołów IP TCP lub UDP Można wykorzystać inne protokoły transportowe Stream Control Transport Protocol (SCTP) W wieloodcinkowej ścieżce mogą być wykorzystywane i UDP i TCP Użyty w danym odcinku protokół transportowy protocol jest zapisywany w nagłówku via Wybór protokołu transportowego zależy od aplikacji 94

Ustanowienie sesji UA-UA SIP UA SIP UA 1 INVITE 2 100 Trying 3 180 Ringing 4 200 OK 5 ACK Media 95

Przykład sesji SIP SIP UA (A) Proxy Server Location Services SIP UA (B) 1 INVITE (SDPo) 2 Location Lookup Lookup Result 3 100 Trying 180 Ringing 200 OK (SDP T ) 5 7 9 4 INVITE (SDPo) 180 Ringing 200 OK (SDP T ) 6 8 Inicjowanie sesji 10 ACK Dwukierunkowa ścieżka dla głosu Sesja w toku 11 BYE 200 OK 12 Kończenie sesji 96

Negocjacja mediów Negocjacja mediów przy ustanawianiu sesji Model oferta-odpowiedź UA proponuje jeden lub kilka typów mediów, a drugi UA odpowiadając akceptuje bądź odrzuca jeden lub więcej proponowanych typów mediów Sekwencja - INVITE/200/ACK Dalsze negocjacje i zmiana typu mediów za pomocą ponownego żądania INVITE w trakcie wcześniej ustanowionej sesji Wykorzystanie SDP do opisu mediów Ograniczone możliwości negocjacji mediów Prace nad SDPng Wykorzystanie protokołu SAP do organizacji multimedialnych sesji komunikacyjnych w Internecie 97

SDP: negocjacja - model propozycja - odpowiedź Request (propozycja) Klient Res-Provisional Res-Provisional (odpowiedź-a) Res-Final (odpowiedź-b) Serwer propozycja - uporządkowany zbiór proponowanych sesji {opis strumieni} odpowiedź - (jeden) opis akceptowanej sesji opis strumieni 98

SDP RFC 4566 - parametry v= (protocol version) o= (originator and session identifier) s= (session name) i=* (session information) u=* (URI of description) e=* (email address) p=* (phone number) c=* (connection information -- not required if included in all media) b=* (zero or more bandwidth information lines) One or more time descriptions ("t=" and "r=" lines; see below) z=* (time zone adjustments) k=* (encryption key) a=* (zero or more session attribute lines) t= (time the session is active) r=* (zero or more repeat times) m= (media name and transport address) i=* (media title) c=* (connection information -- optional if included at session level) b=* (zero or more bandwidth information lines) k=* (encryption key) a=* (zero or more media attribute lines) 99

Oferta-odpowiedź zasady Odrzucenie oferowanego opisu strumienia mediów W odpowiedzi numer portu = 0 dla odrzucanego strumienia Nowe strumienie mediów tworzone przez: Nowe, dodatkowe opisy mediów poniżej istniejących, lub Ponowne wykorzystanie szczeliny używanej przez stary strumień medialny, który został odrzucony przez ustawienie nr portu =0 Istniejące strumienie mediów są usuwane przez stworzenie nowego opisu w SDP i podanie nr portu = 0 Strumień mediów można zawiesić, np. zażądać tymczasowo jednego lub więcej strumieni w trybie unicast, przez: Oznaczenie dotychczasowego strumienia mediów z sendrecv na sendonly Oznaczenie dotychczasowego strumienia mediów z recvonly na inactive 100

SDP - oferta-odpowiedź przykład Oferta SDP v=0 o=alice 2890844526 2890844526 IN IP4 host.anywhere.com s= c=in IP4 host.anywhere.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 Odpowiedź SDP v=0 o=bob 2890844730 2890844730 IN IP4 host.example.com s= c=in IP4 host.example.com t=0 0 m=audio 49920 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 0 RTP/AVP 31 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 101

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Version Identyfikacja używanej wersji SDP (0) nie używane przez SIP 102

SDP - przykład v=0 o= s= Origin c=in IP4 128.2.3.1 Nie używane przez SIP t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 103

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Subject Nie używane przez SIP 104

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Connection Sieć (IN - Internet), typ adresu (IP4 IP Version 4) i adres (128.2.3.1) 105

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Time Czas początku i końca nie używane przez SIP 106

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Media Typ mediów (wideo), numer portu (4004), typ (RTP/AVP Profil), i numer (Profile 14 lub 26) 107

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 14 RTP/AVP wideo z kodekiem (MPA) i częstotliwością próbkowania (90000Hz) 108

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 26 RTP/AVP wideo z kodekiem (JBEG) i częstotliwością próbkowania (90000Hz) 109

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Media Drugi typ mediów (audio), numer portu (4006), typ (RTP/AVP Profil), i numer (Profile 0 lub 4) 110

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 0 audio RTP/AVP z kodekiem (PCM μ-law) i częstotliwością próbkowania (8000Hz) 111

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 4 audio RTP/AVP z kodekiem (GSM) i częstotliwością próbkowania (8000Hz) 112

SDP przykład odpowiedzi v=0 o= s= c=in IP4 16.22.3.1 t= m=video 0 RTP/AVP 14 m=audio 6002 RTP/AVP 4 a=rtpmap:4 GSM/8000 Odrzucenie sesji wideo wskazanie przez numer portu = 0 Akceptacja sesji audio przez wybranie kodeka GSM i wysłaniu w odpowiedzi numeru portu 0 113

SIP wybrane kodeki (RFC 3551) KODEK OPIS Typ RTP/AVP G.711 μ law PCM. Nie wymagane transkodowanie do PSTN. Japonia i USA. 0 G.711 A law PCM. Nie wymagane transkodowanie do PSTN. Europa. G.729 Kodek z kompresją CELP (Code Excited Linear Prediction) G.723 Kodek z kompresją VAD (Voice Activity Detection) 8 18 4 AMR Adaptive Multirate Codec. Domyślny kodek w 3G dynamiczny ilbc Internet Low Bit Rate Codec. RFC 3952. GSM ETS 300 961. dynamiczny 3 114

Modyfikacja sesji: re-invite Modyfikacja ustanowionej sesji przez ponowne użycie metody INVITE zmiana: mediów typu sesji używanych typów kodeków źródłowych adresów IP numeru portu 115

Modyfikacja sesji SIP UA SIP UA SIP UA SIP UA 1 INVITE sdp1 Niepowodzenie re-invite nie powoduje zakłócenia trwającej sesji 2 180 Ringing 3 200 OK sdp2 4 ACK Media Session Powodzenie drugiego re-invite ustanawia nową 5 INVITE sdp2 sesję medialną, która zastępuje poprzednią 6 405 Not Acceptale 7 ACK 8 INVITE sdp2 9 200 OK sdp1 10 ACK New Media Session 116

Zakończenie sesji SIP UA 1 INVITE 3 100 Trying 5 180 Ringing 7 200 OK 8 ACK Media Session 10 BYE Serwer Proxy 2 INVITE 4 180 Ringing 6 200 OK 9 ACK BYE kończy sesję 11 BYE SIP UA 12 200 OK 13 200 OK Nie ma już żadnej sesji medialnej 117

SIP Przykładowe scenariusze zgłoszeń Zgłoszenie - udane Zgłoszenie - nieudane Subskrypcja obecności Rejestracja Powiadomienie o obecności Wymiana wiadomości natychmiastowych Zgłoszenie udane Zawieszenie zgłoszenia Przekazanie zgłoszenia Szczegółowe przykłady opisane w normach IETF: RFC 3665 - SIP Basic Call Flow Examples RFC 3666 - SIP Public Switched Telephone Network (PSTN) Call Flows SIP Service Examples I-D: A. Johnston et al 118

Ustanowienie sesji Identyfikator jak adres e-mail: <sip:alice@home.com> Terminal Alice rejestruje się w home.com REGISTER home.com SIP/2.0 To: sip:alice@home.com Contact: sip:alice@m2.home.com office.com Registrar alice bob alice@home.com => alice@m2.home.com m2.home.com home.com 119

Ustanowienie sesji Identyfikator jak adres e-mail: <sip:alice@home.com> Terminal Alice rejestruje się w domenie home.com Bob wybiera adres alice@home.com; wykorzystanie DNS office.com bob DNS lookup for sip.udp.home.com Resolve to pc4.home.com alice pc4.home.com m2.home.com home.com 120

Ustanowienie sesji Identyfikator jak adres e-mail: <sip:alice@home.com> Telefon Alice rejestruje się w home.com Bob wybiera adres alice@home.com; wykorzystanie DNS Terminal wysyła INVITE; rola UAC office.com bob INVITE sip:alice@home.com To: sip:alice@home.com From: Bob <sip:bob@office.com> c=in IP4 128.59.19.60 m=audio 8000 RTP/AVP 0 5 8 User agent client alice pc4.home.com m2.home.com home.com 121

Ustanowienie sesji Terminal wysyła INVITE; rola UAC Serwer może obsłużyć zgłoszenie w bieżącej lokalizacji office.com bob INVITE sip:alice@m2.home.com To: sip:alice@home.com From: Bob <sip:bob@office.com> pc4.home.com m2.home.com alice Proxy home.com 122

Ustanowienie sesji Terminal wysyła INVITE; rola UAC Serwer może obsłużyć zgłoszenie w bieżącej lokalizacji Sygnał dzwonienia w terminalu Alice; rola UAS office.com bob Proxy SIP/2.0 180 Ringing alice pc4.home.com m2.home.com home.com User agent server 123

Ustanowienie sesji Terminal wysyła INVITE; rola UAC Serwer może obsłużyć zgłoszenie w bieżącej lokalizacji Sygnał dzwonienia w terminalu Alice; rola UAS Gdy Alice odbierze zgłoszenie jest ono akceptowane i terminal Boba wysyła wiadomość ACK kończącą ustanowienie sesji office.com SIP/2.0 200 OK c=in IP4 135.180.144.32 m=audio 9000 RTP/AVP 0 8 alice bob pc4.home.com m2.home.com home.com 124

Ustanowienie sesji Zakodowane pakiety audio przesyłane za pomocą protokołu RTP office.com alice bob home.com 125

Ustanowienie sesji Zakodowane pakiety audio przesyłane za pomocą protokołu RTP Jeśli którakolwiek ze stron zakończy sesję wysyłana jest wiadomość BYE office.com BYE sip:bob@office.com alice bob home.com 126

Sesja SIP DNS Server Location Server Outbound Proxy Server 1. INVITE Contact: A SDP A 2. 100 Trying Inbound Proxy Server 1. A wybiera identyfikator SIP AOR URI sip:b@wcom.com. Agent użytkownika A wysyła INVITE do serwera Outbound Proxy. 2. Outbound Proxy wysyła odpowiedź 100 Trying User Agent A User Agent B (nie dołączony do sieci) 127

Sesja SIP DNS Server Location Server 3. DNS Query: wcom.com? Outbound Proxy Server 1. INVITE Contact: A SDP A 2. 100 Trying 4. Response: 1.2.3.4 Inbound Proxy Server 3. Outbound Proxy inicjuje zapytanie do DNS w celu znalezienia serwera proxy dla domeny wcom.com 4. DNS odpowiada adresem IP serwera Proxy dla domeny wcom.com User Agent A User Agent B (nie dołączony do sieci) 128

Sesja SIP DNS Server Location Server 3. DNS Query: wcom.com? Outbound Proxy Server 1. INVITE Contact: A SDP A 4. Response: 1.2.3.4 5. INVITE Contact: A SDP A 6. 100 Trying Inbound Proxy Server 5. Outbound Proxy wysyła wiadomość INVITE do serwera Inbound Proxy 6. Inbound Proxy wysyła odpowiedź 100 Trying 2. 100 Trying User Agent A User Agent B (nie dołączony do sieci) 129

Sesja SIP DNS Server Location Server 3. DNS Query: wcom.com? Outbound Proxy Server 1. INVITE Contact: A SDP A 2. 100 Trying 4. Response: 1.2.3.4 5. INVITE Contact: A SDP A 6. 100 Trying 7. LS Query: B? 8. Response: Not Signed In Inbound Proxy Server 7. Inbound Proxy komunikuje się z Location Server 8. Location Server odpowiada Not Signed In User Agent A User Agent B (nie dołączony do sieci) 130

Sesja SIP DNS Server Location Server 3. DNS Query: wcom.com? Outbound Proxy Server 1. INVITE Contact: A SDP A 2. 100 Trying 4. Response: 1.2.3.4 6. 100 Trying 7. LS Query: B? 8. Response: Not Signed In 5. INVITE Contact: A SDP A 9. 480 Temporarily Unavailable 10. ACK Inbound Proxy Server 9. Inbound Proxy wysyła odpowiedź 480 Temporarily Unavailable 10. Outbound Proxy wysyła odpowiedź ACK User Agent A User Agent B (nie dołączony do sieci) 131

Sesja SIP DNS Server Location Server 3. Zapytanie do DNS : wcom.com? Outbound Proxy Server 4. Odpowiedź: 1.2.3.4 5. INVITE Contact: A SDP A 6. 100 Trying 7. Zapytanie do LS : B? 8. Response: Not Signed In Inbound Proxy Server 11. Outbound Proxy przekazuje odpowiedź 480 do A. 12. A wysyła odpowiedź ACK 1. INVITE Contact: A SDP A 2. 100 Trying 9. 480 Temporarily Unavailable 10. ACK 11. 480 Temporarily Unavailable 12. ACK User Agent A User Agent B (nie dołączony do sieci) 132

SIP - obecność DNS Server Presence Server Outbound Proxy Server 1. SUBSCRIBE 2. SUBSCRIBE 3. SUBSCRIBE Inbound Proxy Server 1. A chce być informowany o statusie obecności B i w tym celu subskrybuje informację za pomocą wiadomości SUBSCRIBE 2. Outbound Proxy przekazuje wiadomość do Inbound Proxy 3. Inbound Proxy przekazuje wiadomość do serwera obecności B User Agent A User Agent B (nie dołączony do sieci) 133

SIP - obecność DNS Server Presence Server 3. SUBSCRIBE 4. 200 OK Outbound Proxy Server 1. SUBSCRIBE 2. SUBSCRIBE 5. 200 OK Inbound Proxy Server 4. Presence Server zezwala na subskrypcję wysyłając 200 OK. 5. i 6. 200 OK przekazywana zwrotnie do A. 6. 200 OK User Agent A User Agent B (nie dołączony do sieci) 134

SIP - obecność DNS Server Presence Server Outbound Proxy Server 11. 200 OK 7. NOTIFY <Not Signed In> 8. NOTIFY <Not Signed In> 12. 200 OK Inbound Proxy Server 7. Presence Server wysyła wiadomość NOTIFY zawierającą status obecności B (nie dołączony do sieci). 8. i 9. NOTIFY jest zwracana doa 9. NOTIFY <Not Signed In> 10. A potwierdza odbiór powiadomienia 200 OK. 10. 200 OK 11. i 12. 200 OK jest przekazywana zwrotnie do serwera obecności (Presence Server) B User Agent A User Agent B (nie dołączony do sieci) 135

SIP - Rejestracja Outbound Proxy Server DNS Server 2. Update database: B = B@2.3.4.5 1. REGISTER Contact: B@2.3.4.5 Location Server Outbound Proxy Server 1. B włącza swój telefon SIPowy który wysyła wiadomość REGISTER zwierającą identyfikator FQDN URI agenta użytkownika (UA) B 2. Wiadomość aktualizująca bazę danych jest wysyłana do Location Server User Agent A User Agent B 136

SIP - Rejestracja Outbound Proxy Server DNS Server 2. Update database: B = B@2.3.4.5 Location Server 3. OK Outbound Proxy Server 3. Potwierdzenie aktualizacji bazy danych Location Server 4. Potwierdzenie rejestracji za pomocą odpowiedzi 200 OK 1. REGISTER Contact: B@2.3.4.5 4. 200 OK Contact: B@2.3.4.5 User Agent A User Agent B 137

SIP - obecność DNS Server Presence Server Outbound Proxy Server 15. NOTIFY <Signed In> 16. 200 OK User Agent A 14. NOTIFY <Signed In> 17. 200 OK 13. NOTIFY <Signed In> 18. 200 OK User Agent B Inbound Proxy Server 13. Presence Server dowiaduje się o nowym statusie B od Location Server i wysyła wiadomośc NOTIFY zawierającą nowy status B (Signed In). 14. i 15. NOTIFY przekazywana zwrotnie do A 16. A potwierdza odbiór powiadomienia za pomocą 200 OK. 17. i 18. 200 OK jest przekazywana zwrotnie do Presence Server. 138

SIP Natychmiastowa komunikacja Outbound Proxy Server 1. MESSAGE <Czy możesz rozmawiać?> 8. 200 OK DNS Server 2. MESSAGE <Czy możesz rozmawiać?> 7. 200 OK Location Server 3. LS Query: B? 4. Response: sip:b@2.3.4.5 5. MESSAGE <Czy możesz rozmawiać?> Inbound Proxy Server 1. A wysyła natychmiastową wiadomośc do B czy możesz rozmawiać? w żądaniu MESSAGE 2., 3. i 4. Żądanie MESSAGE jest przekazywane, i zapytanie kierowane do Location Server 5. Inbound Proxy przekazuje wiadomość MESSAGE do B. 6. User Agent B odpowiada 200 OK. 7. i 8. 200 OK jest przekazywana zwrotnie do A. 6. 200 OK User Agent A User Agent B 139

SIP Natychmiastowa komunikacja Inbound Proxy Server Location Server 5. LS Query: A? 6. Odpowiedź: sip:a@4.5.3.2 7. MESSAGE <Tak> 8. 200 OK 4. MESSAGE < Tak> 9. 200 OK 2. Zapytanie do DNS: mci.com? 1. MESSAGE < Tak> DNS Server 3. Odpowiedź: 5.6.7.8 Outbound Proxy Server 10. 200 OK 1. B wysyła natychmiastową wiadomośc Tak w MESSAGE wysyłanej do AOR URI A 2. i 3. Zapytanie do DNS Server 4. Outbound Proxy przekazuje MESSAGE do Inbound Server. 5. i 6. Zapytanie do Location Server 7. Inbound Proxy przekazuje wiadomość do A. 8. User Agent A odpowiada 200 OK. 9. i 10. 200 OK jest przekazywana zwrotnie do B User Agent A User Agent B 140

SIP próba zgłoszenia Outbound Proxy Server 1. INVITE Contact: A SDP A 2. 100 Trying DNS Server 4. 100 Trying Location Server 5. LS Query: B 6. Response: sip:b@2.3.4.5 3. INVITE Contact: A SDP A 7. INVITE Contact: A SDP A Inbound Proxy Server 1. - 5. A ponawia żądanie INVITE do B które przechodzi przez 2 serwery Proxy 6. Location Server odpowiada identyfikatorem FQDN SIP URI telefonu SIPowego B 7. Inbound Proxy Server przekazuje INVITE do telefonu SIPowego B User Agent A User Agent B 141

SIP zestawienie połączenia DNS Server Location Server Outbound Proxy Server 9. 180 Ringing Inbound Proxy Server 8. User Agent B sygnalizuje połączenie B i wysyła odpowiedź 180 Ringing 10. 180 Ringing 8. 180 Ringing 9. i 10. 180 Ringing jest przekazywane zwrotnie do A User Agent A User Agent B 142

SIP zestawienie połączenia DNS Server Location Server Outbound Proxy Server 10. 180 Ringing 9. 180 Ringing 12. 200 OK Contact: B SDP B 13. 200 OK Contact: B 8. 180 Ringing SDP B Inbound Proxy Server 11. 200 OK Contact: B SDP B 11. B przyjmuje zgłoszenie UA B wysyła odpowiedź 200 OK 12. i 13. 200 OK jest przekazywana zwrotnie do A User Agent A User Agent B 143

SIP zestawienie połączenia DNS Server Location Server Outbound Proxy Server 10. 180 Ringing 14. ACK 9. 180 Ringing 12. 200 OK Contact: B SDP B 13. 200 OK Contact: B 8. 180 Ringing SDP B Media (RTP) Inbound Proxy Server 11. 200 OK Contact: B SDP B 14. ACK jest wysyłane przez A aby potwierdzić zestawienie połączenia omijającego serwery proxy Rozpoczęcie sesji medialnej między A i B User Agent A User Agent B 144

SIP - zawieszenie (re-invite) DNS Server Location Server 15. B zawiesza A wysyłając re-invite. 16. A potwierdza 200 OK. 17. B wysyła ACK to A. Outbound Proxy Server Inbound Proxy Server brak strumienia mediów między A i B. 15. INVITE SDP a=sendonly 16. 200 OK SDP A User Agent A 17. ACK User Agent B 145

SIP przekierowanie zgłoszenia DNS Server Location Server Outbound Proxy Server Inbound Proxy Server 18. B przekazuje A do C używając REFER. 19. Transfer jest akceptowany przez A za pomocą odpowiedzi 202 Accepted 18 REFER Refer-To: sip:c@wcom.com 17. 202 Accepted User Agent A User Agent B 146

SIP przekierowanie zgłoszenia Outbound Proxy Server 1. INVITE Contact: A Ref-By: B SDP A 2. 100 Trying DNS Server 4. 100 Trying Location Server 5. Zapytanie do LS : C? 6. Odpowiedź: sip:c@6.7.8.9 3. INVITE Contact: A Ref-By: B SDP A Inbound Proxy Server 7. INVITE Contact: A Ref-By: B SDP A User Agent C 1. do 5. A wysyła nowe INVITE do C które przechodzi przez 2 serwery Proxy 6. Location Server odpowiada identyfikatorem FQDN SIP URI telefonu SIPowego C 7. Inbound Proxy Server przekazuje INVITE do telefonu SIPowego C User Agent A User Agent B 147

SIP przekierowanie zgłoszenia Outbound Proxy Server 10.180 Ringing 14. ACK DNS Server 9. 180 Ringing 12. 200 OK Contact: C SDP C 13. 200 OK Contact: C 8. 180 Ringing SDP C Media (RTP) Location Server Inbound Proxy Server 11. 200 OK Contact: C SDP C User Agent C 8. UA C sygnalizuje C i wysyła odpowiedź 180 Ringing 9. i 10. 180 Ringing jest przekazywane zwrotnie do A. 11. C przyjmuje zgłoszenie call i wysyła odpowiedź 200 OK 12. i 13. 200 OK jest zwrotnie przekazywana do A. 14. A wysyła ACK aby potwierdzić zestawienie połączenia. Rozpoczęcie sesji między A i C User Agent A User Agent B 148

SIP przekierowanie zgłoszenia DNS Server Location Server Outbound Proxy Server 20. NOTIFY <200 OK> 21. 200 OK Inbound Proxy Server 20. Powiadomienie o udanym transferze wysyłane do B w wiadomości NOTIFY 21. B wysyła odpowiedź 200 OK na NOTIFY 22. B rozłącza się wysyłając BYE 23. Wysyłane jest 200 OK jako odpowiedź na BYE 22. BYE User Agent A 23. 200 OK User Agent B 149

SIP zastosowania, itd...

Wykorzystanie metody INFO Użytk. PSTN Brama Brama Użytk. PSTN 1 IAM 6 ANM Głos PCM 8 USR 2 INVITE 5 200 OK 7 ACK Media RTP 9 INFO 11 200 OK 3 IAM 4 ANM 10 USR Głos PCM IAM: Initial Address Message USR: User-to-User Message ANM: Answer Message 151

Sterowanie zgłoszeniami 3PCC Możliwość sterowania przez trzecią stronę sesją między dwoma innymi stronami -mechanizm przydatny przy realizacji wielu usług, np.: Click-to-call Click-to-fax Dystrybucja zgłoszeń (ACD) Implementacja INVITE Sterownik odbiera INVITE, odpowiada, następnie przekazuje INVITE do strony trzeciej. Sterownik utrzymuje ścieżkę sygnalizacji przełączając SDP między odnogami zgłoszenia, przezroczyście kontrolując je. REFER 152

3 rd Party Call Control 3PCC Zestawienie połączenia Sterownik A B INVITE bez SDP Rozłączenie 200 SDP A1 ACK SDP wstrzymane INVITE SDP B 200 SDP A2 ACK INVITE bez SDP 200 SDP B ACK SDP A2 Sterownik A B RTP BYE z A 200 OK BYE z CTRL 200 OK RTP por: I-D draft-ietf-sipping-3pcc 153

Przykład 3pcc: Click-to-Dial B A Użytk. PC U Telefon SIP Sterownik Stanowisko Agenta HTTP POST 200 OK INVITE bez mediów 1. Użytkownik inicjuje połączenie C2D 2. Sterownik wysyła INVITE do A bez SDP i wstrzymuje SDP z A 3. Sterownik wysyła INVITE do B bez SDP i wstrzymuje SDP od B INVITE bez SDP 200 z SDP 200 no media ACK INVITE SDP U1 4. Sterownik wysyła INVITE do A z SDP od B i dostaje nowe SDP Od Agenta A 5. Sterownik wysyła ACK do B z SDP z nowym SDP od A 6. Użytk. B rozmawia z agentem A ACK SDP A RTP 200 SDP A ACK 154

Sterowanie sesją - REFER Użytk. A Użytk. B Użytk. C INVITE sip:userc@anywhere.com SIP/2.0 Via: SIP/2.0/UDP 100.101.102.103:5060 1 INVITE To: <sip:userc@anywhere.com> 2 100 Trying From: User B <sip:userb@there.com> 3 180 Ringing Call-ID: 383874109476@there.com CSeq: 67 INVITE 4 200 OK REFER sip:userb@there.com SIP/2.0 Contact: <sip:userb@100.101.102.103> Via: SIP/2.0/UDP 4.3.2.1:5060 5 ACK Referred-By: <sip:usera@here.com>; To: User B <sip:userb@there.com> Media Session ref=<sip:userc@anywhere.com> From: User A <sip:usera@here.com> Content-Length: Call-ID: a5-32-43-12-77@4.3.2.1 6 REFER Refer-To: C CSeq: 2 REFER 7 200 OK Refer-To: <sip:userc@anywhere.com> 8 Referred-By: INVITE Referred-By:A <sip:usera@here.com>; 9 BYE 10 180 ref=<sip:userc@anywhere.com> Ringing 11 200 OK Contact: <sip:usera@4.3.2.1> 12 Content-Length: 200 OK 0 13 ACK Media Session 155

SIP QoS A B RESERVATION INVITE + SDP1 (QoS) 183: Progress + SDP2 PRACK 200:OK (PRACK) UPDATE +SDP3 200:OK (UPDATE) +SDP4 180: Ringing RESERVATION

SIP uwzględnienie QoS SIP UA Proxy Server Proxy Server SIP UA 1 INVITE 3 100 Trying 9 183 Session Progress 10 PRACK 15 200 OK 2 INVITE 5 100 Trying 8 183 Session Progress 11 PRACK 14 200 OK QoS SETUP 4 INVITE 6 100 Trying 7 183 Session Progress 12 PRACK 13 200 OK 157

SIP uwzględnienie QoS SIP UA Proxy Server Proxy Server SIP UA 16 COMET 17 COMET 18 COMET 21 200 OK 24 180 Ringing 27 200 OK 20 200 OK 23 180 Ringing 26 200 OK 19 200 OK 22 180 Ringing 25 200 OK 28 ACK 29 ACK 30 ACK Sesja medialna z QoS 158

Przykład mała firma Bramy w sieci PSTN Goszczona komunikacja IP DSL lub E1do operatora Aplikacje SIP UA softphone Ruter dostępowy QoS SIP Firewall/NAT Przełącznik LAN Ethernet Brama lokalna Telefony SIPowe Linie PSTN do op.lokalnego 159

Przykład firma średniej wielkości Telefony PBX Bramy w sieci PSTN N x E1do operatora Goszczona komunikacja IP PBX Brama firmowa Aplikacje SIP UA softphone Ruter dostępowy QoS SIP Firewall/NAT Przełącznik LAN Ethernet Brama lokalna Telefony SIPowe Linie PSTN do op.lokalnego 160

Bezpieczeństwo SIP Ustanawianie sesji uwierzytelnienie S/MIME (Secure MIME) TLS (Transmission Layer Security) Przejście przez Firewall SIP RTP SIP Application Level (Layer) Gateway (ALG) 161

SIP ALG przejście przez Firewall lient SIP ALG Firewall Serwer 1 INVITE sdp A 3 100 Trying 5 180 Ringing 7 200 OK sdp ALG 8 ACK Media 10 BYE 2 INVITE sdp ALG 9 ACK 11 BYE 4 180 Ringing 6 200 OK sdp B Media Firewall pozwala na sygnalizację SIP i RTP tylko do ALG proxy pozostałe pakiety SIP i RTP są blokowane 13 200 OK Brak mediów 12 200 OK Działa również przy przejściu przez NAT 162

RFC 3261 nowe usługi Specyficzny sygnał dzwonienia (Customized Ringing): Zaufany serwer proxy (trusted proxy) może wstawić nowy nagłówek Alert- Info do wiadomości INVITE. Specyficzny ekran (Screen Pops): Zaufany serwer proxy (trusted proxy) może wstawić nowe pole nagłówka Call- Info do wiadomości INVITE. Identyfikator URI może być typu HTTP i może zawierać zaprogramowane przyciski ( soft keys ) Oddzwanianie (Callback): Nagłówki Reply-To i In-Reply-To wspomagające połączenia zwrotne Obsługa zapowiedzi słownych (Announcement handling): UAS lub proxy nie musi podejmować decyzji dotyczących odtwarzania zapowiedzi: Odpowiedź Error uwzględnia pole nagłówka Error-Info które zawiera identyfikator URI zapowiedzi UAC podejmuje decyzje stosowne do wykorzystywanego interfejsu użytkownika 163

Usługi natychmiastowej komunikacji i obecności

Obecność Osoba - wola, zdolność i chęć do komunikacji z wykorzystaniem różnych urządzeń, form wymiany informacji i typów mediów Obiekt - zagregowany widok dynamicznie zmieniających się atrybutów obiektu Atrybuty: Informacja o użytkownikach określonej kategorii Informacja o statusie użytkownika Lokalizacja w sensie fizycznym lub logicznym Status komunikacyjny Wola i chęć komunikacji Preferowane środki komunikacji 165

Znaczenie obecności Główne aspekty: doprowadzenie do udanego połączenia innowacyjne kategorie usług Problem finalizowania połączeń relatywnie niewielka frakcja połączeń prowadzi do rozmowy z pożądaną osobą: Rozwiązanie: inicjowanie połączenia w sytuacji gdy wywoływana osoba jest dostępna z uwzględnieniem informacji o preferowanym trybie komunikacji 166

Obecność - perspektywy Gotowość do komunikacji: tylko gdy pilne najpierw telefon komórkowy, a w przypadku niepowodzenia telefon stacjonarny do pracy wyłącznie e-mail definicja okien czasowych Możliwości: głos, wideo, poczta głosowa, poczta elektroniczna sieć mobilna i stacjonarna wybór języka komunikacja w relacjach formalnych i nieformalnych 167

Podstawowa obecność Znaczenie obecności początkowo: czy mogę wysłać wiadomość i oczekiwać odpowiedzi? obecnie: jakiego trybu użyć połączenie głosowe czy IM? Czy mój telefon nie będzie przeszkadzać w spotkaniu? Obecność w Yahoo, MSN, Skype on-line & off-line Przydatna w czasach dostępu wdzwanianego, ale obecnie użytkownicy są technicznie dostępni cały czas Potrzeba dokładniejszej informacji kontekstowej + prosty status ( poza stanowiskiem pracy ) Ustawiany ręcznie rzadko aktualny Nie zapewnia dostatecznej informacji kontekstowej przydatnej do sterowania interaktywną komunikacją 168

Wykorzystanie obecności w usługach Obecność Tekst Obraz Głos E-mail usł.katalogowe wideo Poczta głosowa Synchronizacja kalendarzy usł.mobilne 3G Telefony i aplikacje telefoniczne Komunikacja natychmiastowa konferencja 169

SIP model obecności 170

Natychmiastowa komunikacja... możliwość wymiany zwięzłych wiadomości z niewielkim opóźnieniem... Istota usługi IM: możliwość wymiany dowolnych treści tworzących wiadomość, w czasie quasi-rzeczywistym Praca w grupie formalnej nieformalnej Zasadnicze znaczenie ma informacja o obecności i statusie dostepności 171

Usługi IMP - Instant Messaging &Presence Możliwość swobodnej wymiany wiadomości w zdefiniowanej wcześniej grupie Rozwinięcie idei SMS od tekstu do MM Działanie usługi wykorzystuje informacje o obecności i dostępności adresatów Dotyczy sieci stacjonarnych i mobilnych Możliwość wyboru najdogodniejszej formy komunikacji Naturalne w domenie IP* Wbudowane mechanizmy w protokole SIP 172

Dlaczego usługi IMP? Obecność jest integralną częścią usług o elastycznych scenariuszach działania Rozwinięcie IN Możliwość uwzględnienia wielu atrybutów kontekstu komunikacji: bieżący status lokalizacja stan połączenia preferowany tryb i media komunikacyjne gotowość do komunikacji 173

Przykładowe kategorie usług Komunikacja natychmiastowa Spektrum typów wiadomości: tekst - mm Możliwość łączenia wielu trybów i zmian w toku Usługi związane z obecnością i statusem dostępności Usługi wykorzystujące informację o lokalizacji Usługi konferencyjne ad hoc Połączenie wymienionych usług 174

Dlaczego SIP do realizacji usług IM&P? Dualność Głównym celem informacji o obecności i dostępności jest ułatwienie podejmowania komunikacji Status obecności i dostępności wnioskowany na podstawie bieżącego stanu komunikacji użytkownika i jego urządzeń SIP i SIMPLE kompletne rozwiązanie dla komunikacji multimedialnej Ustanawianie i zarządzanie sesjami dla różnych typów mediów i trybów komunikacji (głos, wideo, IM) Kluczowe znaczenie obecności Bogaty model obecności zdefiniowany przez SIMPLE Niski koszt wykorzystanie istniejącej infrastruktury Komunikacja Obecność 175

Status obecności i dostępności 176

Usługi IMP - normalizacja IETF grupy robocze IMPP i SIMPLE RFC 2778: A Model for Presence and Instant Messaging RFC 2779: Instant Messaging / Presence Protocol Requirements RFC 3856: A Presence Event Package for SIP RFC 3857: A Watcher Information Event Template-Package for SIP RFC 3863: Presence Information Data Format (PIDF) Nowa Grupa: XMPP Extensible Message and Presence Protocol (Jabber) Implementacja IMP w Windows XP MSN Windows Messenger Inicjatywa Wireless Village 177

Komunikacja uwzględniająca kontekst kontekst = powiązane ze sobą warunki, w których istnieje jakiś stan i zachodzą zdarzenia Dowolna informacja o potencjalnych uczestnikach sesji komunikacyjnej Obejmująca wszystkie strony, które mogą uczestniczyć w komunikacji Czas Możliwości funkcjonalne Lokalizacja Aktywność/dostępność Dane z czujników(nastrój, bio) Powiązanie z kalendarzem osobistym Preferencje użytkownika Kierowanie połączeń uwarunkowane lokalizacją Zdarzenia związane z lokalizacją np. pojawienie się w pobliżu obecność Problemy ochrony prywatności podobne jak dla danych lokalizacyjnych 178

Nowe usługi oparte na obecności Inicjowanie zgłoszeń z uwzględnieniem stanu Ab B Czy Ab B jest (dla mnie) bezpośrednio dostępny? Czy jest skłonny przyjmować zgłoszenia? Czy jest zajęty inną rozmową? Czy mogę się dołączyć? Rozwiązanie problemu nieudanych połączeń Zmiana trybu organizacji konferencji Od ad-hoc do zaplanowanej 179

Wykorzystanie protokołu SIP do realizacji usług IMP Sieciowy serwer SIP Proxy SUBSCRIBE SUBSCRIBE Lokalny Serwer SIP Proxy SUBSCRIBE Lokalny Serwer SIP Proxy SUBSCRIBE REGISTER/ PUBLISH SUBSCRIBE NOTIFY Aplikacje UA Obecności NOTIFY Serwer usługi obecności Serwery Proxy, Registrar Serwer Agenta Obecności Obserwująca: Hanka Obecny (obserwowany): Marek 180

SIP - transport wiadomości błyskawicznych MESSAGE im:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1 To: User B <im:userb@there.com> From: User A <im:usera@here.com> Call-ID: a5-32-43-12-77@4.3.2.1 CSeq: 1 MESSAGE Content-Type: text/plain Content-Length: 15 Hi, how are you? 181

SIP - połączenie po zwolnieniu SIP UA 1 INVITE 2 486 Busy Here 3 ACK SIP UA Wywoływany użytkownik zajęty! 4 SUBSCRIBE 5 200 OK 6 NOTIFY 7 200 OK Wywołujący żąda powiadomienia o ustaniu zajętości Ab. B Wywoływany wysyła powiadomienie 8 INVITE 9 200 OK 10 ACK Ab. B oddzwania i ustanawia sesję sesja medialna 182

Przykład: samoorganizująca się konferencja Formularz z uczestnikami przekazywany do sterownika (http POST) Sterownik inicjuje sesję na serwerze obecności (PS) wiadomość SUBSCRIBE Aktualizacja statusu obecności po odbiorze wiadomości NOTIFY Gdy wszyscy on-line Wysłanie IM do HTTP URL w celu akceptacji Użycie mechanizmu 3pcc w celu dołączenia uczestników do MS MS pobiera skrypt VoiceXML z AS http POST każdej akceptacji / odmowy Serwer Mediów Serwer Aplikacji Serwer usługi konferencyjnej Serwer usługi obecności Wykorzystanie 3pcc w celu dołączenia każdego uczestnika do tego samego URL konferencji Obecność HTTP IM SIP 183

Usługa Push-To-Talk Komunikacja grupowa Half-duplex a la walkie-talkie dla GSM/UMTS Przykład wdrożenia - Nextel USA - Direct Connect Problemy Niedostępność czasowa użytkowników Brak gotowości do komunikacji Rozwiązanie Obecność - inicjujący komunikację zna stan adresata Włączony telefon Zaangażowanie w inną rozmowę Gotowość do komunikacji 184

Model danych dla obecności Osoba (presentity) (perspektywy) kalendarz komórka ręcznie Usługi alice@example.com audio, video, text r42@example.com video Urządzenia 185

Dane dla obecności Źródła obecności PUBLISH tworzenie widok (łaczenie) Obecność surowe dane Filtrowanie związane z prywatnością XCAP Wybór najlepszych źródeł Zależna od obserwującego XCAP Rozstrzyganie sprzeczności Polityka kompozycji Polityka prywatności (nie zdefiniowane) draft-ietf-simple-presence-data-model 186

Dane dla obecności kandydat na dok.obecn. filtr obserwatora Dane surowa obecność post-processing łączenie Usuwanie zbędnych Danych SUBSCRIBE Różnica względem Poprzedniego powiadomienia Obserwator NOTIFY finalny dokument obecności 187

Złożoność Łączenie Program: złożone warunki i ich transformacja Reguły: aktualność; Jakość źródła Suma krotek 188

Perspektywy: źródła Łączenie rozstrzyganie sprzeczności Wg agendy użytkownik na spotkaniu faktycznie za kierownicą Łączenie polega na informacji ze źródeł Gromadzenie: sensory, ręczne, kalendarz Względna wiarygodność (sensor vs. ręczne ustawienie.) Kiedy ostatnio aktualizowana? Czy miejsce i czas czynią aktywność prawdopodobną? Plany dodawania informacji źródłowych do danych o obecności Na początek dane geograficzne 189

Architektury GEOPRIV i SIMPLE DHCP rule maker XCAP (reguły) target publication interface location server notification interface location recipient GEOPRIV presentity PUBLISH presence agent SUBSCRIBE NOTIFY watcher SIP presence caller INVITE INVITE callee SIP call 190

RPID = bogata obecność Zapewnia obserwatorom lepszą informację o statusie co, gdzie, jak obserwowanych (presentities) Ułatwia odpowiedni tryb komunikacji: poczekanie na koniec spotkania wymiana wiadomości tekstowych zamiast połączenia telefonicznego szybkie połączenie nim coś się zdarzy np. odjazd pociagu Wykorzystanie informacji z kalendarza osobistego i współpracowników Lub informacji dostarczonych przez sensory z otoczenia Filtrowanie wg ról i sfer życia Nieujawnianie informacji dotyczących sfery osobistej związanych np. z wypoczynkiem 191

Rola obecności w kierowaniu połączeń Dwa tryby: Obserwator (watcher) używa informacji o obecności w celu wybrania odpowiednich kontaktów porada inicjujący sesję może zignorować i dzwonić w trakcie spotkania Ruting wg polityki Mniejsza elastyczność inteligencja maszyny jeśli z działania wynika, że spotkanie, to przekieruj do krotki wskazując asystenta próbuj najczęstszy aktywny kontakt najpierw (sekw.rozg.) PUBLISH translate RPID CPL PA NOTIFY LESS INVITE 192

RPID: bogata obecność <activities> <class> <mood> <place-is> <place-type> <privacy> <relationship> <service-class> <sphere> <status-icon> <time-offset> <user-input> <person> <tuple> <device> 193

Bogata obecność: czas Obecność dotyczy tu i teraz Lecz często ma (niedawną) przeszłość np. kalendarz Lub przyszłość za dwie godziny wyjeżdżam zaraz wracam Co pozwala obserwatorowi planować komunikację od RPID do czas status teraz status 194

Bogata obecność interakcja użytkownika z urządzeniami Aktywność w posługiwaniu się urządzeniem? Np. mikrofon, klawiatura, myszka activity idle active idle-threshold 195

Podsumowanie

Status telefonii IP Wojna protokołów : SIP zdobywa coraz silniejszą pozycję H.323 ma nadal silną pozycję jeśli chodzi o produkty Nadal konieczna obsługa SS7 dla usług głosowych jakości operatorskiej ATM, IP MPLS i Diffserv Gwarancje QoS z akceptowalnym poziomem opóźnień 197

Potencjał SIP dla telekomunikacji IP SIP umożliwia realizację innowacyjnych usług łączących w sobie światy klasycznej telefonii i Internetu: Web E-mail Chat Obecność i status dostępności (Presence) Wymiana wiadomości na bieżąco (Instant Messaging) Tryb sesyjny IM możliwość wymiany plików Usługi hybrydowe PINT i SPIRITS Usługi z wykorzystaniem podejścia 3pcc Integracja kluczem do masowych zastosowań 198

SIP możliwość rozszerzeń SIP zaprojektowany tak by w UA można było implementować nowe rozszerzenia przez dodanie nowych nagłówków i treści wiadomości bez narzucania wymogu by nowe funkcje były zaimplementowane w serwerach pośrednich (np. Proxy) Domyślnie serwer Proxy przekazuje dalej nierozpoznane rodzaje żądań i nagłówki 199

SIP w innych organizacjach normalizacyjnych 3GPP Specyfikacja IMS w 3GPP R5 oparta na SIP SIP w domenie IP Multimedia Potencjalnie może byc głównym podmiotem wykorzystującym SIP International Softswitch Consortium SIP do komunikacji między węzłami softswitch SIP do komunikacji w relacji softswitch-serwer aplikacji SIP rozważany do komunikacji w relacji serwer aplikacjiserwer mediów Java Community Process JAIN SIP API opublikowana specyfikacja i udostępniona implementacja referencyjna (Dynamicsoft) SIP Servlets faza początkowa ETSI Tiphon Dotychczas architektura oparta na H.323, obecnie również SIP ETSI Gospodarz jednego ze spotkań SIP Bakeoff Specyfikacja zgodności 200

Dojrzewanie standardów dotyczących SIP RFC 3261 RFC 3262 RFC 3263 RFC 3264 RFC 3265 RFC 3351 RFC 3361 RFC 3372 SIP: Session Initiation Protocol Reliability of Provisional Responses in Session Initiation Protocol Locating SIP Servers An Offer/Answer Model with Session Description Protocol (SDP) Specific Event Notification User Requirements for SIP in Support of Deaf, Hard of Hearing and Speech-impaired Individuals Dynamic Host Configuration Protocol (DHCP-for-IPv4) Option for SIP Servers Session Initiation Protocol for Telephones (SIP-T) Wydział Elektroniki i Technik Studia Podyplomowe Informacyjnych, - Telekomunikacja, Informatyka i Zarządzanie 201

Od IETF SIP. Serwer SIP DNS Serwer SIP Żądanie Sieć szkieletowa IP Odpowiedź Klient SIP Klient SIP Klient SIP Klient SIP 202

do 3GPP SIP DNS DNS HSS P-CSCF Sieć szkieletowa IP I-CSCF S-CSCF Serwer aplikacji SLF 203

Pożegnanie z tradycyjnym telefonem? 204

SIP Trunking Usługa oferowana przez ITSP (Internet Telephony Service Provider), która umożliwia firmom posiadającym centrale abonenckie (PBX) używać Voice-over-IP (VoIP) również poza siecią firmową przez wykorzystanie dostępu internetowego 205

Podsumowanie - znaczenie SIP Dostawcy i operatorzy wykorzystują SIP Softswitch (MGC), bramy, serwery aplikacji, terminale Działają sieci oferujące usługi SIP Level3, AT&T, Telia, MCI Worldcom (#) Instytucje normalizacyjne wspierają SIP ETSI TIPHON: oprócz H.323 uwzględniony SIP ETSI: Parlay/OSA uwzględnia SIP i usługi IMP ITU-T: uwzględnia SIP i usługi hybrydowe w zaleceniach dotyczących sieci inteligentnej IN CS4 3GPP/ UMTS: SIP przyjęto jako protokół sterowania połączeniami w IMS 3GPP Release 5-12 206

SIP zasoby w Internecie www.sipforum.com www.cs.columbia.edu/sip www.tech-invite.com www.sipcenter.com 207

Normalizacja SIP 208

209

SIP eksplozja normalizacji IETF SIP - 950 stron! Tylko jedna z norm 3GPP 715 stron! Digital cellular telecommunications system (Phase 2+); Universal Mobile Telecommunications System (UMTS); Signalling flows for the IP multimedia call control based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP); Stage 3 3GPP TS 24.228 version 5.14.0 Release 5 Grupa ETSI TISPAN zajmująca się adaptacją IMS do dostępu stacjonarnego wytworzyła ponad 2000 dokumentów roboczych w 2005 roku! Patologia!? 210

Telekomunikacja 2.0 - eksplozja normalizacji Same normy RFC bez wersji roboczych (I-D)! 211

Informatyka Telekomunikacja Telekomunikacja: wersje 1.0 i 2.0 Telekomunikacja - wersja 1.0 Telekomunikacja - wersja 2.0 GSM Parlay X NGN Telefon SPC SDL SS7 ISDN CHILL IN H.323 3G WLAN xdsl IMS Parlay NGN TISPAN 1876 Komputer Liberalizacja rynku 1960 1970 1980 1990 2000 2010 Internet VoIP Web Services Internet SIP ARPANET Java Web 2.0 IM WebRTC C/UNIX PC JAIN TCP/IP WWW XML 1945 1960 1970 1980 1990 2000 2010 212