Introduzione

In Internet, ci sono molte applicazioni che richiedono la creazione e la manutenzione di una sessione, dove per sessione si intende uno scambio di dati tra un’associazione di partecipanti. SIP (Session Initiation Protocol) è un protocollo di livello applicativo che può stabilire, modificare e terminare sessioni multimediali, quali, ad esempio, telefonate su IP.

È un protocollo standard della IETF (RFC 3261), indipendente dal protocollo di trasporto (UDP o TCP) e programmabile, quindi facilmente estendibile. A differenza del protocollo H.323, SIP dà supporto a servizi avanzati come il controllo di presenza, la ricerca del chiamato e il reinstradamento della comunicazione.

SIP consente all’utente di decidere come e dove desidera essere raggiunto, aggiornando sul sistema, in modo dinamico, un registro con lo stato di tutti gli utenti, i luoghi di reperibilità e le preferenze nella comunicazione. Estende inoltre le capacità di contattare persone sconosciute, ma aventi precise caratteristiche, come la vicinanza fisica o l’appartenenza ad uno specifico gruppo di lavoro.

Le applicazioni di collaborazione basate su SIP rendono inutili gli elenchi di numeri e contatti da tenere costantemente aggiornati, la cui gestione è sempre onerosa nelle grandi aziende.

Queste funzioni sono, infatti, demandate ad appositi Proxy Servers, che sono in grado di localizzare una persona indipendentemente dal dispositivo di comunicazione che usa e dal luogo in cui si trova, in base ovviamente alla specifica volontà del corrispondente di voler ricevere o meno le chiamate.

Al fine di stabilire una comunicazione multimediale, il protocollo SIP prevede 5 fasi:

  1. User Location: determina l’end-system da contattare.
  2. User Availability: determina la disponibilità del chiamato a prendere parte alla comunicazione.
  3. User Capabilities: determina i media ed i relativi parametri da usare.
  4. Session Setup: effettua il “ringing”, stabilendo i parametri della sessione sia dal lato del chiamante che da quello del chiamato.
  5. Session Management: include il trasferimento e la terminazione della chiamata, la modifica dei parametri della sessione, l’invocazione di servizi supplementari.

Queste cinque fasi non avvengono necessariamente in tempi diversi, bensì spesso alcune di esse avvengono contemporaneamente e mediante gli stessi messaggi.

 

L’Architettura di riferimento

Nella figura sono illustrati i componenti di una tipica architettura SIP. Sostanzialmente, possono essere divisi in due categorie: User Agents e Servers.

 

User Agent

È un’entità logica in grado di:

  • Creare una richiesta SIP ed iniziare una transazione SIP inviandola (User Agent Client)
  • Restare in ascolto di richieste SIP e generare le risposte corrispondenti (User Agent Server)

Un User Agent, nell’arco di una sessione, alterna le funzioni di User Agent Client e User Agent Server.

 

voip

Componenti di un’architettura SIP

 

Servers

SIP PROXY SERVER

Ha la funzione di intermediario tra gli User Agents che prendono parte alla sessione; in base ad una logica può rispondere direttamente a richieste SIP (ruolo di User Agent Server), o inoltrare richieste/risposte SIP per conto dei client, previa analisi dei parametri di instradamento del messaggio.

Un SIP Proxy Server può essere di due tipi:

  • Stateful, se mantiene memoria dello stato della sessione, cioè delle richieste che riceve
  • Stateless, se non conserva informazioni di stato.

SIP RE-DIRECT SERVER

A differenza del precedente, questo server non contatta mai il destinatario in modo diretto, ma restituisce al chiamante le informazioni necessarie per contattarlo. Dunque, il Re-Direct Server, a differenza del Proxy, che deve occuparsi del routing delle richieste, permette una maggiore scalabilità della rete.

LOCATION SERVER

È tipicamente un database interno ai servers (Proxy o Re-Direct). Contiene informazioni utili alla localizzazione degli utenti.

REGISTRAR SERVER

Anch’esso tipicamente interno a Proxy Servers, permette la registrazione di utenti che vogliono essere raggiungibili, memorizzando indirizzi e alias names attraverso cui contattarli.

 

I protocolli SIP

Il protocollo SIP è del tipo request-response ed è modellato su altri protocolli IETF quali HTTP e SMTP. Citando l’RFC, “SIP non è un sistema di comunicazione ‘verticale’, ma si integra con altri protocolli standard IETF al fine di implementare un’architettura multimediale completa”.

In particolare, il protocollo SIP ha un suo meccanismo di affidabilità basato sui timeout, e può poggiare sia su protocolli di trasporto orientati alla connessione (TCP), che non (UDP); inoltre, fa uso di protocolli quali RTP, per il trasporto dei dati real-time, SDP (Session Description Protocol), per la descrizione delle sessioni multimediali e SAP (Session Announcement Protocol), per la divulgazione di comunicazioni in multicast.

 

voip

I protocolli SIP

 

 

H.323

SIP

Standrads body

ITU

IETF

Architettura

Distribuita

Distribuita

Versione corrente

H.323v4

RFC2534-bis07

Call control

Gatekeeper

Proxy Redirect Server

Endpoints

Gateway terminal

IP Phones

Media Server

User Agent

Signaling Transport

TCP / UDP

TCP / UDP

Multimedia capable

SI

SI

DTMF relay transport

H.245 (signaling) o

RFC 2833 (media)

RFC 2833 (media) o

INFO (signaling)

Fax relay transport

T.38

T.38

Servizi supplementari

Fornito dagli endpoints o call controll

Fornito dagli endpoints o call controll

Paragone tra i protocolli VoIP: H.323 e SIP