Session Initiation Protocol
SIP (ang. Session Initiation Protocol) – protokół inicjowania sesji, zaproponowany przez IETF standard dla zestawiania sesji pomiędzy jednym lub wieloma klientami. Jest obecnie dominującym protokołem sygnalizacyjnym dla Voice over IP i stopniowo zastępuje H.323.
Konstrukcja protokołu
SIP ma w zamierzeniu dostarczać zestaw funkcji obsługi połączenia i innych cech obecnych w publicznej sieci telefonicznej (PSTN). Jako taki zawiera funkcje, które umożliwiają znane ze stacjonarnej telefonii operacje: wybieranie numeru, dzwonek w telefonie, sygnał zajętości itp. Jednakże ich implementacja i używana terminologia jest odmienna.
SIP implementuje również wiele bardziej zaawansowanych możliwości obsługi połączenia dostępnych w protokole sygnalizacyjnym SS7, jednak te dwa protokoły bardzo różnią się od siebie. SS7 to wysoce scentralizowany protokół charakteryzujący się złożoną architekturą sieciową i 'nieinteligentnymi' węzłami końcowymi (tradycyjne terminale telefoniczne). SIP to protokół typu peer-to-peer. Wymaga jedynie prostej (a przez to wysoce skalowalnej) sieci szkieletowej. Inteligencja rozproszona jest na brzegach sieci – zaszyta w węzłach końcowych (końcowe urządzenia zaimplementowane sprzętowo lub jako oprogramowanie). Stoi to więc w przeciwieństwie do funkcji oferowanych przez SS7, których dostarcza sama sieć.
Istnieje wiele innych protokołów sygnalizacyjnych dla VoIP, jednakże SIP zdefiniowano pośród społeczności internetowej, a nie telekomunikacyjnej. SIP jest standardem zarządzanym przez IETF. Starsze i bardziej złożone protokoły VoIP były zazwyczaj propozycjami zgłaszanymi przez ITU-T.
SIP współgra z kilkoma innymi protokołami i jest zaangażowany jedynie w część sygnalizacyjną sesji komunikacyjnej. SIP występuje jako nośnik Session Description Protocol (SDP), który opisuje transportowane multimedia w sieci, np. używane porty IP, używany kodek itp.
Pierwsza zaproponowana wersja standardu (SIP 2.0) została zdefiniowana w RFC 2543 ↓. Protokół następnie uszczegółowiono w RFC 3261 ↓, jakkolwiek wiele implementacji używa wskazówek z tymczasowych wersji próbnych (ang. draft). Mimo to oficjalny numer ostatniej wersji nadal wynosi 2.0.
SIP jest podobny do HTTP i dzieli z nim wiele zasad konstrukcyjnych: używa zwykłego tekstu (jest możliwy do czytania bezpośrednio przez człowieka), bardzo prosty mechanizm żądanie-odpowiedź. Część użytkowników narzeka jednak, że pomimo pierwotnych zamierzeń prostoty w swoim obecnym stanie złożoność SIP przypomina złożoność H.323. Ponadto SIP dzieli z HTTP wiele wspólnych oznaczeń kodowych takich jak błąd 404. Identyfikacja terminali końcowych odbywa się z wykorzystaniem adresów podobnych do adresów e-mail: użytkownik@domena:port
, domyślnym portem jest 5060.
Elementy sieci SIP
Terminale końcowe (nodes) mogą być aplikacjami uruchamianymi na komputerze (softphone) lub urządzeniami podobnymi z wyglądu i w obsłudze do tradycyjnych telefonów (hardphone), ale podłączane do gniazdek sieciowych i używające protokołów SIP oraz RTP do komunikacji. Mogą też występować w postaci bramek, które pozwalają podłączyć tradycyjny telefon do sieci komputerowej. Obecnie są oferowane przez kilku producentów i zdobywają coraz większą popularność. Niezależnie od typu wykorzystywanego terminala, o ile dostawca usług zapewni odpowiednia infrastrukturę sieci (bramkę z PSTN), można z tych terminali prowadzić rozmowy z użytkownikami zwykłej sieci PSTN (inicjowane przez dowolną ze stron)[1].
Rejestrator SIP (registrar) jest specjalną bazą danych, która komunikuje się z węzłami SIP w celu zbierania i archiwizacji informacji na temat użytkowników SIP. Dane te są używane w trakcie nawiązywania połączenia do odnajdywania w sieci węzłów docelowych. Kiedy węzeł rejestruje się w rejestrze, przekazuje mu informacje o adresie IP i porcie węzła, które będą wykorzystywane przy dalszej komunikacji. Rejestrator działa jak router na poziomie protokołu SIP, pozwalając węzłowi inicjującemu połączenie odnaleźć węzeł docelowy.
Połączenia SIP, które nie są lokalne (są podłączone do różnych rejestratorów SIP), muszą być przekazywane przez specjalne serwery pośredniczące:
SIP proxy. Serwer proxy ma za zadanie przekazywać do odpowiedniej domeny żądania połączenia. Proxy analizuje polecenie INVITE protokołu SIP i na podstawie zawartego w nim adresu kieruje je do innego węzła w sieci. Taki sposób wykonywania połączeń pozwala ominąć problemy związane z translacją adresów (NAT). Chociaż dwa terminale końcowe SIP mogą komunikować się bez angażowania infrastruktury sieci SIP (dlatego protokół należy do klasy peer-to-peer), to w tej formie jest to rozwiązanie niepraktyczne dla masowych zastosowań. SIP proxy może spełniać również inne funkcje. Jednym z ważniejszych zadań serwera SIP proxy jest umożliwienie połączeń pomiędzy terminalami VoIP a siecią PSTN. Jeśli w sieci lokalnej postawi się wymóg korzystania z serwera proxy przy nawiązywaniu połączeń, wtedy taki serwer będzie mógł prowadzić rejestry billingowe, kontrolować plany taryfowe czy rejestrować rozmowy.
Komunikatory internetowe
Zaproponowano protokół komunikacji w czasie rzeczywistym oparty na protokole SIP. Nazywa się SIMPLE i jest w fazie opracowywania. SIMPLE może przenosić również informację o statusie dostępności użytkownika, określającym chęć i zdolność osoby do przyjęcia rozmowy. Prowadzone były również prace nad integracją opartego na protokole SIP VoIP z XMPP używanym przez Jabbera, wynikiem tych prac jest XEP-0111[2], określający sposób inicjowania połączeń SIP (w zasadzie to korzystanie z Session Description Protocol), który jednak został zarzucony na korzyść Jingle będącego obecnie zatwierdzanego przez radę XMPP.
Zastosowania komercyjne
Istnieje kilka problemów z protokołem SIP i telefonią internetową: połączenie inicjowane z zewnątrz przy niewłaściwej konfiguracji zapory sieciowej (firewall) jest przez nią zatrzymywane, a jego rozproszona natura utrudnia spełnienie wszystkich prawnych wymagań nałożonych na operatorów telekomunikacyjnych. Jakkolwiek, komercyjne rozwiązania radzą sobie z tymi ograniczeniami. Wiele zapór rozpoznaje już i przepuszcza ruch SIP. Firmy takie jak Vonage czy SIPphone były pionierami na rynku konsumenckim i mają szybko przyrastającą bazę klientów. Wielkie kompanie telekomunikacyjne takie jak AT&T podążają teraz za ich przykładem. Również na polskim rynku oferowanych jest coraz więcej rozwiązań telefonicznych opartych o SIP (m.in. freePBX.pl, Orange, HaloNet, Tlenofon, Freeconet, HopIn.pl, INTERFON, IPFON, EuroTC, DigiTEL, Siec T2, Actio, Newfon, easyCALL, PLFON, iFON).
Oprogramowanie
PhoneGaim to wolny terminal SIP oparty na Gaim. Inne wolne terminale SIP (tzw. Softphones) to m.in. X-Lite, KPhone, linphone, Firefly (program), SJPhone, Ekiga, QuteCom.
Zobacz też
- IAX
- H.323
Przypisy
- ↑ Theodore Wallingford: Switching to VoIP, O'Reilly, 2005, ISBN 0-596-00868-6
- ↑ XEP-0111: A Transport for Initiating and Negotiating Sessions (TINS), www.xmpp.org [dostęp 2017-11-26] .
Linki zewnętrzne
- Strona Henninga Schulzrinne'a (twórcy protokołu SIP)
- Forum protokołu SIP
- M. Handley i inni, SIP: Session Initiation Protocol, RFC 2543, IETF, marzec 1999, DOI: 10.17487/RFC2543, ISSN 2070-1721, OCLC 943595667 (ang.).
- J. Rosenberg i inni, SIP: Session Initiation Protocol, RFC 3261, IETF, czerwiec 2002, DOI: 10.17487/RFC3261, ISSN 2070-1721, OCLC 943595667 (ang.).
- Informacje o protokołach VoIP
- Portal społeczności użytkowników VoIP. voipuser.org. [zarchiwizowane z tego adresu (2005-01-30)].
- Informacje o protokołach VoIP. en.voipforo.com. [zarchiwizowane z tego adresu (2020-06-27)].