Jaki protokół jest wykorzystywany podczas inicjacji sesji VoIP?
A. SIP
B. MGCP
C. SDP
D. MIME
Pytanie z egzaminu CKE, czerwiec 2013 (arkusz E.13-X-13.05).
SIP, czyli Session Initiation Protocol, jest protokołem sygnalizacyjnym używanym do inicjowania, modyfikowania i kończenia sesji VoIP. W praktyce oznacza to, że SIP nie przenosi samego głosu, tylko ustala, kto z kim ma rozmawiać, pod jakim adresem, przez jakie porty i z jakimi parametrami połączenia. Typowy scenariusz wygląda tak: telefon IP albo softphone rejestruje się do centrali VoIP komunikatem REGISTER, a przy zestawianiu rozmowy wysyłany jest komunikat INVITE. Potem pojawiają się odpowiedzi typu 100 Trying, 180 Ringing i 200 OK, a zakończenie rozmowy odbywa się przez BYE. Sam dźwięk zwykle idzie już przez RTP, a parametry mediów są opisane przez SDP, często jako treść komunikatu SIP. Standardowo SIP jest opisany m.in. w RFC 3261 i korzysta często z portu 5060 dla TCP/UDP albo 5061 przy szyfrowaniu przez TLS. Moim zdaniem warto to zapamiętać praktycznie: SIP to sterowanie połączeniem, RTP to głos, a SDP to opis techniczny mediów. Takie rozróżnienie bardzo pomaga przy diagnostyce central IP PBX, trunków SIP i telefonów VoIP.
W tym pytaniu łatwo pomylić kilka technologii, bo wszystkie mogą pojawić się w środowisku telefonii IP, ale pełnią różne role. MGCP jest protokołem sterowania bramami medialnymi, czyli może być używany np. między kontrolerem połączeń a bramką VoIP, która zamienia telefonię tradycyjną na IP. Nie jest jednak najczęściej wskazywanym protokołem inicjacji sesji użytkownika w VoIP. W typowej konfiguracji telefonu IP, softphone’a albo trunku do operatora to właśnie SIP zestawia i kończy połączenie. MIME też może brzmieć technicznie, ale to standard opisu typów zawartości, znany głównie z poczty elektronicznej i HTTP. W świecie SIP może pojawić się pośrednio, na przykład jako Content-Type: application/sdp, ale sam nie inicjuje rozmowy VoIP. SDP jest już bliżej tematu, bo opisuje parametry sesji: kodeki, adresy IP, porty RTP i kierunek transmisji. Tyle że SDP nie dzwoni, nie rejestruje telefonu i nie wysyła komunikatu INVITE. On raczej mówi: takie media proponuję. Typowy błąd myślowy polega na tym, że jeśli coś opisuje sesję, to od razu uznajemy to za protokół inicjacji. A w praktyce branżowej, zgodnej z RFC 3261, inicjowanie sesji realizuje SIP, często przenosząc opis SDP wewnątrz swoich komunikatów. Z mojego doświadczenia przy analizie problemów VoIP trzeba rozdzielać warstwę sygnalizacji od warstwy mediów, bo inaczej diagnoza robi się trochę zgadywaniem.