SIP w przedsiębiorstwie

Czy wyobrażacie sobie środowisko, w którym będziemy mogli dobierać sposób komunikacji z otoczeniem w zależności od potrzeb? System, który będzie kierował żądanie kontaktu z drugim człowiekiem do sieci, w której ta osoba obecnie się znajduje? Wreszcie przedsiębiorstwo, w którym to sieć decyduje, jakim kanałem klient może się najlepiej z wami skontaktować? Platformą, która zamienia te marzenia w rzeczywistość, jest SIP, czyli protokół inicjalizacji sesji.

Czy wyobrażacie sobie środowisko, w którym będziemy mogli dobierać sposób komunikacji z otoczeniem w zależności od potrzeb? System, który będzie kierował żądanie kontaktu z drugim człowiekiem do sieci, w której ta osoba obecnie się znajduje? Wreszcie przedsiębiorstwo, w którym to sieć decyduje, jakim kanałem klient może się najlepiej z wami skontaktować? Platformą, która zamienia te marzenia w rzeczywistość, jest SIP, czyli protokół inicjalizacji sesji.

SIP (Session Initiation Protocol) jest protokołem służącym do inicjowania, zrywania oraz zmiany sesji komunikacyjnych pomiędzy terminalami. Mówiąc obrazowo, SIP to protokół sygnalizacyjny odpowiedzialny za zestawianie sesji konferencyjnych w Internecie (np. sesji VoIP, wideokonferencyjnych), sesji głosowych w sieci GSTN (Global Switching Telephone Network), sesji w sieciach komunikatorów internetowych czy systemów powiadamiania o zdarzeniach. Protokół ten zaprojektował Henning Schulzrinne na Universytecie Columbia, a jego standaryzacją zajęła się w sierpniu 1999 r. grupa MMUSIC (Multiparty Multimedia Session Control), działająca w ramach IETF. Pierwsza wersja zalecenia (o numerze 2.0) otrzymała nazwę RFC 2543. Dalsze rozszerzenia zapisano w dokumencie RFC 3261.

SIP w przedsiębiorstwie

Rys. 1. Stos podstawowych protokołów SIP i ich interakcje

SIP jest protokołem warstwy aplikacji. Komunikaty sygnalizacyjne są wysyłane w postaci tekstowej (stąd SIP czasem nazywany jest protokołem typu ASCII), w formie czytelnej dla człowieka. Komunikaty są podobne do komunikatów protokołu HTTP/1.1. Wiadomości "żądania" i "odpowiedzi" różnią się wyłącznie pierwszą linią. Podstawowe komendy wysyłane w trakcie sesji SIP (przez agentów SIP) to INVITE, ACK, OPTIONS, BYE, CANCEL oraz REGISTER.

Adres SIP, który identyfikuje użytkownika, ma najczęściej postać standardowego adresu e-mail ( mailto:[email protected] ). Może również przyjąć postać adresu URL ( sip:[email protected] ) lub wskazywać bezpośrednio na nazwę usługi i jej adres (tel. +228412345678).

Komunikacja w sieci SIP może odbywać się w dwojaki sposób. Najprostszym jest połączenie peer-to-peer, gdy nie jest wymagana żadna dodatkowa infrastruktura. Drugim typem połączenia jest komunikacja typu klient-serwer. W takim przypadku sieć SIP składa się z następujących komponentów:

  • Agent SIP użytkownika: może nim być przykładowo telefon IP czy aplikacja PC. Istnieją dwa typy agentów: UAC (User Agent Client) oraz UAS (User Agent Server). UAC jest klientem, zaś UAS jest serwerem, który odpowiada na zapytania SIP wysyłane przez UAC.

  • Serwer przekierowań SIP: zwraca adres miejsca, do którego ma być przekazane połączenie. Serwer ten pozwala na przekierowanie punktu docelowego kontaktu, np. podczas zmiany położenia geograficznego użytkownika.

  • Serwer Proxy SIP: kieruje połączeniami.

  • Serwer rejestracji SIP: dokonuje mapowania nazw w domenie SIP na adresy.
SIP w przedsiębiorstwie

Rys. 2. Połączenie VoIP z PSTN z wykorzystaniem SIP

SIP w przedsiębiorstwie

Rys. 3. Połączenie PSTN z VoIP z wykorzystaniem SIP

Popatrzmy teraz na podstawowe zadania, jakich podejmują się przedstawione wyżej komponenty. Przed rozpoczęciem sesji SIP UAC sprawdza informacje niezbędne dla połączenia, takie jak protokół, numer portu oraz adres IP agenta UAS, do którego wysyłane jest zgłoszenie (takie dynamiczne zestawienie drogi połączeniowej może być utrudnione, gdy w jednej z sieci agentów UAC lub UAS znajduje się firewall; wtedy rozwiązaniem może być otwarcie dostępu danej aplikacji w zaporze ogniowej). Agent UAC ma również możliwość wykorzystania informacji pochodzącej od wywoływanego URI (Uniform Resource Indicator) do ustalenia drogi komunikatów sygnalizacyjnych od nadawcy do odbiorcy.

Należy pamiętać, że port i protokół nie są zawsze podane w URI (patrz ramka "Różnica między URL i URI"). Zatem, jeżeli nie można określić protokołu i portu, z jakim należy rozpocząć komunikację, to wybierane są wartości domyślne. Taka metoda komunikacji może się odbyć tylko wtedy, gdy w sieci nie ma zapór działających na poziomie aplikacji. Tego typu zapory wiedzą, jaka aplikacja komunikuje się na danym porcie, a ruch generowany przez aplikacje inne niż dozwolone jest blokowany.

