Session Ini­tia­tion Protocol (SIP) serve a stabilire e chiudere con­nes­sio­ni audio e video in tempo reale ed è uti­liz­za­to in par­ti­co­la­re nella telefonia IP.

Che cos’è SIP?

Le vi­deo­con­fe­ren­ze, la mes­sa­gi­sti­ca istan­ta­nea, la con­di­vi­sio­ne di file, le te­le­fo­na­te tramite IP e altre forme di co­mu­ni­ca­zio­ne in tempo reale fanno parte della vita quo­ti­dia­na di molte persone sia in ambito privato che la­vo­ra­ti­vo. Per tutte queste ap­pli­ca­zio­ni, un fattore im­por­tan­te è l’uso di Session Ini­tia­tion Protocol o, in breve, SIP. Questo pro­to­col­lo di rete è par­ti­co­lar­men­te im­por­tan­te per l’in­stau­ra­zio­ne iniziale, il controllo e la suc­ces­si­va chiusura di chiamate audio o video tramite VoIP (Voice over IP) tra due o più utenti. Questa tec­no­lo­gia tiene conto delle par­ti­co­la­ri­tà delle reti IP e co­sti­tui­sce un com­po­nen­te de­ter­mi­nan­te nel settore della co­mu­ni­ca­zio­ne in tempo reale.

L’in­tro­du­zio­ne di SIP, definito nella norma RFC 3261, ha reso la telefonia tramite internet una reale al­ter­na­ti­va alle te­le­fo­na­te tra­di­zio­na­li fatte con un impianto te­le­fo­ni­co hardware. Grazie al pro­to­col­lo SIP, gli utenti possono sfruttare una mobilità di gran lunga maggiore e ap­pro­fit­ta­re di notevoli vantaggi in termini di costi. Per questo motivo SIP, sin dalla sua in­tro­du­zio­ne nel 2004, è diventato sempre più im­por­tan­te e ha so­sti­tui­to quasi del tutto gli impianti te­le­fo­ni­ci fissi.

Session Ini­tia­tion Protocol è un pro­to­col­lo testuale e sotto diversi aspetti è pa­ra­go­na­bi­le all’HTTP (Hypertext Transfer Protocol) per il web e all’SMTP (Simple Mail Transfer Protocol) per la co­mu­ni­ca­zio­ne tramite e-mail.

Quali sono le funzioni del pro­to­col­lo SIP?

Ana­lo­ga­men­te agli altri due pro­to­col­li men­zio­na­ti, anche SIP funziona sul quinto livello del modello ISO/OSI, ossia sul livello di sessione (in inglese: “Session Layer”). La funzione del pro­to­col­lo SIP è quindi simile a quella di un cen­tra­li­no te­le­fo­ni­co di una volta, quando i te­le­fo­ni­sti dovevano in­nan­zi­tut­to as­si­cu­rar­si di stabilire il col­le­ga­men­to tra due persone. Nel corso della chiamata, la linea veniva mantenuta e, quando entrambe le parti avevano terminato, il col­le­ga­men­to veniva chiuso e la linea veniva nuo­va­men­te liberata per altre chiamate. SIP svolge anch’esso le stesse funzioni. Altri aspetti della co­mu­ni­ca­zio­ne, invece, non sono di com­pe­ten­za di Session Ini­tia­tion Protocol.

Con l’espan­sio­ne SIPS (Session Ini­tia­tion Protocol Secure) il pro­to­col­lo SIP permette anche di ef­fet­tua­re chiamate sicure e crit­to­gra­fa­te. Poiché sessione e strumenti sono separati l’una dagli altri, in teoria è possibile crit­to­gra­fa­re anche i ri­spet­ti­vi flussi di dati stessi. Per la tra­smis­sio­ne dei dati vocali veri e propri esistono alcuni altri pro­to­col­li, ad esempio Real Time Transport Protocol (RTP) e Session De­scrip­tion Protocol (SDP), che fornisce gli indirizzi IP.

Come funziona SIP?

SIP si basa su una tra­di­zio­na­le ar­chi­tet­tu­ra client-server. Il pro­to­col­lo di base funziona tramite richieste e risposte: Session Ini­tia­tion Protocol funge quindi da in­ter­me­dia­rio tra i terminali collegati, che possono essere di­spo­si­ti­vi pra­ti­ca­men­te di qualsiasi tipo dotati di col­le­ga­men­to a internet. SIP riceve le richieste dei client o User Agent Client (UAC) e le risposte dai ri­spet­ti­vi server o User Agent Server (UAS). L’in­ter­fac­cia [SIP trunk] si occupa di mettere a di­spo­si­zio­ne i numeri di telefono. Lo scambio di dati vero e proprio è tuttavia affidato agli altri pro­to­col­li men­zio­na­ti. Ulteriori com­po­nen­ti per la co­mu­ni­ca­zio­ne con SIP possono essere i server proxy e altri gateway.

