Czym jest SDP – Session Description Protocol (ang.)?

SDP to skrót od Session Description Protocol. Protokół Opisu Sesji (SDP) definiuje standard określania parametrów wymiany mediów (często mediów strumieniowych) między dwoma (zazwyczaj) punktami końcowymi. Został opublikowany przez IETF jako RFC 4566. SDP jest zazwyczaj osadzony lub enkapsulowany w innym protokole, a jego najczęstszym zastosowaniem jest protokół SIP, używany w większości aplikacji telefonii IP. W uproszczeniu protokół SDP to deklaracja punktu końcowego dotycząca jego specyfikacji i możliwości odbioru mediów. Typowa deklaracja SDP zawiera informacje o:

  • adresie IP, który jest gotowy do odbioru strumienia multimediów,
  • numerze portu, na którym nasłuchiwany jest przychodzący strumień,
  • typie mediów, które punkt końcowy spodziewa się odebrać (zazwyczaj audio),
  • protokole, w którym ma się odbywać wymiana informacji (zazwyczaj RTP),
  • metodzie kompresji obsługiwanej przez punkt końcowy (kodek).

…i prawdopodobnie więcej. W typowym procesie nawiązywania sesji uczestniczą dwa punkty końcowe, z których każdy wysyła komunikat SDP, aby poinformować drugi punkt o swoich specyfikacjach i możliwościach. SDP sam w sobie nie przesyła żadnych mediów, a jedynie ogranicza się do negocjacji zgodnych parametrów wymiany mediów. Same strumienie multimediów są obsługiwane przez inny kanał i protokół. Przyjrzyjmy się prostemu przykładowi:

v=0
o=MyStreamer 2398026505 2307593197 IN IP4 10.20.30.40
s=MyStreamer Audio Session
c=IN IP4 10.11.12.13
t=0 0
m=audio 15010 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a

…widzimy, że punkt końcowy deklaruje chęć odbierania mediów:

  • pod adresem IP 10.11.12.13 (parametr „c=”)
  • na porcie 15010 (zadeklarowany w parametrze „m=”)
  • w formacie audio (zadeklarowany w parametrze „m=”)
  • za pomocą protokołu RTP, obsługując dwa możliwe kodeki o numerach 0 i 101, gdzie:

    • kodek 0 to PCMU o częstotliwości 8000 Hz
    • kodek 101 to telephone-event o częstotliwości 8000 Hz (telephone-event to w praktyce ton DTMF)
    • w trybie dwukierunkowym („a=sendrecv”)

Więcej informacji