Politechnika
Wrocławska
Wydział
Elektroniki
Instytut Telekomunikacji, Teleinformatyki
i Akustyki
Pracownia Sieci
Telekomunikacyjnych
Zintegrowane systemy telekomunikacyjne
Termin zajęć (dzień
tygodnia i godzina):
Wtorek 13.15
Miejsce zajęć
(sala/budynek):
709/C5
Nr ćwiczenia:
6
Tytuł ćwiczenia:
Transmisja głosu w sieciach IP – protokół SIP
Wykonawcy ćwiczenia:
Sebastian Węgrzyn
Jakub Gutkowski
Wojciech Wójcik
Nr grupy
laboratoryjnej:
1
Autor sprawozdania:
Data wykonania
ćwiczenia:
17.04.2007
Prowadzący:
mgr inż. Bogdan Miazga
Data wykonania
sprawozdania:
21.04.2007
Ocena:
1. Cel ćwiczenia
Celem niniejszego ćwiczenia było zapoznanie się (praktyczne i teoretyczne) z protokołem
VoIP. Na stanowisku laboratoryjnym poznaliśmy konfigurację prostej sieci VoIP z dwoma
terminalami. Dodatkowo należało zapisać i przeanalizować sesję SIP krótkiego transmisji
głosu. Na koniec należało się zapoznać z typami i rodzajami wiadomości.
2. Schemat sieci na stanowisku laboratoryjnym
Schemat sieci na stanowisku w laboratorium
Sieć 156.17.43.240
Maska 255.255.255.248
Brama 156.17.43.241
Sieć 156.17.43.248
Maska 255.255.255.248
Brama 156.17.43.249
zst43
Terminal VoIP
Adres IP: 156.17.43.243
zst50
Terminal VoIP
Adres IP: 156.17.43.250
Interfejs E 0
Adres IP : 156.17.43.241
Interfejs E 1
Adres IP: 156.17.43.249
zst24
Serwer Proxy
Adres IP : 156.17.30.66
Maska: 255.255.255.224
Interfejs E 2
Adres IP : 156.17.30.65
Podczas trwania laboratorium do dyspozycji mieliśmy zestaw jak na rysunku powyżej. Dwa
terminale VoIP w osobnych sieciach połączone “skrętką” z routerem. Router na interfejsie
E2 dodatkowo połączony jest z Serwerem Proxy obsługującym sesje SIP. Terminale VoIP
można było z łatwością przekonfigurowywać przy pomocy komputera klasy PC z
zainstalowaną przeglądarką WWW.
Na stanowisku ustanawialiśmy połączenia telefoniczne rejestrując przy okazji sesje SIP
używając do tego aplikacji “trace”. Do terminali były przypisane odpowiednio numery 1003
i 1004. Protokół jest również tak skonstruowany, iż umożliwia wywoływanie abonentów po
adresach IP lub nazwach DNS w formacie ' sip:
'. SIP (ang.
Session Initiation Protocol) jest protokołem zaproponowanym przez IETF do zestawiania
sesji pomiędzy jednym juz wieloma klientami. Jest on obecnie wiodącym protokołem
sygnalizacyjnym w sieciach Voice over IP wypierającym starszy protokół H.323.
3. Zarejestrowana sesja SIP
Przy pomocy trace'a zarejestrowaliśmy przykładową sesję SIP w przypadku, gdy abonent
dzwoni z terminalu zst50 na numer terminala zst43.
Sent to udp:156.17.30.66:5060 at 17/4/2007 13:48:11:506 (892 bytes):
INVITE sip:1003@zst24.ita.pwr.wroc.pl;user=phone SIP/2.0
Via: SIP/2.0/UDP 156.17.43.250:5060;branch=z9hG4bK-rmqwohzkq5t9
From: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
To: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>
Call-ID: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 INVITE
Max-Forwards: 70
Contact: <sip:1004@zst24.ita.pwr.wroc.pl;gruu=z9eltzyv>
User-Agent: snom100-2.04e
Accept-Language: en
Accept: application/sdp
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY,
SUBSCRIBE, PRACK, MESSAGE, INFO
Allow-Events: talk, hold, refer
Supported: timer, 100rel, replaces
Session-Expires: 7200
Content-Type: application/sdp
Content-Length: 208
v=0
o=root 595311776 595311776 IN IP4 156.17.43.250
s=call
c=IN IP4 156.17.43.250
t=0 0
m=audio 34001 RTP/AVP 8 101
a=rtpmap:8 pcma/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
Użytkownik o numerze
1004 generuje żądanie
INVITE, aby zaznaczyć, że
chce rozmawiać z
użytkownikiem o numerze
1003.
Protokół SDP (Session
Description Protocol) jest
używany do inicjalizacji
mediów strumieniowych.
Za transport informacji
odpowiada protokół RTP
( Real-Time Transport
Protocol)
Received from udp:156.17.43.249:5060 at 17/4/2007 13:48:11:584 (258 bytes):
SIP/2.0 100 Trying
v: SIP/2.0/UDP 156.17.43.250:5060;branch=z9hG4bK-rmqwohzkq5t9
f: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
t: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>
i: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 INVITE
l: 0
User Agent B
odbiera żądanie i
potwierdza to.
Received from udp:156.17.43.249:5060 at 17/4/2007 13:48:11:643 (563 bytes):
SIP/2.0 180 Ringing
v: SIP/2.0/UDP 156.17.43.250:5060;branch=z9hG4bK-rmqwohzkq5t9
Record-Route:
<sip:700c6b057108e2ac9c279c707938cb36@zst24.ita.pwr.wroc.pl:5060;madd
r=156.17.43.249;transport=udp>
f: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
t: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>;tag=hw7hih3peh
i: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 INVITE
m: <sip:1003@zst24.ita.pwr.wroc.pl;gruu=9gy74g67>
Allow-Events: talk, hold, refer
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY,
SUBSCRIBE, PRACK, MESSAGE, INFO
l: 0
User Agent B
wysyła sygnał
dzwonienia do User
Agent A, aby tamten
wiedział, że próba
nawiązania
połączenia jest w
toku.
Received from udp:156.17.43.249:5060 at 17/4/2007 13:48:13:792 (904 bytes):
SIP/2.0 200 Ok
v: SIP/2.0/UDP 156.17.43.250:5060;branch=z9hG4bK-rmqwohzkq5t9
Record-Route:
<sip:700c6b057108e2ac9c279c707938cb36@zst24.ita.pwr.wroc.pl:5060;maddr
=156.17.43.249;transport=udp>
f: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
t: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>;tag=hw7hih3peh
i: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 INVITE
m: <sip:1003@zst24.ita.pwr.wroc.pl;gruu=9gy74g67>
Supported: timer, 100rel, replaces
Allow-Events: talk, hold, refer
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY,
SUBSCRIBE, PRACK, MESSAGE, INFO
User-Agent: snom100-2.04e
Session-Expires: 7200;refresher=uac
Require: timer
c: application/sdp
l: 208
v=0
o=root 959372260 959372260 IN IP4 156.17.43.243
s=call
c=IN IP4 156.17.43.243
t=0 0
m=audio 35001 RTP/AVP 8 101
a=rtpmap:8 pcma/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
User Agent B
decyduje się podjąć
rozmowę z User
Agent A. W tym
celu wysyła
komunikat OK.
Wszystkie
komunikaty
potwierdzeń
używają
oznaczenia '200
OK'.
Sent to udp:156.17.30.66:5060 at 17/4/2007 13:48:13:816 (516 bytes):
ACK
sip:700c6b057108e2ac9c279c707938cb36@zst24.ita.pwr.wroc.pl:5060;maddr=
156.17.43.249;transport=udp SIP/2.0
Via: SIP/2.0/UDP 156.17.43.250:5060;branch=z9hG4bK-qqdanv3rvwe9
Route: <sip:1003@zst24.ita.pwr.wroc.pl;gruu=9gy74g67>
From: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
To: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>;tag=hw7hih3peh
Call-ID: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 ACK
Max-Forwards: 70
Contact: <sip:1004@zst24.ita.pwr.wroc.pl;gruu=z9eltzyv>
Content-Length: 0
User Agent A
potwierdza
nawiązanie
rozmowy
komunikatem
ACK.
Received from udp:156.17.43.249:5060 at 17/4/2007 13:48:15:244 (792 bytes):
BYE sip:1004@156.17.43.250:5060;line=lhynyb3y SIP/2.0
v: SIP/2.0/UDP 156.17.43.249:5060;branch=z9hG4bK-
0a608cd9ec22eea8bc12f1c5de5007b0.1
v: SIP/2.0/UDP 127.0.0.1:5060;branch=z9hG4bK-
96265c0400e2eb1c976e751055b005e7.1
v: SIP/2.0/UDP 156.17.43.243:5060;branch=z9hG4bK-vy25ou5d9tee
Record-Route:
<sip:0a608cd9ec22eea8bc12f1c5de5007b0@zst24.ita.pwr.wroc.pl:5060;maddr
=156.17.43.249;transport=udp>
Record-Route:
<sip:96265c0400e2eb1c976e751055b005e7@zst24.ita.pwr.wroc.pl:5060;maddr
=127.0.0.1;transport=udp>
f: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>;tag=hw7hih3peh
t: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
i: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 BYE
Max-Forwards: 8
m: <sip:1003@zst24.ita.pwr.wroc.pl;gruu=9gy74g67>
User-Agent: snom100-2.04e
l: 0
Jeden z
użytkowników
kończy rozmowę
odkładając
słuchawkę. Jego
user agent
(terminal) wysyła
żądanie BYE.
Sent to udp:156.17.43.249:5060 at 17/4/2007 13:48:15:259 (771 bytes):
SIP/2.0 200 OK
Via: SIP/2.0/UDP 156.17.43.249:5060;branch=z9hG4bK-
0a608cd9ec22eea8bc12f1c5de5007b0.1
Via: SIP/2.0/UDP 127.0.0.1:5060;branch=z9hG4bK-
96265c0400e2eb1c976e751055b005e7.1
Via: SIP/2.0/UDP 156.17.43.243:5060;branch=z9hG4bK-vy25ou5d9tee
Record-Route:
<sip:0a608cd9ec22eea8bc12f1c5de5007b0@zst24.ita.pwr.wroc.pl:5060;maddr
=156.17.43.249;transport=udp>
Record-Route:
<sip:96265c0400e2eb1c976e751055b005e7@zst24.ita.pwr.wroc.pl:5060;maddr
=127.0.0.1;transport=udp>
From: <sip:1003@zst24.ita.pwr.wroc.pl;user=phone>;tag=hw7hih3peh
To: "1004" <sip:1004@zst24.ita.pwr.wroc.pl>;tag=o6aro6nozw
Call-ID: 3c2676b93bf0-6pj1djzwit4g@156-17-43-250
CSeq: 1 BYE
Contact: <sip:1004@zst24.ita.pwr.wroc.pl;gruu=z9eltzyv>
User-Agent: snom100-2.04e
Content-Length: 0
User Agent, do
którego zostało
wysłane żądanie
BYE odpowiada
komunikatem '200
OK'. Rozmowa
zostaje przerwana.
Typowe połączenie SIP.
Ważniejsze nagłówki:
•
Via – określa ścieżkę transferową wiadomości
•
To – wskazuje adres i URI (ang. Uniform Resource Identifier) korespondenta
•
From – zawiera SIP URI nadawcy oraz tag, jeden ze składników identyfikujących sesję
•
Call-ID – globalnie unikalny identyfikator połączenia powstały w wyniku kombinacji
ciągu pseudolosowego, nazwy hosta oraz adresu IP
•
Max-Forwards – limit przejść między serwerami, po dotarciu do serwera liczba jest
dekrementowana o 1, po wyzerowaniu nagłówka żądanie jest odrzucane z komunikatem
Too many hops.
•
Cseq – numer sekwencyjny, pole jest inkrementowane po wygenerowaniu nowego
żądania
•
Content-Type – zawiera informacje o części informacyjnej wiadomości
•
Content-Length – długość części informacyjnej podana w oktetach
Typy żądań:
•
REGISTER – przenosi dane identyfikujące aktualną lokalizację użytkownika, czyli adres
IP i URI
•
INVITE – informuje, że użytkownik albo konkretna usługa powinna dołączyć do
wskazanej sesji
•
ACK – potwierdzenie żądania INVITE
•
BYE – wskazuje zakończenie sesji
•
CANCEL – unieważnia żądanie podlegające przetwarzaniu
•
OPTIONS – dostarcza informacje o właściwościach strony
Odpowiedzi:
Numer
Typ
Przykład
1xx
informacyjna,etapowa
180,Ringing
2xx
akceptacyjna
200,OK
3xx
przekierowanie
302,Moved Temporarily
4xx
błąd klienta
403,Forbidden
5xx
błąd serwera
504,Gateway Time-Out
6xx
błąd globalny
600,Busy Everywhere
4. Podsumowanie
Protokół SIP jest alternatywnym rozwiązaniem w stosunku do protokołu H.323 jeśli chodzi
o mechanizmy sygnalizacyjne warstwy aplikacyjnej, używanym do obsługi wymiany
mulimedialnej w sieciach internetowych. Podstawowym czynnikiem stymulującym rozwój
SIP-a jest niezwykła popularność i zainteresowanie technologią VoIP. Ważną zaletą tego
protokołu jest prostota i funkcjonalność, zbliżona do protokołu HTTP. Komunikaty są
kodami ASCII, dzięki temu są bardzo czytelne i umożliwia to kreowanie rozszerzeń i
wykorzystanie specjalizowanych narzędzi. Jednym z efektów tego jest krótki czas
wdrażania rozwiązań VoIP-owych co , w dzisiejszych czasach, jest czynnikiem niezmiernie
ważnym. Architektura jest niezależna od topologii sieci, więc SIP może współpracować bez
problemów z wieloma innymi protokołami, takimi jak: UDP,TCP,X.25,ATM,IPX,PPP i
kilka innych. Ogólnie rzecz biorąc protokół SIP został zaprojektowany jako jeden z
elementów architektury multimedialnych usług internetowych, w której skład wchodzą
dodatkowo: RSVP(Resource Reservation Protocol),RTP(Real Time Protocol), SDP(Session
Description Protocol) oraz RTSP(Real Time Streaming Protocol).