Technologia głosu

VoIP staje się coraz popularniejszy nie tylko wśród internautów, ale również w środowisku biznesowym, gdzie tańsze rozmowy pozwalają znacznie ograniczyć koszty prowadzenia działalności. Warto wiedzieć, jak działa dobrze rozpowszechniająca się technologia Voice over IP, czym różni się od telefonii tradycyjnej i czy jest w pełni bezpieczna.

VoIP staje się coraz popularniejszy nie tylko wśród internautów, ale również w środowisku biznesowym, gdzie tańsze rozmowy pozwalają znacznie ograniczyć koszty prowadzenia działalności. Warto wiedzieć, jak działa dobrze rozpowszechniająca się technologia Voice over IP, czym różni się od telefonii tradycyjnej i czy jest w pełni bezpieczna.

Chcąc porównać technologie wykorzystywane w telekomunikacji, warto na początku przyjrzeć się strukturze sieci telefonii tradycyjnej. Gdy łączysz się przez zwykły telefon, ustalany jest tzw. kanał, w którym porozumiewają się rozmówcy. Niestety, to rozwiązanie bardzo niewydajne (w czasie rozmowy kanał jest niedostępny dla innych użytkowników), wykorzystuje się więc tzw. komutację kanałów. Z grubsza biorąc, rozwiązanie to polega na składaniu kanału z gotowych części - dzięki temu nie trzeba tworzyć fizycznych połączeń "każdy z każdym", a jakość transmisji pozostaje na wysokim poziomie. Kanał tworzony jest przed nawiązywaniem połączenia i trwa jeszcze jakiś czas po zakończeniu rozmowy. Niestety, wykorzystywane w czasie rozmowy fragmenty sieci są zajęte i nie mogą służyć innym użytkownikom, nawet jeśli rozmówcy się nie odzywają (nie przekazują informacji), a także chwilę przed i po rozmowie. Rozwiązanie zapewnia wysoką jakość dźwięku, ale wymaga dość złożonej infrastruktury, która często jest nie w pełni wykorzystywana.

Z telefonią VoIP jest inaczej - jej działanie praktycznie nie różni się od przesyłania danych za pomocą protokołu IP. W przeciwieństwie do telefonii klasycznej ich transmisja nie jest ciągła, są dzielone na pakiety i wysyłane tak, jak każde inne informacje - zapytania do serwerów, pliki w sieciach peer to peer itd. Dzięki temu, że warstwy transportowa, sieciowa i fizyczna są niezależne od samej technologii VoIP, nie trzeba polegać na infrastrukturze operatora telefonicznego - wystarczy wykorzystać dowolny fragment sieci (np. Internet czy intranet). Niestety, jakość połączeń, zwłaszcza wychodzących poza sieć lokalną, bywa gorsza niż w technologii tradycyjnej. Widoczne jest to np. w call centers, czyli firmach obsługujących infoli-nie, przeprowadzających ankiety czy akcje telemarketingowe. Nawet szybkie łącza okazują się za mało wydajne, jeśli połączenia zewnętrzne są wykonywane przez kilkadziesiąt osób naraz, a centrala jest jednym z tańszych rozwiązań. Co ciekawe, odmiennie niż w typowych komunikatorach internetowych, w czasie rozmowy w tak przeciążonej sieci nie pojawiają się opóźnienia, ale pogarsza się próbkowanie i ogólna jakość połączenia.

Protokoły w VoIP

Schematyczne połączenie między telefonią VoIP a PSTN (stacjonarną).

Schematyczne połączenie między telefonią VoIP a PSTN (stacjonarną).

