See artikkel vajab toimetamist. (Märts 2010) |
See artikkel ootab keeletoimetamist. |
Seansialustusprotokoll (Session Initiation Protocol SIP) on IETF-i 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 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-päringutele saadetakse alati vastused, mis koosnevad kolmest numbrist ja tekstilisest selgitusest. Vastused jagunevad järgmistesse kategooriatesse:
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:
INVITE sip:user1@10.100.202.55:5060;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 195.250.168.178:5060;branch=z9hG4bKo9k1h800cg2ggakqv1g1.1
To: "Testkasutaja" <sip:kasutaja2@domeen.ee;transport=udp>;
From: <sip:kasutaja1@domeen.ee>;
tag=745694714-1203317338417-
Call-ID: BW0848584171802081154935902@192.168.26.4
CSeq: 363247769 INVITE
Max-Forwards: 7
Content-Length: 131
Contact: <sip:kasutaja1@123.456.789.0:5060;transport=udp>
Content-Type: application/sdp
Allow: ACK, BYE, CANCEL, INFO, INVITE, OPTIONS, PRACK, REFER, NOTIFY
Accept: multipart/mixed
Accept: application/media_control+xml
Accept: application/sdp
Accept: application/x-hotsip-FileTransfer+xml
Privacy: none
Session-Expires: 1800
Min-SE: 900
v=0
o=BroadWorks 721590 1 IN IP4 123.456.789.0
s=-
c=IN IP4 123.456.789.0
t=0 0
m=audio 50402 RTP/AVP 8 18 4
a=ptime:20
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 (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).
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-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.
Artikkel vajab vormindamist vastavalt Vikipeedia vormistusreeglitele. |
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.