SIP (Session Initiation Protocol, RFC 3261) è un protocollo di segnalazione richiesta/risposta basato su testo che instaura, modifica e termina sessioni multimediali in tempo reale come le chiamate voce e video. Definisce user agent, proxy, registrar e redirect server e trasporta la descrizione della sessione (SDP) che negozia i media che gli endpoint scambieranno.
Che cos'è SIP
SIP è un protocollo di controllo di livello applicativo per creare e gestire sessioni multimediali su IP — più comunemente voce (VoIP), video e messaggistica. Non trasporta i media stessi; negozia e controlla le sessioni, poi i media fluiscono separatamente su RTP. Il suo design è deliberatamente simile a HTTP: messaggi di testo leggibili, metodi di richiesta e codici di risposta a tre cifre e indirizzamento basato su URI (sip:alice@example.com). Questa familiarità, e la sua indipendenza dai media sottostanti, hanno reso SIP il protocollo di segnalazione standard per VoIP, SIP trunking e VoLTE/IMS.
Entità SIP
SIP definisce un piccolo insieme di ruoli logici. Uno User Agent è un endpoint: agisce come User Agent Client (UAC) quando invia una richiesta e come User Agent Server (UAS) quando risponde. I proxy instradano le richieste verso la destinazione e possono forkarle verso più target. Un registrar registra dove un utente è attualmente raggiungibile (il suo Contact) tramite REGISTER. Un redirect server restituisce una posizione alternativa anziché inoltrare. Un Back-to-Back User Agent (B2BUA) termina e ri-origina una chiamata, collocandosi nel mezzo sia della segnalazione sia spesso dei media — il modello usato da session border controller e PBX.
| Entità | Ruolo |
|---|---|
| UAC | User Agent Client — origina una richiesta |
| UAS | User Agent Server — risponde a una richiesta |
| Proxy | Instrada/inoltra le richieste, può effettuare il forking verso più destinazioni |
| Registrar | Registra il Contact corrente di un utente (tramite REGISTER) |
| Server di reindirizzamento | Restituisce una posizione alternativa (3xx) invece di inoltrare |
| B2BUA | Termina e riavvia una chiamata (SBC, PBX) |
Transazioni e dialoghi
SIP ha due livelli di stato. Una transazione è una singola richiesta e le sue risposte (ad esempio un INVITE e i 100/180/200 che innesca), identificata dal parametro branch del Via. Un dialogo è la relazione peer-to-peer più lunga che una chiamata rappresenta, identificata dalla combinazione di Call-ID, tag From e tag To. INVITE crea un dialogo; le richieste successive nel dialogo (re-INVITE, BYE) vi fanno riferimento. Comprendere questa distinzione è essenziale per leggere un flusso SIP, perché risposte e ritrasmissioni sono abbinate a livello di transazione mentre la chiamata vive a livello di dialogo.
Trasporto e porte
SIP opera su UDP, TCP o TLS e (meno comunemente) SCTP o WebSocket per WebRTC. La porta predefinita IANA è la 5060 per UDP e TCP e la 5061 per SIP su TLS (segnalata da un URI sips:). UDP è comune per il suo basso overhead, ma i messaggi grandi che superano l'MTU del percorso dovrebbero usare TCP, e qualsiasi deployment che attraversi reti non attendibili dovrebbe usare TLS per la segnalazione e SRTP per i media. Il trasporto è selezionato per salto e può cambiare lungo il percorso.
| Trasporto | Porta predefinita | Note |
|---|---|---|
| UDP | 5060 | Basso overhead; passaggio a TCP al di sopra dell'MTU |
| TCP | 5060 | Per messaggi di grandi dimensioni e consegne affidabili |
| TLS (sips:) | 5061 | Segnalazione cifrata |
| WSS (WebSocket) | — | SIP su WebSocket sicuro per WebRTC |
Domande frequenti
A cosa serve SIP?
SIP instaura, modifica e abbatte sessioni multimediali in tempo reale su IP — chiamate voce e video, SIP trunking tra sistemi telefonici e operatori e controllo delle chiamate VoLTE/IMS. Gestisce la segnalazione; l'audio o il video effettivo viaggia separatamente su RTP.
SIP è simile a HTTP?
Per progettazione. SIP mutua da HTTP il modello richiesta/risposta, i messaggi basati su testo, la sintassi degli header, i codici di stato a tre cifre e l'indirizzamento a URI. La semantica differisce — SIP gestisce sessioni stateful attraverso i proxy ed entrambi gli endpoint possono originare richieste — ma la superficie risulterà familiare a chi conosce HTTP.
Qual è la differenza tra una transazione e un dialogo SIP?
Una transazione è una richiesta più le sue risposte, abbinata dal branch del Via. Un dialogo è la relazione di chiamata in corso, identificata da Call-ID più i tag From e To. Un singolo dialogo (una chiamata) contiene diverse transazioni — INVITE, poi più tardi BYE.
Quale porta usa SIP?
La porta predefinita IANA è la 5060 per SIP su UDP e TCP e la 5061 per SIP su TLS. I media (RTP) usano un intervallo di porte UDP separato e negoziato dinamicamente, descritto nell'SDP, non la porta di segnalazione SIP.
SIP trasporta la voce?
No. SIP trasporta solo la segnalazione — negozia la sessione e i parametri media tramite SDP. La voce o il video stesso fluisce su RTP (o SRTP se cifrato) direttamente tra gli endpoint o attraverso un media relay, su porte separate dai messaggi SIP.
Specifiche della fonte
Gli standard pubblicati su cui si basa questa pagina. Si apre in una nuova scheda.