Szepty w kanałach

Strona głównaSzepty w kanałach
13.10.2009 16:05
Szepty w kanałach
Źródło zdjęć: © heise-online.pl

Osoba, której telefon zadzwonił, może zarejestrować wypowiedź dzwoniącego jeszcze przed właściwym nawiazaniem połączenia, a więc przed podniesieniem słuchawki. Może to być przykre w skutkach przy wykrzykiwaniu do słuchawki niemiłych dla drugiej strony rzeczy w oczekiwaniu na odebranie przez nią połączenia. Niewielkim kosztem można stworzyć infrastrukturę pozwalającą wypróbować tę właściwość telefonii internetowej.

Podsłuchiwanie sieci VoIP

Osoba, której telefon zadzwonił, może zarejestrować wypowiedź dzwoniącego jeszcze przed właściwym nawiazaniem połączenia, a więc przed podniesieniem słuchawki. Może to być przykre w skutkach przy wykrzykiwaniu do słuchawki niemiłych dla drugiej strony rzeczy w oczekiwaniu na odebranie przez nią połączenia. Niewielkim kosztem można stworzyć infrastrukturę pozwalającą wypróbować tę właściwość telefonii internetowej.

288764224430422163
Źródło zdjęć: © (fot. heise-online.pl)

Early Media to funkcja, która umożliwia odbiorcy rozmowy telefonicznej przekazywanie informacji dźwiękowych już w czasie ustanawiania połączenia. Jej właściwym przeznaczeniem jest realizacja indywidualnych sygnałów zajętości, obsługa komunikatów typu "Nie ma takiego numeru" czy "Użytkownik tego numeru jest w tej chwili nieosiągalny", a także informowanie o płatnościach przez operatorów CallByCall. Zaleta dla użytkownika jest taka, że informacje te nie obciążają jego rachunku –. ponieważ sama próba nawiązania połączenia nie jest płatna. Licznik zaczyna bić dopiero w momencie, gdy obydwaj uczestnicy rozmowy zostaną aktywnie połączeni.

W większości przypadków mechanizm Early Media jest stosowany jedynie w kierunku dzowniącego, jednak możliwe jest też przekazywanie danych głosowych w kierunku od dzwoniącego do adresata połączenia. Dzięki temu dzwoniący może głosowo lub tonowo wysyłać instrukcje aktywacji systemów lub interaktywnych odpowiedzi głosowych (Interactive Voice Response, IVR). Program Asterisk umożliwia podsłuchanie tych danych –. w związku z tym możliwe jest nagrywanie wypowiedzi wygłaszanych jeszcze w czasie nawiązywania połączenia.

Nawiązywanie połączenia

Konfiguracja testowa wymaga posiadania konta użytkownika u operatora SIP, który stosuje bramkę PSTN/VoIP obsługiwaną przez Early Media w obu kierunkach. Takim operatorem jest np. Sipgate. Konto w Sipgate jest darmowe, może zostać założone przez Internet, a ponadto użytkownik otrzymuje numer telefonu stacjonarnego z własnej strefy –. na życzenie możliwe jest też uzyskanie numeru z obcej strefy. Połączenia przychodzące nie są obciążone dalszymi kosztami; Sipgate pobiera opłaty jedynie za połączenia wychodzące.

Do naszej testowej instalacji wykorzystaliśmy dystrybucję Ubuntu 8.10. Wymagania sprzętowe Asteriska są minimalne, dzięki czemu można go bez problemu stosować równolegle na działającym już serwerze. Aby wykorzystać lukę w EarlyMedia, należy zastosować oprogramowanie Asterisk w wersji 1.4.1 lub nowszej, ponieważ dopiero w tym wydaniu pojawiła się funkcja Chanspy z opcją Whisper. W repozytoriach Ubuntu znajdziemy obecnie edycję 1.4.21 tego oprogramowania. W celu wykonania instalacji wystarczy wykonać polecenie:

sudo apt-get install asterisk

Wszystkie potrzebne biblioteki i kodeki zostaną doładowane przez menedżera pakietów. Usługa Asterisk uruchamia się automatycznie.

Aby serwer Asterisk działający za routerem NAT był widoczny z Internetu, względnie przez Sipgate, należy zastosować regułę przekierowującą dla portu 5060. na którym działa SIP. Ponieważ niektóre routery DSL, jak np. W701V z T-Com, zawierają własne oprogramowanie do obsługi VoIP, w ich przypadku port ten jest już zajęty i nie można go wykorzystywać do przekierowań. W takim wypadku komunikację z SIP trzeba przenieść na inny port, np. 5601. Jeśli serwer mamy zainstalowany w domu, rozsądnym wyjściem jest przydzielenie jego publicznego adresu IP nazwie domenowej usługodawcy dynamicznego DNS, np. dyndns.org.

Konfiguracja

Poniższe przykłady konfiguracyjne mają za zadanie jedynie zademonstrowanie zagadnienia. Nie zapewniają one stworzenia funkcjonującej instalacji telefonicznej umożliwiającej odbieranie połączeń z zewnątrz. Głównymi obszarami konfiguracji Asteriska są pliki /etc/asterisk/sip.conf i /etc/asterisk.extensions.conf. Zbiór sip.conf zawiera wszystkie ustawienia związane z konfiguracją sieci i używanymi kodekami:

[general]
context=default
allowoverlap=no
bindport=5061
bindport=0.0.0.0
srvlookup=yes
qualify=no
disallow=all
allow=ulaw
allow=libc
allow=alaw
allow=g729
allow=gsm
allow=slinear
register => Sipgate-ID:Passwort@sipgate.com/Sipgate-ID
externhost=mojadomena.dyndns.org
nat=yes

Opcja bindport jest standardowo ustawiona na port 5060. Jeśli router DSL ma problemy z obsługą tego portu (patrz wyżej), trzeba go zmienić np. na port 5061. Dane w opcji register służą Asteriskowi do logowania się na serwerze Sipgate. Sipgate-ID obejmuje przy tym przydzielony siedmiocyfrowy numer oraz przynależne mu hasło (nie należy tego mylić z danymi przydzielanymi w czasie logowania). Identyfikator i hasło można podejrzeć w ustawieniach konta Sipgate. W opcji externhost podawana jest domena zarejestrowana u operatora dynamicznych nazw DNS. Z kolei ustawienie nat=yes informuje Asteriska, że na drodze do bramki SIP stoi router NAT.

Dodatkowo sip.conf zawiera też dane dotyczące kont użytkowników, za pomocą których do centralki Asterisk logować mogą się zarówno inni uczestnicy połączeń, jak i operator SIP. Bez zalogowania się bramki Sipgate możliwe byłyby jedynie rozmowy wychodzące. W celu przeprowadzania tych ostatnich należy utworzyć konto płatności w Sipgate i doładować je, w przeciwnym wypadku usłyszymy komunikat mówiący o tym, że usługa jest niedostępna.

[sipgate]
type=friend
insecure=invite
nat=yes
username=Sipgate-ID
fromuser=Sipgate-ID
fromdomain=sipgate.de
secret=Passwort
host=sipgate.de
qualify=yes
canreinvite=no
dtmfmode=rfc2833
context=default

[100]
type=peer
username=100
secret=test
host=dynamic
disallow=all
allow=ulaw
allow=alaw
dtmfmode=rfc2833
context=default

[200]
type=peer
username=200
secret=test
host=dynamic
disallow=all
allow=ulaw
allow=alaw
dtmfmode=rfc2833
context=default

wydanie internetowe www.heise-online.pl

Udostępnij:
Wybrane dla Ciebie
Komentarze (7)