Protokołu SIP jest protokołem sygnalizacyjnym używanym do inicjowania sesji multimedialnych. SIP umożliwiają realizacje negocjacji charakterystyki sesji oraz jej aktualizacje ale sam w sobie nie zawiera mechanizmów do opisu kształtu sesji, przenoszonej za pomocą protkołu RTP. W tym celu SIP wykorzystuje protokół SDP (Session Descriptions Protocol)
wchodzący bezpośrednio w skład komunikatu. SDP zawiera informacje o rodzaju
mediów, kodekach i ich parametrach, adresach IP, kierunku strumieniów, dostępnym pasmie itp.
Opis sesji:
- v= (protocol version) – wersja protokołu -> “0”
- o= (originator and session identifier) – zrodlo i identyfikator sesji -> “dowolna_nazwa id_sesji wersja_sesji IN (IP4|IP6) adresIP_zródła_sesji”
- s= (session subject) – temat sesjii -> “-“
- i=* (session information) – opis sesji -> nie używany
- u=* (URI of description) – uri dodatkowe opisu sesji -> nie używany
- e=* (email address) – adres email osoby odpowiedzialnej za sesje -> nie używany
- p=* (phone number) – numer telefoniczny osoby odpowiedzialnej za sesje -> nie używany
- c=* (connection information) – opis połaczenia, nie wymagany jeśli obecny dla każdego strumienia mediów -> “IN (IP4|IP6) adresIP”
- b=* (zero or more bandwidth information lines) – sugerowane pasmo -> nie używany
- One or more time descriptions
- z=* (time zone adjustments)- definicja strefy czasu -> nie używany
- k=* (encryption key) – klucz szyfrujący -> nie używane
- a=* (zero or more session attribute lines) – atrybuty: sendonly – jeśli strona tylko chce wysyłać media, recvonly – jeśli strona chce tylko odbierać media, inactive – bez mediów, sendrecv – jeśli strona chce wysyłać i odbierać media
- Zero or more media descriptions
Opis Czasu:
- t= (time the session is active) – czas sesji -> “0 0”
- r=* (zero or more repeat times) – cykliczność sesji -> nie używany
Opis Mediów:
- m= (media name and transport address) – opis mediów -> “(audio|video|text) RTP/AVP opis danych medialnych”
- i=* (media title) – opis mediów -> nie używany
- c=* (connection information) – opis połaczenia, nie wymagany jeśli obecny w opisie sesji, nadpisuje wartość z opisu sesji -> “IN (IP4|IP6) AdresIP”
- b=* (zero or more bandwidth information lines) – sugerowane pasmo -> nie używany
- k=* (encryption key) – klucz szyfrujący -> nie używane
- a=* (zero or more media attribute lines) – atrybuty strumienia, nadpisują atrybuty zdefiniowane w opisie sesji: sendonly – jeśli strona tylko chce wysyłać media, recvonly
– jeśli strona chce tylko odbierać media, inactive – bez mediów,
sendrecv – jeśli strona chce wysyłać i odbierać media, rtcp – port dla rtcp jesli nie, ptime – dlugosc mediów w sekunadach w przesylanym pakiecie, rtpmap – mapuje numer typu zawartosci do konkretnego kodeka i jego czestotliwosci, fmtp – umożliwia mapowanie parametrow tak aby sdp nie musialo tego rozumiec