Dzieje się tak ze względu na rodzaj wykorzystywanych protokołów - H.323 oraz jego następcy SIP (Session Initiation Protocol). Używany na masową skalę H.323 został zaprojektowany do wideokonferencji prowadzonych przez Internet, które nie zyskały przewidywanej 10-15 lat temu popularności. Protokół TCP gwarantuje dostarczenie wybranego pakietu do odbiorcy, ale nie czas jego przetransportowania. Ponieważ rozmowa odbywa się w czasie rzeczywistym, mogłyby pojawić się opóźnienia związane z długim przesyłaniem pakietów (objawia się to przerwami w rozmowach przez komunikatory, takie jak Skype). Aby zlikwidować ten problem, stosuje się protokół UDP, który w przeciwieństwie do TCP nie gwarantuje dostarczenia danych, ale nie powoduje też znaczących opóźnień. Mówiąc inaczej, godzimy się z tym, że część (czasami znaczna) informacji zostanie utracona, ale pozostałe wystarczą do zrozumienia wypowiedzi. To umożliwia prowadzenie rozmowy w czasie rzeczywistym, a jeśli dysponujesz wystarczająco dobrym łączem (teoretycznie wystarcza stała prędkość 64 Kb/s, jednak w praktyce minimum zapewniające dobrą jakość to 256 Kb/s na jednego użytkownika), nie odczujesz różnicy w porównaniu z klasyczną telefonią stacjonarną - poza finansowymi. H.323 definiuje nie tylko sposób przesyłania danych, ale także fizyczne urządzenia wchodzące w skład systemu, takie jak terminale, bramki czy jednostki kontrolne (Multipoint Control Units, MCU) do obsługi konferencji wieloosobowych. Następca H.323, coraz powszechniej wykorzystywany SIP, został zaprojektowany przez Internet Engineering Task Force, czyli nieformalną grupę zajmującą się standardami internetowymi, nie jest więc obciążony narzutami klasycznej sieci telefonicznej.

Pozwoliło to wyeliminować zależność od samej sieci, a tzw. inteligencja rozwiązania została zaimplementowana w urządzeniach odbiorczych. Warto dodać, że termin "urządzenie" jest umowny - zamiast fizycznej maszyny można posłużyć się programem uruchomionym na zwykłym komputerze. Po nawiązaniu połączenia za pomocą jednego ze wspomnianych protokołów dane przesyłane są jak w każdej innej sieci komputerowej. Stosuje się najczęściej protokół RTP (Real-time Transport Protocol) lub oparty na SIP protokół SIMPLE.

Kompresja głosu

Dane przesyłane przez Internet obarczone są dużym narzutem, pochodzącym z nagłówków warstw: sieciowej, transportowej i aplikacji. Łącznie jest to ok. 200 bajtów na każdy pakiet.

Dane przesyłane przez Internet obarczone są dużym narzutem, pochodzącym z nagłówków warstw: sieciowej, transportowej i aplikacji. Łącznie jest to ok. 200 bajtów na każdy pakiet.

Przetwarzając dźwięk na postać cyfrową, należy bardzo często sprawdzać jego wartość i przyporządkować ją do z góry określonego przedziału. Odstępy czasu, w którym wykonywane są pomiary, charakteryzuje się jako częstotliwość i określa w hercach, a przedział przyjmowanych wartości wynika z rozdzielczości przetwornika (określanej liczbą bitów - zwykle 16, 12 lub 8). Im częściej wykonujesz próbkowanie i im większą rozdzielczością dysponuje przetwornik, tym lepszy jest dźwięk, niestety, kosztem wielkości otrzymanego strumienia bądź pliku. Oczywiście nie jest przesyłany jako zwykłe, nieskompresowane dane (np. pliki WAV), gdyż wymagałoby to łączy o bardzo dużej szybkości, rzędu kilku megabitów na sekundę. Byłoby to wielkie marnotrawstwo, więc dane należy najpierw skompresować. Opracowanie odpowiednich kodeków (sposobów kompresji) wymagało uwzględnienia specyfikacji rozmów telefonicznych. Główne dane przesyłane w czasie rozmowy to ludzki głos. Daje się bardzo łatwo skompresować, gdyż pasmo jego częstotliwości jest stosunkowo małe - tylko kilka tysięcy herców - ponadto narządy mowy mogą zmieniać wydawany dźwięk najwyżej co 20 ms. Biorąc pod uwagę te dwie cechy, można znacznie zmniejszyć częstotliwość próbkowania (względem dźwięku nieskompresowanego - 44 100 Hz). Całkowicie wystarcza 10 kHz, a niekiedy (np. po zastosowaniu kodeka G.729 używanego w VoIP) nawet 4-5 kHz. Otrzymujemy więc ok. 10 razy mniej próbek, co wiąże się z dziesięciokrotnym zmniejszeniem ilości wysyłanych danych. Niestety, nie zawsze możliwa jest aż tak dobra kompresja - sprawdza się nieźle w wypadku języków europejskich, ale już nie wschodnioazjatyckich. Dlatego stosuje się kompresję szerokopasmową (o częstotliwości ok. 8 kHz), która pozwala na przesyłanie prawie dowolnego typu dźwięku z akceptowalną jakością, oczywiście pod warunkiem zwiększenia wymaganej szybkości łącza mniej więcej dwukrotnie. Poza tym, odmiennie niż w zwykłej sieci telekomunikacyjnej, fragmenty ciszy nie są transmitowane, co również pozwala na kompresję.

