Seansialustusprotokoll

Seansialustusprotokoll ("Session Initiation Protocol" SIP) on IETF poolt loodud signaliseerimisprotokoll multimeediaseansside algatamiseks ja juhtimiseks internetis.
SIP on rakendustaseme protokoll, mida kasutatakse IP-võrkudes multimeedia seansside algatamiseks, muutmiseks ja lõpetamiseks. SIP-protokoll võimaldab juhtida kõnet (VoIP ehk "Voice over Internet Protocol"), videot, sõnumivahetust (IM ehk "Instant Messaging"), olekuteavet ("presence") ja muid teenuseid.
SIP kasutab transpordikihis TCP- ("Transport Control Protocol", usaldusväärne transpordiprotokoll) või UDP- ("User Datagram Protocol", mitteusaldusväärne transpordi protokoll) protokolli ja võrgukihis IP-protokolli (IPv4 või IPv6). 
SIP on HTTP ("Hypertext Transfer Protocol") protokollil põhinev tekstipõhine protokoll, mille eesmärk on olla sõltumatu edastatavast meediast. SIP-protokolli eeliseks on lihtsus ja loetavus, puuduseks on tekstipõhisest vormingust tulenev suur andmemaht.
SIP meetodid.
SIP on päring-vastus tüüpi protokoll (nagu HTTP). SIP-päringuid nimetatakse meetoditeks. 2002. aastal kirjeldas IETF esimeses FRC-s (RFC 3261) 6 SIP meetodit:
Hiljem on lisandunud mitmeid SIP meetodeid:
SIP vastused.
SIP-päringutele saadetakse alati vastused, mis koosnevad kolmest numbrist ja tekstilisest selgitusest.
Vastused jagunevad järgmistesse kategooriatesse:
SIP päringu vorming.
SIP sõnumi päises märgitakse järgmised väljad:
Lisaks päisele on SIP sõnumil ka sisu. Iga SIP sõnum ei pruugi sisaldada sisu. Seansi algatamise päringu (INVITE) sisu osa on reeglina SDP (Session Description Protocol) vormingus ja sisaldab infot algatatava seansi meedia kohta. SDP on spetsifitseeritud dokumendis RFC 2327, mida on hiljem täiendatud dokumendis RFC 3264.
INVITE sõnumi SDP osa sisaldab muuhulgas järgmist infot:
SIP päringu näide:
codice_1
SIP serverid.
Kuigi SIP terminalid suudavad omavahel suhelda ilma muude seadmete vahenduseta (P2P SIP ehk "peer-to-peer" SIP), käib reaalselt enamik suhtlusest siiski läbi serverite.
SIP servereid on erinevat tüüpi:
SIP URI.
SIP URI (Uniform Resource Identifier) on unikaalne kasutajatunnus, mille alusel kasutajat identifitseeritakse. Igal kasutajal on SIP URI, mida kasutatakse seansside ühendamisel sellele kasutajale.
SIP URI kuju on sama mis e-posti aadressil ning see koosneb kasutajatunnusest ja domeenist (näiteks kasutaja@domeen.ee).
Päringute marsruutimiseks võib kasutada SIP URI kujul sip: kasutaja@domeen.ee või sip:kasutaja@193.214.150.100. Esimene variant vajab päringu marsruutimiseks DNS-päringuid, teine variant ei vaja, sest sisaldab juba domeeni IP-aadressi.
SIP-URI võib sisaldada ka telefoninumbrit (näiteks päringute marsruutimiseks telefonivõrgust või mobiilivõrgust). Sel juhul on SIP URI kujul sip: +3721234567@domeen.ee;useer=phone.
Lisaks SIP URI-le võib kasutajal olla ka TEL URI. Sel juhul väljendub kasutajatunnus telefoninumbri kujul, näiteks tel: +3721234567. See on vajalik seansside ühendamiseks telefonivõrgust või mobiilivõrgust.
TEL-URI korral on vaja telefoninumbri ja kasutajatunnuse vastavuse leidmiseks DNS/ENUM funktsiooni (TElephone NUmber Mapping).
DNS-päringud.
Selleks, et kasutajatunnuse või telefoninumbri alusel päringuid marsruutida, on vaja teada servereid, mis antud teenuse või kasutajaga tegelevad. Seda infot hoiavad DNS- (Domain Name System) serverid. 
NAPTR (NAming Authority Pointer) päringut kasutatakse, et leida, millist teenust ja protokolli võrk toetab. Näiteks päring NAPTR domeen.ee annab vastuseks _sip._udp.domeen.ee
Järgmisena tehakse SRV (Service Record) päring, et leida server/port, kuhu päring ühendada. Näiteks päringule SRV _sip._udp.domeen.ee tuleb vastus proxy.domeen.ee:5060 (5060 on vaikimisi SIP port).
Edasi tehakse päring proxy.domeen.ee IP-aadressi leidmiseks.
Kui päringus kasutatakse TEL URI-t, tehakse esmalt NAPTR päring telefoninumbrile vastava kasutajatunnuse leidmiseks. Selleks viiakse telefoninumber E.164 kujule (+3721234567), pööratakse numbrite järjestus ümber ja lisatakse lõppu e164.arpa. Näiteks numbrist +3721234567 saadakse 7.6.5.4.3.2.1.7.3.2.e164.arpa. Selle alusel tehakse NAPTR päring, millega saadakse teada telefoninumbrile vastav kasutajatunnus (näiteks kasutaja@domeen.ee).
SIP-sõnumite marsruutimine.
SIP-teenuste kasutamiseks peab kasutaja alati registreeruma. Selleks saadab kasutaja REGISTER päringu SIP Registrar serverisse, mis salvestab kasutaja oleku (registreerinud) ning seob kasutaja SIP URI ja terminali IP-aadressi.
Kui kasutaja a@domeen1.ee tahab ühendust võtta kasutajaga b@domeen2.ee, siis saadab kasutaja a päringu (INVITE) enda domeeni (domeen1.ee) teenindavale proksi serverile. Juhul kui SIP sõnumis puudub Route väli, vaatab proksi päringu URI-t. DNS päringutega leitab proksi kasutaja b domeeni teenindava serveri (domeen2.ee) ja edastab selle vastava võrgu proksile. domeen2.ee proksi küsib registrar serverilt kasutaja b asukohta (IP-aadressi) ja ühendab päringu kasutajale b.
SIP päringuid marsruuditakse:
1. Route välja järgi, selle puudumisel
2. SIP-URI järgi kasutades DNS (Domain Name System) päringuid.
Vastused marsruuditakse Via päise järgi:
Juhul kui proksi ei soovi jääda päringuid vahendama, siis ta ei lisa enda aadressi päringus Via väljale. Sellisel juhul marsruuditakse päringud vastavalt Contact väljas olevale infole. Selliseid proksisid nimetatakse olekuta proksideks. Proksid, mis jäävad päringuid vahendama kogu seansi ajaks, nimetatakse olekuga proksideks.
Viited.
1. IETF. SIP: Session Initiation Protocol. RFC 3261. .
2. Reliability of Provisional Responses in the Session Initiation Protocol (SIP). RFC 3262. .
3. Session Initiation Protocol (SIP)-Specific Event Notification. RFC 3265. .
4. Session Initiation Protocol (SIP) Extension for Event State Publication. RFC 3903. .
5. Session Initiation Protocol (SIP) Extension for Instant Messaging. RFC 3428. .
6. SDP: Session Description Protocol. RFC 2327. .
7. An Offer/Answer Model with the Session Description Protocol (SDP). RFC 3264.