SIP (Session Initiation Protocol)
Basiese Inligting
SIP (Session Initiation Protocol) is 'n seinstuur- en oproepbeheerprotokol wat wyd gebruik word vir die tot stand bring, wysiging en beëindiging van multimedia-sessies, insluitend stem, video en onmiddellike boodskappe, oor IP-netwerke. Ontwikkel deur die Internet Engineering Task Force (IETF), word SIP gedefinieer in RFC 3261 en het die de facto standaard vir VoIP en eengemaakte kommunikasie geword.
Sommige sleutelkenmerke van SIP sluit in:
Teksgesentreerde Protokol: SIP is 'n teksgebaseerde protokol, wat dit mensleesbaar en makliker om te foutsoek. Dit is gebaseer op 'n versoek-antwoordmodel, soortgelyk aan HTTP, en gebruik metodes soos INVITE, ACK, BYE en CANCEL vir die beheer van oproepsessies.
Skaalbaarheid en Buigsaamheid: SIP is hoogs skaalbaar en kan gebruik word in kleinskaalse implementasies sowel as groot onderneming- en draergraderingsomgewings. Dit kan maklik uitgebrei word met nuwe kenmerke, wat dit aanpasbaar maak vir verskeie gevalle en vereistes.
Interoperabiliteit: SIP se wye aanvaarding en standaardisering verseker beter interoperabiliteit tussen verskillende toestelle, toepassings en diensverskaffers, wat naatlose kommunikasie oor verskeie platforms bevorder.
Modulêre Ontwerp: SIP werk saam met ander protokolle soos RTP (Real-time Transport Protocol) vir mediaversending en SDP (Session Description Protocol) vir die beskrywing van multimedia-sessies. Hierdie modulêre ontwerp maak groter buigsaamheid en verenigbaarheid met verskillende mediatipes en kodeks moontlik.
Proksi- en Herleiingbedieners: SIP kan proksi- en herleiingbedieners gebruik om oproeprouting te fasiliteer en gevorderde kenmerke soos oproepdeurvorsing, oproepoorplasing en voicemaildienste te bied.
Teenwoordigheid en Onmiddellike Boodskappe: SIP is nie beperk tot stem- en videokommunikasie nie. Dit ondersteun ook teenwoordigheid en onmiddellike boodskappe, wat 'n wye reeks eengemaakte kommunikasietoepassings moontlik maak.
Ten spyte van sy baie voordele kan SIP moeilik wees om te konfigureer en te bestuur, veral wanneer dit kom by NAT-deursending en vuurmuurprobleme. Nietemin, sy veelsydigheid, skaalbaarheid en uitgebreide ondersteuning regoor die bedryf maak dit 'n gewilde keuse vir VoIP en multimedia kommunikasie.
SIP Metodes
Die kern SIP-metodes wat in RFC 3261 gedefinieer is, sluit in:
INVITE: Gebruik om 'n nuwe sessie (oproep) te inisieer of 'n bestaande een te wysig. Die INVITE-metode dra die sessiebeskrywing (gewoonlik deur SDP te gebruik) om die ontvanger in te lig oor die besonderhede van die voorgestelde sessie, soos mediatipes, kodeks en vervoerprotokolle.
ACK: Gestuur om die ontvangs van 'n finale antwoord op 'n INVITE-versoek te bevestig. Die ACK-metode verseker die betroubaarheid van INVITE-transaksies deur end-to-end bevestiging te voorsien.
BYE: Gebruik om 'n gevestigde sessie (oproep) te beëindig. Die BYE-metode word deur een van die partye in die sessie gestuur om aan te dui dat hulle die kommunikasie wil beëindig.
CANCEL: Gestuur om 'n hangende INVITE-versoek te kanselleer voordat die sessie gevestig is. Die CANCEL-metode maak dit vir die sender moontlik om 'n INVITE-transaksie te stuit as hulle van gedagte verander of as daar geen reaksie van die ontvanger is nie.
OPTIONS: Gebruik om navraag te doen na die vermoëns van 'n SIP-bediener of gebruiker. Die OPTIONS-metode kan gestuur word om inligting oor ondersteunde metodes, mediatipes of ander uitbreidings aan te vra sonder om werklik 'n sessie te vestig.
REGISTER: Gebruik deur 'n gebruikersagent om sy huidige ligging by 'n SIP-registratorbediener te registreer. Die REGISTER-metode help om 'n opgedateerde koppeling tussen 'n gebruiker se SIP-URI en hul huidige IP-adres te handhaaf, wat oproeprouting en aflewering moontlik maak.
Let daarop dat dit nie nodig is om die REGISTER vir enigiets te gebruik om iemand te bel nie.
Dit is egter moontlik dat die oproeper in orde moet outentiseer voordat hy 'n INVITE uitvoer, of hy sal 'n 401 Onbevoegd
-antwoord ontvang.
Benewens hierdie kernmetodes is daar verskeie SIP-uitbreidingsmetodes wat in ander RFC's gedefinieer is, soos:
SUBSCRIBE: Gedefinieer in RFC 6665, word die SUBSCRIBE-metode gebruik om kennisgewings te versoek oor die toestand van 'n spesifieke hulpbron, soos 'n gebruiker se teenwoordigheid of oproepstatus.
NOTIFY: Ook gedefinieer in RFC 6665, word die NOTIFY-metode deur 'n bediener gestuur om 'n geabonneerde gebruikersagent in te lig oor veranderinge in die toestand van 'n gemonitorde hulpbron.
REFER: Gedefinieer in RFC 3515, word die REFER-metode gebruik om te versoek dat die ontvanger 'n oorplasing uitvoer of na 'n derde party verwys. Dit word tipies gebruik vir oproepoorplasingscenarios.
MESSAGE: Gedefinieer in RFC 3428, word die MESSAGE-metode gebruik om onmiddellike boodskappe tussen SIP-gebruikersagente te stuur, wat teksgebaseerde kommunikasie binne die SIP-raamwerk moontlik maak.
UPDATE: Gedefinieer in RFC 3311, maak die UPDATE-metode dit moontlik om 'n sessie te verander sonder om die toestand van die bestaande dialoog te beïnvloed. Dit is nuttig vir die opdatering van sessieparameters, soos kodeks of mediatipes, tydens 'n lopende oproep.
PUBLISH: Gedefinieer in RFC 3903, word die PUBLISH-metode deur 'n gebruikersagent gebruik om gebeurtenistoestandinligting na 'n bediener te publiseer, wat dit beskikbaar maak vir ander belanghebbendes.
SIP-Responskodes
1xx (Voorlopige Antwoorde): Hierdie antwoorde dui daarop dat die versoek ontvang is en dat die bediener voortgaan om dit te verwerk.
100 Trying: Die versoek is ontvang, en die bediener werk daaraan.
180 Ringing: Die ontvanger word gewaarsku en sal die oproep aanneem.
183 Session Progress: Verskaf inligting oor die vordering van die oproep.
2xx (Suksesvolle Antwoorde): Hierdie antwoorde dui daarop dat die versoek suksesvol ontvang, verstaan en aanvaar is.
200 OK: Die versoek was suksesvol, en die bediener het dit vervul.
202 Accepted: Die versoek is aanvaar vir verwerking, maar dit is nog nie voltooi nie.
3xx (Herleiingsantwoorde): Hierdie antwoorde dui daarop dat verdere aksie nodig is om die versoek te vervul, tipies deur 'n alternatiewe hulpbron te kontak.
300 Multiple Choices: Daar is verskeie opsies beskikbaar, en die gebruiker of kliënt moet een kies.
301 Moved Permanently: Die versoekte hulpbron het 'n nuwe permanente URI gekry.
302 Moved Temporarily: Die versoekte hulpbron is tydelik beskikbaar by 'n ander URI.
305 Use Proxy: Die versoek moet na 'n gespesifiseerde proksi gestuur word.
4xx (Kliëntfoutantwoorde): Hierdie antwoorde dui daarop dat die versoek slegte sintaksis bevat of nie deur die bediener vervul kan word nie.
400 Bad Request: Die versoek was verdraaid of ongeldig.
401 Unauthorized: Die versoek vereis gebruikeroutentisering.
403 Forbidden: Die bediener het die versoek verstaan, maar weier om dit te vervul.
404 Not Found: Die versoekte hulpbron is nie op die bediener gevind nie.
408 Request Timeout: Die bediener het nie 'n volledige versoek binne die tyd wat dit bereid was om te wag, ontvang nie.
486 Busy Here: Die ontvanger is tans besig en kan nie die oproep aanneem nie.
5xx (Bedieningsfoutantwoorde): Hierdie antwoorde dui daarop dat die bediener nie 'n geldige versoek kon vervul nie.
500 Internal Server Error: Die bediener het 'n fout teëgekom tydens die verwerking van die versoek.
501 Not Implemented: Die bediener ondersteun nie die funksionaliteit wat nodig is om die versoek te vervul nie.
503 Service Unavailable: Die bediener is tans nie in staat om die versoek te hanteer as gevolg van instandhouding of oorlading nie.
6xx (Globale Mislukkingsantwoorde): Hierdie antwoorde dui daarop dat die versoek nie deur enige bediener vervul kan word nie.
600 Busy Everywhere: Alle moontlike bestemmings vir die oproep is besig.
603 Decline: Die ontvanger wil nie aan die oproep deelneem nie.
604 Does Not Exist Anywhere: Die versoekte hulpbron is nêrens in die netwerk beskikbaar nie.
Voorbeelde
SIP UITNODIGING Voorbeeld
SIP REGISTER Voorbeeld
Die REGISTER-metode word in die Session Initiation Protocol (SIP) gebruik om 'n gebruikeragent (UA), soos 'n VoIP-foon of 'n sagtetoestel, toe te laat om sy ligging by 'n SIP-registratorbediener te registreer. Hierdie proses laat die bediener weet waar om inkomende SIP-versoeke wat bestem is vir die geregistreerde gebruiker te roeteer. Die registratorbediener is gewoonlik deel van 'n SIP-proksibediener of 'n toegewyde registrasiebediener.
Hier is 'n gedetailleerde voorbeeld van die SIP-boodskappe wat betrokke is by 'n REGISTER-verifikasieproses:
Aanvanklike REGISTER versoek van UA na die registratorbediener:
Hierdie aanvanklike REGISTER-boodskap word deur die UA (Alice) na die registrasiebediener gestuur. Dit sluit belangrike inligting in soos die gewenste registrasieduur (Expires), die gebruiker se SIP URI (sip:alice@example.com), en die gebruiker se kontakadres (sip:alice@192.168.1.100:5060).
401 Onbevoegd reaksie van die registrasiebediener:
Die registrarserver reageer met 'n "401 Onbevoegd" boodskap, wat 'n "WWW-Authenticate" kop bevat. Hierdie kop bevat inligting wat nodig is vir die UA om homself te verifieer, soos die verifikasie-realm, nonce, en algoritme.
REGISTREER versoek met verifikasie-legitimasie:
Die UA stuur 'n ander REGISTER versoek, hierdie keer met die "Authorization" kop met die nodige geloofsbriewe, soos die gebruikersnaam, realm, nonce, en 'n responswaarde wat bereken is met die verskafde inligting en die gebruiker se wagwoord.
Dit is hoe die Autoriseringsrespons bereken word:
Suksesvolle registrasie respons van die registrasiebediener:
Na die registrarserver die verskafte geloofsbriewe verifieer, stuur dit 'n "200 OK" respons om aan te dui dat die registrasie suksesvol was. Die respons sluit die geregistreerde kontakinligting en die vervaltyd vir die registrasie in. Op hierdie punt is die gebruikeragent (Alice) suksesvol geregistreer by die SIP-registrarserver, en inkomende SIP-versoeke vir Alice kan na die toepaslike kontakadres gerouteer word.
Oproep Voorbeeld
Dit word nie genoem nie, maar Gebruiker B moet 'n REGISTER-boodskap aan Proxy 2 gestuur het voordat hy oproepe kan ontvang.
Last updated