Urządzenia stosowane w telefonii internetowej mogą być zarówno programami uruchomionymi na potężnych komputerach stacjonarnych, aplikacjami w telefonach komórkowych, jak i rozwiązaniami całkowicie sprzętowymi. Bardzo ważna jest ich moc obliczeniowa. Im wyższy stopień kompresji dźwięku, tym więcej jej wymaga, bo polega głównie na przekształcaniu wartości liczbowych - w rezultacie uzyskuje się mniej danych niż było ich na początku. W zależności od sposobu kompresji możliwe jest odwzorowanie danych wejściowych w pełni (mówimy wtedy o kompresji bezstratnej, takiej jak podczas tworzenia archiwów ZIP, RAR i podobnych) lub utracenie najmniej istotnych. Jest to kompresja stratna i właśnie ją się wykorzystuje, kodując rozmowy w VoIP-ie. Opracowano wiele sposobów jej przeprowadzania, najczęściej stosowane to Speex, G.711 i G.729, ale wszystkie opierają się na zmniejszeniu rozdzielczości z 16 do 8 bitów (chociaż wyższa rozdzielczość również może być obsługiwana) i częstotliwości próbkowania rzędu 4-8 kHz oraz innych przekształceniach parametryzujących sygnały. Co ciekawe, stosuje się czasem takie same kodeki, jak w telefonii komórkowej, więc jakość rozmów może okazać się lepsza (jeśli łącze jest wystarczająco szybkie, nie musisz się martwić słabym zasięgiem, jakość przetworzonego dźwięku nie zmieni się).

Jak to jest zrobione?

Zrzut ekranu pokazujący część możliwości programowej centrali Asterisk.

Zrzut ekranu pokazujący część możliwości programowej centrali Asterisk.

Jak widać, logika prowadzenia rozmów w telefonii internetowej i klasycznej jest znacząco inna, a zatem należy skorzystać z nieco innej warstwy sprzętowej. Co najważniejsze, w VoIP stosuje się dużo więcej urządzeń niż w typowej telefonii. Odpowiedź na pytanie, dlaczego projektanci tak skomplikowali sprawę, jest prosta - technologia ta umożliwia rozmowy zarówno w sieci lokalnej, jak w Internecie i między nimi. Z tego względu potrzebny jest sprzęt działający na styku sieci telekomunikacyjnej i internetowej. Poza wspomnianymi wyżej terminalami, czyli urządzeniami stosowanymi przez końcowego użytkownika, takimi jak telefony VoIP, komputery z odpowiednim oprogramowaniem czy telefony komórkowe obsługujące VoIP, oprócz sieci GSM, do połączenia ze zwykłą siecią telefoniczną używa się tzw. bramek (gateway). Bramka obsługuje połączenia między różnymi sieciami oraz zapewnia interfejs między różnymi systemami. Dodatkowa jednostka kontrolna (MCU) używana jest do obsługi konferencji między trzema lub więcej użytkownikami - kieruje ruchem, po otrzymaniu dźwięku od wszystkich aktualnie mówiących "miesza" je i dopiero tak przekształcone przesyła słuchającym (oczywiście możliwy jest dupleks, czyli jednoczesne nadawanie i odbieranie informacji). Kolejnym elementem sieci jest gatekeeper (nadzorca). To urządzenie, z którego terminale muszą korzystać zgodnie ze specyfikacją standardu H.323, służy do zarządzania strefą zawierającą terminale, bramki i MCU. Obsługuje wszystkie połączenia we własnej strefie, a międzystrefowe wymagają komunikacji między dwoma lub więcej gatekeeperami. Mimo że standard określa cztery typy urządzeń, fizycznie może być ich mniej, np. gdy gatekeeper jest wbudowany w terminal lub połączony z bramką i MCU. Ponadto wszystkie mogą być programami uruchomionymi na jednej fizycznej maszynie.


Zobacz również