Queste sessioni includono chiamate telefoniche via Internet (Voip), distribuzioni multimediali, e videoconferenze. SIP viene comunemente usato per instaurare o terminare chiamate video o vocali e permette di modificare le caratteristiche di chiamate in corso come l'indirizzo IP e la porta, l'invito di ulteriori partecipanti e aggiungere o cancellare media stream. Gli elementi principali della rete SIP sono: user agent, proxy server, registrar, redirect server, session border controller, gateway. Gli URI identificano ogni elemento di una rete SIP usando lo schema: sip://username:password@host:port oppure sips://username:password@host:port (nel caso si usi la crittografia TLS).
SIP gestisce in modo generale una sessione di comunicazione tra due o più entità, ovvero fornisce meccanismi per instaurare, modificare e terminare (rilasciare) una sessione. Attraverso il protocollo SIP possono essere trasferiti dati di diverso tipo (audio, video, messaggistica testuale ecc). Inoltre, il SIP favorisce un'architettura modulare e scalabile, ovvero capace di crescere con il numero degli utilizzatori del servizio. Queste potenzialità hanno fatto sì che il SIP sia, oggi, il protocollo VoIP più diffuso nel mercato residenziale e business, sorpassando di molto, altri protocolli quali H.323 ed MGCP.
Intorno al SIP sono sorti diversi tipi di utilizzatori, pensati per facilitare la fruizione della telefonia VoIP da parte di tutte le categorie di persone. Alcuni esempi sono gli ATA (Analog Telephone Adapter), capaci di convertire la segnalazione elettrica di un normale telefono analogico in un flusso di dati IP, e, dall'unione tra telefono tradizionale e ATA, gli IP Phones, telefoni dalle funzionalità elevate ai quali non arriva il doppino telefonico ma i cavi di rete. Evoluzione ulteriore sono i soft-phones, applicazioni software per personal computer che emulano le funzioni di un telefono VoIP.
SIP supporta cinque sfaccettature per l'avvio e la terminazione di una connessione:
Locazione dell'utente: determinazione degli end system usati nella comunicazione;
Disponibilità dell'utente: identificazione della disponibilità delle parti ad impegnarsi in una comunicazione;
Capacità dell'utente: identificazione di media e parametri utilizzati;
Impostazione della sessione: avviso, instaurazione dei parametri di una sessione su chiamate;
Gestione della sessione: trasferimento e terminazione di una sessione, modifica dei parametri della sessione, e invocazione dei servizi.
SIP non è un sistema per le comunicazioni integrato verticalmente, ma piuttosto può essere usato come componente in altri protocolli IETF per costruire un'architettura multimediale completa (di solito includono il protocollo RTP per la comunicazione trasparente in sistema real-time e fornitura di feedback in QoS, oppure RTSP per il controllo della consegna di contenuti in streaming). SIP non fornisce servizi, ma primitive per implementarli. Per esempio esso può individuare un utente e consegnargli un oggetto opaco alla sua locazione corrente.
Storicamente SIP utilizza il protocollo di trasporto UDP con porta di default 5060. Recenti revisioni di questo standard permettono anche l'utilizzo attraverso TCP e TLS
Il protocollo SIP ha fondamentalmente le seguenti funzioni:
Localizzazione degli utenti
acquisire le preferenze degli utenti
Invitare gli utenti a partecipare ad una sessione:
negoziare le capability
trasportare una descrizione della sessione
Instaurare le connessioni di sessione
Gestire eventuali modifiche dei parametri di sessione
Rilasciare le parti
Cancellare la sessione in qualunque momento si desideri.
Il modello usato per la sintassi del protocollo SIP è text-based, derivato dall'HTTP. Per instaurare una sessione, avviene un three-way handshaking (concettualmente simile a quello che avviene con il protocollo TCP). Alcune delle caratteristiche importanti del protocollo SIP:
è impiegabile sia in contesti client-server sia in contesti peer to peer.
Un messaggio SIP è una richiesta o una risposta; una sequenza di una richiesta e una o più risposte è detta transazione: una transazione è identificabile da un transaction-ID, un identificativo che ne specifica la sorgente, la destinazione e il numero di sequenza.
Il protocollo SIP supporta la mobilità ed è dialog-oriented: un dialogo è una relazione persistente tra entità paritetiche che si scambiano richieste e risposte in un contesto comune.
SIP User Agent: Schema di chiamata tra User Agents è un end-point e può fungere da client o da server; i due ruoli sono dinamici, nel senso che nel corso di una sessione un client può fungere da server e viceversa. Quando funge da client, dà inizio alla transazione originando richieste. Quando funge da server, ascolta le richieste e le soddisfa, se possibile.
Uno User Agent è in sostanza una macchina a stati, che evolve in dipendenza di messaggi SIP, e registra informazioni rilevanti del dialogo. Il dialogo ha inizio quando si risponde positivamente al messaggio di Invite e termina con un messaggio di Bye.
Registrar Server: è un server dedicato o collocato in un proxy. Quando un utente è iscritto ad un dominio, invia un messaggio di registrazione del suo attuale punto di ancoraggio alla rete ad un Registrar Server.
Proxy Server: è un server intermedio; può rispondere direttamente alle richieste oppure inoltrarle ad un client, ad un server o ad un ulteriore proxy. Un proxy server analizza i parametri di instradamento dei messaggi e "nasconde" la reale posizione del destinatario del messaggio - essendo quest'ultimo indirizzabile con un nome convenzionale del dominio di appartenenza.
I proxy possono essere stateless o stateful. Quando uno User Agent invia sistematicamente le proprie richieste ad un proxy "vicino" (di default) allora il proxy viene detto Outbound-Proxy. Viceversa, un Inbound-Proxy è un proxy che instrada le chiamate entranti in un dominio. Infine un Forking-Proxy può instradare una stessa richiesta in parallelo o in sequenza a più destinazioni.
Redirect Server: reinstrada le richieste SIP consentendo al chiamante di contattare un set alternativo di URIs.
Location Server: è un database contenente informazioni sull'utente, come il profilo, l'indirizzo IP, l'URL.