Serwer proxy SIP działa w większości przypadków jako mediator pomiędzy UAC i UAS (obsługuje żądania i przekazuje je dalej). Serwer proxy może użyć konfiguracji pomiędzy organizacjami do kierowania wszystkich wiadomości SIP. Konfiguracja wewnątrz organizacji następuje wtedy, kiedy komunikaty użytkownika przechodzą przez proxy, zanim dotrą do końcowego klienta SIP. Komunikacja taka ma miejsce podczas inicjacji sesji SIP do innego użytkownika w ramach tej samej organizacji.

SIP w przedsiębiorstwie

Rys. 4. Ustanawianie połączenia pomiędzy różnymi domenami

Konfiguracja pomiędzy organizacjami jest rozszerzeniem konfiguracji wewnątrz organizacji. Użytkownicy z różnych organizacji mają skonfigurowanych agentów UA w taki sposób, aby kontaktowali się z właściwym proxy. Następnie już same serwery proxy komunikują się miedzy sobą w celu przekazania wiadomości. Serwery proxy mogą być również używane do mapowania nazw. Proxy może wyszukać informacje o lokalizacji użytkownika, a następnie przenieść lokację SIP abonenta z jednego miejsca w drugie.

Serwer przekierowań SIP przekierowuje połączenia tych użytkowników, którzy tymczasowo zmienili swoje geograficzne położenie tak, aby zawsze mogli być dostępni dla innych.

Serwer rejestracji SIP pozwala użytkownikom na aktualizację adresów, pod którymi są osiągalni. Jest to możliwe dzięki wysłaniu komunikatu REGISTER przez klienta SIP do serwera rejestracji. Po analizie danych zawartych w komunikacie serwer aktualizuje dane o użytkowniku. Istnieją dwa sposoby komunikacji klientów SIP z serwerem rejestracji. Pierwszy sposób, bezpośredni, polega na wykorzystaniu informacji znajdującej się na serwerze. Drugi - polega na wysłaniu wiadomości multicastowej w celu lokalizacji i kontaktu z serwerem. Funkcje rejestracji mogą być również dodane do serwera SIP (czyli serwera działającego jednocześnie jako proxy i serwer przekierowania). W ten sposób jedno urządzenie (zwane serwerem RTC) może świadczyć kilka usług w ramach SIP.

Sposób, w jaki odbywa się komunikacja pomiędzy siecią VoIP i GSTN, przedstawiono na rysunkach 2 i 3. Należy zauważyć, że komunikacja GSTN do VoIP jest możliwa tylko wtedy, gdy w sieci sygnalizacyjnej SS7 znajduje się połączenie z bazą danych ENUM.

Istnieją dwie podstawowe zasady dla routingu w sieci SIP. Po pierwsze, wszystkie komunikaty sygnalizacyjne (oprócz pierwszego) wymieniane są bezpośrednio pomiędzy agentami SIP. Poprzez pierwszy komunikat użytkownik zgłaszający żądanie połączenia kontaktuje się z serwerem proxy SIP w celu określenia miejsca przebywania drugiej strony. Notabene SIP może wymusić, by wszystkie komunikaty przebiegały przez dany serwer proxy SIP. Po drugie, wszystkie komunikaty sygnalizacji SIP przebiegają tą samą trasą (w przeciwieństwie do protokołu transportowego biorącego udział w połączeniu).

Jako protokół transportowy SIP może wykorzystać TCP lub UDP (patrz rys. 1). Może również skorzystać z protokołu STCP (Stream Control Transmission Protocol). Jest to protokół identyczny w swej funkcjonalności z dwoma poprzednio wymienionymi. Jego podstawową różnicą jest zezwolenie dwóm stronom biorącym udział w połączeniu na wykorzystanie kilku adresów IP. Dzięki temu możliwy jest transport strumieni nawet wtedy, kiedy jeden z adresów przestanie funkcjonować. Pierwotnie STCP został zaproponowany przez IETF jako protokół służący do przesyłania sygnalizacji SS7 w sieci IP.

Zanim omówimy aplikacje SIP dla przedsiębiorstw warto podkreślić, że istnieje liczna grupa systemów wykorzystujących SIP przeznaczonych dla użytkowników końcowych (patrz zestawienie "Aplikacje końcowe SIP").

Podstawowe informacje o SIP
  • Protokół sygnalizacyjny, który jest niezależny od protokołów transportowych. Dzięki temu może on współpracować z różnymi warstwami transportowymi, m.in. User Datagram Protocol (UDP), TCP oraz Stream Control Transmission Protocol (SCTP).

  • Nie zawiera i nie oferuje funkcji związanych z jakością usługi (QoS), ale wykorzystuje inne protokoły, których zadaniem jest określenie i utrzymanie odpowiedniego QoS.

  • Niezależny od protokołów bezpieczeństwa. Współpracuje m.in. z Transport Layer Security (TLS) i IP Security (IPSec).

  • Dostarcza metod kontroli sesji, ale nie określa aplikacji i usług, które używają tych sesji. W związku z tym SIP nie odpowiada za zachowanie aplikacji użytkownika.

  • Pozwala na zestawienie sesji pomiędzy użytkownikami wykorzystującymi różne rodzaje dostępu do Internetu.
W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200