Per in­di­vi­dua­re il tipo di con­nes­sio­ne possibile si utilizza Session De­scrip­tion Protocol, che ne gestisce le modalità. Queste diverse me­to­do­lo­gie sono note anche come codec. Anche gli indirizzi di rete da uti­liz­za­re sono stabiliti dal pro­to­col­lo SDP. Una volta chiariti questi punti, un pro­to­col­lo come RTP si occupa della tra­smis­sio­ne dei dati veri e propri. A sessione conclusa, la con­nes­sio­ne viene in­ter­rot­ta cor­ret­ta­men­te dal pro­to­col­lo SIP.

Come funziona l’in­di­riz­za­men­to di Session Ini­tia­tion Protocol?

Per eseguire cor­ret­ta­men­te l’in­di­riz­za­men­to, SIP utilizza il co­sid­det­to Uniform Resource Iden­ti­fier (URI) e il Domain Name System (DNS). Gli indirizzi, assegnati a tutti gli utenti, pre­sen­ta­no una struttura simile a normali indirizzi e-mail. Ana­lo­ga­men­te a un indirizzo e-mail, un indirizzo SIP è composto da due parti: un nome utente o un numero di telefono nella prima parte, seguiti dalla rete cor­ri­spon­den­te. L’uso dei numeri di telefono è par­ti­co­lar­men­te comune sui di­spo­si­ti­vi che offrono un’in­ter­fac­cia con le normali reti te­le­fo­ni­che.

Quali sono le richieste SIP?

SIP utilizza diverse richieste (in inglese: “Request”) alle quali occorre reagire con delle risposte (in inglese: “Response”). Queste risposte si basano sui codici di stato HTTP. Le richieste dei pro­to­col­li SIP si sud­di­vi­do­no in richieste SIP fon­da­men­ta­li e richieste SIP avanzate. Nel dettaglio, le richieste sono le seguenti:

Richieste SIP fon­da­men­ta­li

  • ACK conferma la ricezione di una richiesta o di una risposta.
  • BYE chiude cor­ret­ta­men­te una sessione attiva.
  • CANCEL annulla una richiesta in corso.
  • INVITE invia una richiesta a un server per stabilire una sessione.
  • OPTIONS fornisce ai terminali un riepilogo delle spe­ci­fi­che degli altri di­spo­si­ti­vi coinvolti.
  • REGISTER registra un di­spo­si­ti­vo presso il fornitore di servizi.

Richieste SIP avanzate

  • INFO permette di fornire in­for­ma­zio­ni non di­ret­ta­men­te correlate alla sessione SIP.
  • MESSAGE trasmette un messaggio di testo a un di­spo­si­ti­vo.
  • NOTIFY verifica lo stato della con­nes­sio­ne e invia messaggi in caso di modifiche.
  • PRACK conferma una richiesta in via prov­vi­so­ria.
  • REFER consente il tra­sfe­ri­men­to di chiamata verso un altro utente.
  • SUBSCRIBE permette di mo­ni­to­ra­re un dato evento e di inviare un messaggio se tale evento si verifica.
  • UPDATE consente di cambiare lo stato di una chiamata.

Quali risposte SIP si uti­liz­za­no?

Le risposte SIP servono per ri­spon­de­re alle richieste sopra elencate. Tali risposte sono suddivise in sei categorie:

  • 1xx fornisce in­for­ma­zio­ni di stato prov­vi­so­rie, ad esempio prima che il server reagisca.
  • 2xx indica che la richiesta è andata a buon fine.
  • 3xx fornisce in­for­ma­zio­ni sulla pos­si­bi­li­tà o sulla necessità di un rein­di­riz­za­men­to.
  • 4xx indica che non è stato possibile gestire una richiesta.
  • 5xx fornisce in­for­ma­zio­ni su un errore del server.
  • 6xx indica che è stato possibile con­tat­ta­re il server, ma che la tran­sa­zio­ne non è andata a buon fine per vari motivi.

Qual è la dif­fe­ren­za fra SIP e VoIP?

Anche se questi termini sono uti­liz­za­ti spesso nello stesso contesto e i due pro­to­col­li sono stret­ta­men­te correlati tra loro, SIP e VoIP non sono sinonimi. Il pro­to­col­lo SIP serve a stabilire, mantenere e terminare una con­nes­sio­ne. Per la tra­smis­sio­ne vera e propria dei pacchetti di dati su diversi tipi di rete e server è invece ne­ces­sa­rio il pro­to­col­lo VoIP, che entra quindi in gioco là dove SIP ha già svolto la sua funzione.

Vai al menu prin­ci­pa­le