Telefonia Internetowa VoIP
Technologia ta jest coraz częściej postrzegana jako alternatywa dla zwykłych sieci telefonicznych z uwagi na jej liczne zalety. VoIP umożliwia wykonywanie połączeń telefonicznych także do abonentów nie posiadających Internetu a korzystających z tradycyjnej linii telefonicznej czy też telefonu komórkowego.
Podstawowa zasada działania technologii jest stosunkowo prosta, mianowicie sygnał mowy jest przetwarzany na reprezentację cyfrową, poddawany kompresji przy pomocy odpowiedniego kodeka a następnie dzielony na pakiety i przesyłany przy pomocy protokołu IP. Wykorzystuje się tutaj wiele nowych technologii sieciowych między innymi elementy logiczne czy specjalne protokoły. Elementy logiczne potrzebne są między innymi do zarządzania zgłoszeniami i przechowywania informacji o nich, rutowania pakietów itp. Nowe protokoły zaś są głównie protokołami sygnalizacyjnymi czyli używa się ich do ustanawiania połączeń i sesji multimedialnych, ustalania położenia użytkownika, translacji adresów, negocjacji parametrów łącza dla zgłoszenia, rozłączania i zarządzania zgłoszeniami, billingów i realizacji mechanizmów bezpieczeństwa. Obecnie używa się dwóch głównych protokołów dla VoIP a mianowicie H.323 i SIP.
Protokół H.323
Pierwszą wersję protokołu przyjęto już ponad 10 lat temu a mianowicie w 1996 roku, zaś drugą w roku 1998. Należy on do rodziny protokołów H.32x, które opisują połączenia multimedialne wewnątrz różnych sieci:
* H.320 - wąskopasmowe sieci cyfrowe ISDN
* H.321 - szerokopasmowe cyfrowe sieci ISDN i ATM
* H.322 - sieci pakietowe z gwarantowanym pasmem
* H.323 - sieci pakietowe z nie gwarantowanym pasmem
* H.324 - sieci analogowe POTS
Wszystkie te protokoły wspierają różne zestawy kodeków audio i wideo w zależności od pasma udostępnionego w sieci. Mają możliwość działania z potwierdzeniem transmisji (TCP) lub też bez (UDP) przy czym przy połączeniach VoIP nie stosuje sie potwierdzeń z uwagi na dodatkowe opóźnienia. H.323 nadzoruje proces przesyłania danych multimedialnych w sieciach pakietowych, wykonując to zadanie w czasie rzeczywistym. Elementy składowe H.323 definiują dokładnie, jak poszczególne elementy systemu pracujące zgodnie z tym protokołem inicjują sesje multimedialne i jak stanowiska pracy wymieniają między sobą skompresowane dane audio i wideo. H.323 nadzoruje proces przesyłania danych multimedialnych w sieciach pakietowych, wykonując to zadanie w czasie rzeczywistym. Architektura sieci telefonicznej IP opartej na standardzie H.323 składa się z czterech podstawowych elementów: terminali, strażników (gatekeepers), bramek (gateways) oraz MCU (Multipoint Control Units).
* Terminale, to klienci, którzy mają możliwość inicjacji i odbierania zgłoszeń. Służą one również do wysyłania i odbierania dwukierunkowego strumienia danych. Terminal może być zarówno oprogramowaniem pracującym na komputerze PC jak i specjalnym dedykowanym do tego celu urządzeniem. Wszystkie terminale powinny umożliwiać przeprowadzenie rozmowy telefonicznej, podczas gdy usługa danych czy wideo jest opcjonalna.
* Gatekeeper (strażnik) zarządzaja tzw. strefą (ang. zone) która jest zbiorem terminali, bramek i MCU. Standard H.323 dzieli sieć na takie właśnie strefy. Zgłoszenia wewnątrz strefy są zarządzane przez gatekeeper'a. Zgłoszenia międzystrefowe mogą angażować kilku "strażników". Gatekeeper, jeśli jest obecny w sieci nadzoruje przebieg wszystkich rozmów przeprowadzanych w strefie. Jego podstawowymi zadaniami są: kontrola dostępnego pasma, rutowanie zgłoszeń, przyjmowanie, odrzucanie zgłoszeń w strefie, translacja adresów i autoryzacja użytkowników. Gatekeeper stanowi także interfejs do innych sieci H.323. "Strażnik" to opcjonalny element sieci ale jeśli jest obecny w danej podsieci to terminale są zobowiązane go używać.
* Bramka (gateway) jest odpowiedzialna za połączenie telefonicznej sieci IP do innych typów sieci. Przykładowo bramka może łączyć sieć H.323 z siecią SIP, PSTN (Public Switched Telephone Network) czy ISDN. Bramka musi zapewnić interfejs czasu rzeczywistego pomiędzy różnymi formatami transmisji i procedur komunikacyjnych. Dodatkowo jest odpowiedzialna za ustanawianie i rozłączanie połączeń w obydwu łączonych sieciach. Brama musi więc dysponować mechanizmami konwertującymi różne formaty i obsługiwać sieci oparte na różnych technologiach.
* MCU obsługuje konferencje, w których udział biorą co najmniej trzy punkty końcowe. Jednostka MCU zarządza zasobami konferencji, prowadzi negocjacje między punktami końcowymi (uzgadniając na przykład metodę kodowania danych audio i wideo) i może sterować strumieniami pakietów zawierających dane multimedialne. MCU składa się z dwóch podstawowych elementów: Multipoint Controller (MC) i opcjonalnie kilku Multipoint Processors (MP).
- MC odpowiada za wymianę informacji, obsługuje sygnalizacje H.255.0 oraz odpowiada za negocjację parametrów komunikacji między punktami końcowymi
- MP odpowiada między innymi za miksowanie różnych danych multimedialnych, translacje formatów i ewentualną redystrybucje strumieni do użytkowników.
Często możliwa jest integracja różnych elementów sieci w jednym fizycznym urządzeniu. Przykładowo funkcjonalność gatekeeper'a może być połączona z funkcjonalnością bramki i MCU lub MCU może być wbudowane w terminal aby umożliwić połączenia konferencyjne, bez dodatkowych urządzeń.
Protokół SIP
Protokół SIP jest protokołem sygnalizacyjnym pomału wypierającym H.323 a jego główne działanie polega na inicjowaniu sesji pomiędzy klientami. Zasadniczo dostarcza on rozmaitych funkcji umożliwiających operacje typu wybieranie numeru czy też sygnał zajętości. Dodatkowo wspiera zaawansowane możliwości obsługi połączenia używane przez protokół sygnalizacyjny SS7 (używany do sygnalizacji w telefonii konwencjonalnej). SIP jednak znacznie różni się od scentralizowanego SS7 choćby z uwagi na to, iż jest protokołem typu peer-to-peer czyli wymaga jedynie prostej sieci szkieletowej bez rozbudowanego sprzętowo zaplecza. Cała inteligencja SIP skupia się bowiem w węzłach końcowych SIP. SIP jest odpowiedzialny jedynie za sygnalizację a co za tym idzie współpracuje z innymi protokołami. Session Description Protocol (SDP) opisuje sposób transportu multimediów w sieci. Wiadomości SDP podobnie jak wiadomości SIP mają charakter tekstowy i specyfikują jakie możliwości muszą posiadać zakończenia sieciowe. Session Annoucement Protocol (SAP) jest używany do informowania większej liczby użytkowników o otwieranej w danej chwili sesji czyli przykładowo w przypadku konferencji czy usług rozsiewczych takich jak radio czy telewizja.
Zasadniczo SIP jest dość podobny do protokołu HTTP czyli między innymi używa zwykłego tekstu i prostych mechanizmów typu „żądanie”-”odpowiedź na żądanie” czy też wiadomości kodowych takich jak „błąd 404”. Do identyfikacji terminali SIP używa adresów podobnych do adresów e-mail „user@domain:port” przy czym portem domyślnym jest port 5060. System oparty o SIP składa się z dwóch elementów:
- Terminale podobne funkcyjnie do terminali H.323. Do rozpoczęcia sesji wymagane są przynajmniej dwa terminale i istnieje możliwość komunikacji między nimi bez angażowania infrastruktury sieci SIP. Terminalem może być komputer z odpowiednim oprogramowaniem, specjalny telefon podłączany do gniazda sieciowego, lub też bramka podłączana go gniazda sieciowego, do której wpinamy zwykły telefon.
- Serwery SIP posiadające podobną funkcjonalność jak gatekeeper w H.323 jednakże nie odgrywające tak wielkiej roli, gdyż zgłoszenia nie mają obowiązku przechodzenia przez serwer. Serwerów używa się głównie do rutowania i przekierowywania zgłoszeń oraz czasem do prostego uwierzytelniania. Zasadniczo istnieją dwa tryby pracy serwera a mianowicie proxy i redirect przy czym zaleca się, aby każdy serwer mógł pracować w obu tych trybach. Serwer proxy ma za zadanie przekazywać do odpowiedniej domeny żądania połączenia. Analizuje on 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). SIP proxy umożliwia również połączenia pomiędzy terminalami VoIP a siecią PSTN. Serwer typu redirect informuje klienta, aby skontaktował się bezpośrednio z innym serwerem i w przeciwieństwie do serwera proxy nie musi monitorować zgłoszeń.
Jakość w VoIP
Na jakość działania usługi ma przede wszystkim jakość naszego łącza Internetowego a konkretnie:
a) PRZEPUSTOWOŚĆ
Zasadniczo VoIP nie wymaga zbyt dużej symetrycznej przepustowości łącza do poprawnego działania. Wszytko zależy od kodeka który jest użyty do kompresji sygnału mowy. Poniżej znajduje się lista najbardziej popularnych kodeków VoIP wraz z podanymi wartościami symetrycznych przepustowości niezbędnymi do ich poprawnej transmisji rozmowy. Niestety jednak nic nie ma za darmo i bardzo często wraz ze spadkiem przepustowości wymaganej przez dany kodek rośnie wprowadzane przez niego opóźnienie. Wydłuża się bowiem czas jaki procesory po stronie nadawczej i odbiorczej potrzebują na przetworzenie dźwięku. Dobór kodeka jest więc kompromisem pomiędzy przepustowością, opóźnieniem a wymaganą jakością dźwięku.
b) OPÓŹNIENIE
Zbyt duże opóźnienie transmisji w naszym łączu może spowodować iż rozmowa straci interaktywność. Prościej mówiąc będziemy musieli zbyt długo czekać na odpowiedź naszego rozmówcy a cały dialog może się stać bardzo utrudniony. Poniżej przedstawione są warunki jakie musi spełniać nasze łącze pod względem opóźnień, aby usługa VoIP działała poprawnie. Oczywiście opóźnienie jest mierzone w jedną stronę między nami a naszym rozmówcą.
c) JITTER
Jitter powstaje wtedy kiedy pakiety docierają z jednego punktu sieci do drugiego z różnym opóźnieniem. Jest to po prostu różnica w czasie między kolejnymi opóźnieniami. Jest to zjawisko niezwykle uciążliwe i powyżej pewnej wartości znacznie degraduje jakość rozmowy. Powoduje wycinanie fragmentów rozmowy i ogólnie pogarsza jakość. Poniżej znajduje się tabela w której podano dopuszczalne wartości jitter, przy których rozmowa jest możliwa.
d) ZAGUBIONE PAKIETY
Ilość zagubionych pakietów również odgrywa ważną rolę gdyż im więcej pakietów nie dotrze do naszego rozmówcy tym bardziej nasz głos będzie poprzerywany. Generalnie w celu zachowania dobrej jakości rozmowy liczba utraconych pakietów powinna być mniejsza niż 5%.
Podstawowe urządzenia VoIP
Istnieje wiele urządzeń wchodzących w skład sieci VoIP jednakże dwa najbardziej popularne z nich to bramka VoIP i telefon VoIP. Bramki są urządzeniami które umożliwiają korzystanie z telefonii VoIP za pomocą zwykłego aparatu telefonicznego. Umożliwiają one korzystanie z sieci VoIP użytkownikom nie posiadającym komputera. Bramki posiadają dwa główne porty a mianowicie:
- Port z gniazdem RJ-11, do którego połączmy aparat zwykły, tradycyjny telefonicznych.
- Port WAN, do którego podłączamy Internet najczęściej za pomocą kabla ze złączem RJ-45.
Głównym zadaniem bramki jest zamiana sygnałów płynących z aparatu telefonicznego (sygnały mowy i sygnały sygnalizacji) na sygnały VoIP. Najczęściej używanym protokołem sygnalizacyjnym przez bramki jest SIP. Dodatkowo bramka ma zaimplementowane w sobie kilka różnych kodeków mowy. Rozbudowane bramki posiadają także wiele innych portów:
- dodatkowe porty umożliwiające podłączenie większej ilości telefonów
- port ISDN
- porty LAN umożliwiające podłączenie komputerów
- porty USB
- inne...
Oprócz podstawowej funkcji bramka może pełnić także kilka innych:
- ruter, NAT, DNS, kształtowanie ruchu, QoS, wiele innych...
Urządzenie te stają się coraz bardziej popularne z uwagi na ich prostotę, funkcjonalność i spadające ceny połączeń VoIP. Telefon VoIP jest typem telefonu, który podłącza się bezpośrednio do Internetu zwykle za pomocą złącza RJ-45. Podobnie jak bramka umożliwia on prowadzenie rozmów VoIP bez komputera, który może być jedynie potrzebny przy konfiguracji. Telefony podobnie jak bramki zwykle wykorzystują do sygnalizacji protokół SIP.