Benvenuto caro Lettore!

UF è un blog di ingegneria informatica pieno di articoli più o menoo tecnici. Iscriviti per rimanere aggiornato all'uscità dei prossimi articoli.

Ad Ad ads ads

Ricerca

Visualizzazione post con etichetta Reti di Telecommunicazione. Mostra tutti i post
Visualizzazione post con etichetta Reti di Telecommunicazione. Mostra tutti i post

11 gen 2012

Tutto quello che vuoi sapere su SIP



Nell’artico riguardante il VoIP, ho introdotto SIP (Session Initiation Protocol) come un protocollo di controllo che si occupa di segnalazione durante una comunicazione VoIP.
E’ un protocollo della IETF del livello applicazione descritto nella RFC 3261 che si occupa della creazione, gestione e chiusura di una comunicazione VoIP  (o di altre sessioni multimediali o testuali).
In quest’articolo, vedremmo gli elementi principali di SIP, analizzeremmo i suoi messaggi e il suo funzionamento.

Elementi


Gli elementi principali di SIP sono:

SIP User Agent:  sono gli attori della comunicazione. Possono essere usati sia in modalità server (rispondere alle richieste) sia client (inviare delle richieste).
Registrar Server: E’ un server che riceve da parte degli user agent iscritti a un dominio il loro attuale indirizzo IP che servirà poi per localizzarli. Inoltre usa i servizi di un server AAA per l’autenticazione.
Proxy Server: è un server intermedio serve a spedire i messaggi a domini esterni.
Può essere Outbound (Riceve tutte le chiamate uscenti di un User Agent vicino) o Inbound (Instrada le chiamate entranti in un dominio destinato a un User Agent vicino.)
Redirect Server: Usato per re instradare le richieste SIP verso destinazioni alternative (per esempio in assenza del destinatario).
Location Server:  è un database contenente informazioni sull'utente, come il profilo, l'indirizzo IP, l'URL.

In generale tutti questi server sono riuniti in un unico server chiamato SIP server.
Fin cui possiamo intuire che gli user agent comunicano fra loro mandandosi dei messaggi e usano dei server per la localizzazione e l’instradamento di questi messaggi.  Come sono fatti questi messaggi? 

Messaggi

I messaggi di SIP sono testuali e simili a quelli usati da HTTP per lo scambio di pagine web.
Ecco il formato dei messaggi SIP:


L’intestazione contiene informazioni sull’user agent sorgente e l’user agent destinatario del messaggio.
La linea vuota indica la fine dell’intestazione.
Il payload usa il protocollo SDP (Session description protocol) e descrive i parametri della sessione nel caso fosse multimediale (opzionale nel messaggio).
Ora vediamo i tipi di messaggi.

Tipi di messaggi SIP

INVITE: invitare un utente a partecipare a una comunicazione.
ACK: Notificare la ricezione di una risposta.
BYE: Terminare una comunicazione.
CANCEL: Anulare una richiesta (INVITE) prima ancora di averne ricevuta la risposta.
OPTIONS: Chiedere informazioni sulle capacità di un user agent.
REGISTER: Registrare l’attuale indirizzo di un user agent
      SUBSCRIBE: Richiedere lo stato di un user agent.
      NOTIFY: informare dello stato di un UA
      MESSAGE: mandare un messaggio (testo/XML) usato per l'istant messaging.

Ora vediamo i tipi di risposte.

Tipi di risposte 

Le risposte sono classificate con un codice di tre cifre, dove la prima indica la categoria. Le categorie principali sono:

1xx Risposte provvisorie:

100 Ricerca del destinatario in corso.
180 Il Telefono SIP del destinatario sta suonando.
182 Richiesta in coda.

2xx Risposte positive:

200 OK.

3xx Re direzione:

300 Scelta multipla
305 Uso del Proxy

4xx Errori nel client:

404 destinatario non trovato.
407 errore di autenticazione nel Proxy.

5xx Errori nel server:

503 Servizio non disponibile
505 Versione di SIP non supportata

6xx Errori generici:

  600 destinatario occupato su tutti gli indirizzi.
  603 chiamata rifiutata.

Ora che sappiamo un po’ di più sui messaggi scambiati, come funziona il SIP.

Funzionamento

La comunicazione in SIP è un insieme di dialoghi e transazioni. Per transazione intendiamo l’insieme dei messaggi scambiati fra la prima richiesta e la risposta finale  mentre il dialogo è un flusso di messaggi richiesta-risposta fra  due user agent.
Per l’inizio di una comunicazione SIP usa una transazione trapezoidale simile a un handshake a tre vie.

 

SIP usa i sia TCP sia UDP per il trasporto dei messaggi. In modalità TCP, si può anche aggiunge la cifratura usando TLS.
SIP deve poter localizzare un user agent associando il suo nome utente al suo indirizzo.
Come si svolge il Name Mapping?
Per associare un nome utente a un indirizzo come fa SIP? Prendiamo un esempio pratico.
Un nome utente è della forma  utente@dominio.ext
Dove dominio può essere il nome del server, l’indirizzo IP …
Per risolvere il problema SIP fa l’uso di tre servizi del server DNS (NAPTR, SRV, A/AAAA.)
NAPTR
È un record del server DNS che definisce quale protocollo di trasporto, deve essere usato per un certo servizio. Per il nostro caso il servizio è SIP e i protocolli di trasporto possibili sono:
TLS/TCP, TCP, UDP
Esempio
foo.com 43200 IN NAPTR 60 50 "s" "SIP+D2U" "" _sip._udp.foo.com

SRV
È un record del server DNS che definisce i parametri con quali accedere a un servizio. I parametri sono il server e la priorità.
Esempio
_sip._udp.foo.com 43200 IN SRV 10 10 5060 sipserver.foo.com.

A/AAAA
Questo è il record che si guarda per ultimo. Il record in questione ci da l’indirizzo per accedere ad un server.
Esempio
ns.foo.com. 43200 IN A 10.0.0.20

Per fare il name mapping SIP consulta questi tre record se sono presenti in quest’ordine NAPTR, SRV, A/AAAA.

Possiamo finire l’artico dicendo che SIP è protocollo di segnalazione semplice e leggero e fra l’altro è usato nel software Google Talk.
Segnaliamo anche che SIP usa lo standard Enum E.164 per permettere a telefoni tradizionali (PSTN) o IP di comunicare con un utente SIP ma questa è un’altra storia.
Se hai qualche dubbio aspetto le tue domande o chiarimenti.

Riferimenti e approfondimenti:
http://it.wikipedia.org/wiki/Session_Initiation_Protocol
http://www.voip-info.org/wiki/view/SIP
http://voip.html.it/articolo06.aspx
http://www.siptutorial.net/SIP/index.html
http://www.alma-web.net/index.php/faq/23-linux/27-il-protocollo-sip.html


23 dic 2011

Tutto quello che devi sapere su VoIP



VoIP è l’acronimo di Voice over IP e può essere definito come l’insieme dei protocolli che rende possibile il trasporto attraverso una rete IP del segnale della voce.
Questo significa per esempio chiamate telefoniche lunga distanza a costo basso o gratuite se si sfrutta una connessione internet di qualità accettabile. In quest’articolo vedremmo in dettaglio che cos’è e come funziona VoIP dopo averne elencati svantaggi e vantaggi.

                   

Vantaggi di VoIP


Basso costo


Le chiamate telefoniche fate via VoIP costano meno anche se di lunga distanza. Possiamo addirittura dire che non costano niente, infatti, basta pensare che le chiamate VoIP abbiano bisogno di una connessione a una rete (internet) che l’utente sta già pagando. I servizi VoIP sono visti come aggiuntivi a quelli che già ne offre una.

Liberta

VoIP rende possibile una maggiore libertà che non c’è con la rete telefonica tradizionale.

Mobilità fisica.

Si può trasportare il suo telefono IP e in qualsiasi luogo lo connettiamo a una rete, possiamo ricevere le telefonate.

Lavoro flessibile

Questo permette quindi ad agenti di call center di lavorare da casa se hanno una buona connessione internet.

Manutenzione inesistente o quasi


Non c’è bisogno di avere sempre il supporto di una compagnia telefonica per sistemare I guasti. Di solito i guasti si riassumono alla perdita del servizio dovuta all’abbassamento della qualità del servizio della rete. In questo caso basterà riavviare il suo impianto VoIP e la sua connessione. 

Integrazione con la rete tradizionale

Esiste anche un’integrazione del VoIP con la rete telefonica tradizione. Il che significa che ora ci può chiamare un PC o un telephono IP sul nostro telephono normale e vice versa.
Questo è un bel vantaggio e significa che ognuno può fare il passaggio al VoIP oppure usare entrambi i servizi senza perdere il contatto con la rete telefonica tradizionale.

Servizi Aggiuntivi

Usando le chiamate telefoniche via VoIP, abbiamo la possibilità di avere servizi aggiuntivi senza costo aggiuntivo: FAX, SMS, Applicazione per i messaggi vocali o video chiamate.
Durante una chiamata, c’è la possibilità di trasmettere altri tipi di dati come video, audio, file.

Risparmio per le aziende

All’interno di un’azienda, si può usare la stessa rete per il trasporto della voce e dei dati.
Infatti, telefonate interni e altre comunicazioni useranno la stessa e sola rete IP.
L’azienda paga una volta e usufruisce di video conferenze, chiamate o video chiamate e trasmissione d’informazioni.

Svantaggi di VoIP


Qualità vocale non perfetta

E’ normale pensare che se si usi la stessa rete IP per le nostre chiamate e per la trasmissione di dati (pagine internet, download e upload di file, streaming di contenuto online), alla fine la qualità della voce non sarà alta visto che le risorse de la rete sono condivise

Banda insufficiente

Sappiamo che l’orecchio ha una certa tolleranza per quanto riguarda pezzi mancanti (perdita pacchetti nella rete) oppure ritardi in un messaggio vocale da capire.
Per avere una qualità di VoIP accettabile, serve una banda di 128 Kbit/sec bidirezionali minimi, e una latenza di 150 ms. 
A volte la nostra connessione internet non celo permette.

 

VoIP in dettaglio



Ora vediamo come funziona VoIP in dettaglio.
La tecnologia converte il segnale della voce in un segnale digitale. 
Questo ultimo può viaggiare compresso in "pacchetti" sulla nostra rete dati, utilizzando un protocollo IP e subendo poi, il processo inverso per riconvertirlo in segnale vocale analogico.



Ci sono due tipi di conversione: ADC (analog to digital converter) per digitalizzare l’analogico e DAC (digital to analog converter) che fa la conversione inversa.

Funzionamento


Ci sono vari modi di usare VoIP.

VOIP via ATA


Prendere un telefono normale e trasformarlo in telefono IP usando ATA (Analog Telephone Adaptator) che premette di connettere un telefono normale a internet occupandosi della conversione da analogico a digitale e vice versa. 

 


VOIP via telefono IP


In questo caso non c’è bisogno di adattatore (ADA).


VOIP connessione diretta


In questo caso la connessione non passa per un Service provider ma va direttamente al destinatario.



L’IP Phone ha un costo, ADA ha un costo e i servizi del VOIP Service Provider hanno un costo. Per usare il VOIP con il computer, ci servono una connessione internet, un software VoIP, delle cuffie e un microfono.
Un elemento importante al funzionamento del VoIP è la Compressione/Decompressione della voce digitalizzata che permette di occupare uno spazio più ridotto durante la trasmissione. Per farlo si usa i CODEC.
Un CODEC è un algoritmo di Compressione/Decompressione che premette di ridurre la banda necessaria per trasmettere il suono.

I protocolli VoIP


Quali protocolli utilizza il VoIP?
Ci sono due principali protocolli che permettono il funzionamento del VOIP e che lavorano in parallelo.
Il primo si occupa del trasporto dei pacchetti di voce digitalizzata. Per questo scopo è usato RTP (Real-Time Transport Protocol).
Il secondo si occupa della “segnalazione” della comunicazione (ricostruzione del frame audio, sincronizzazione, identificazione del chiamante, …)
In questo caso ci sono più protocolli standard tra cui scegliere:

SIP (Session Initiation Protocol) della IETF;
H.323 dell’ITU;
Skinny Client Control Protocol, protocollo proprietario della Cisco;
Megaco (conosciuto anche come H.248);
MGCP;
MiNET, protocollo proprietario della Mitel;

RTP (Real Time Transport Protocol


E' un protocollo usato per il trasferimento dei dati in real time come audio e video. Inoltre permette di incapsulare I pacchetti nello stack TCP/IP.
Questa è la struttura
 

Abbiamo I pacchetti VoIP che sono incapsulati all’interno dei pacchetti RTP che a loro volta sono incapsulati nei pacchetti UDP-IP.
Non si usa TCP, perché sarebbe troppo pesante per applicazioni di tipo Real time, invece si usa UDP che ci va bene perché butta i pacchetti invece di aspettare quelli in ritardo (opzione di lusso in condizione real time).
RTP si occupa dell’ordine del trasporto dei pacchetti in particolare un flusso per sessione.

 
  • Ver. (Version): (2bit) indica la versione del protocollo.
  • P (Padding): (1 bit) indica se è presente un byte di padding alla fine del pacchetto.
  • X (Extension): (1 bit) indica la presenza di un Extension header tra l’header standard e il payload.
  • CC (CSRC Count): (4 bit) contiene il numero di CSRC
  • M (Marker): (1 bit) Usato dal livello applicativo . Se è settato, significa che il pacchetto ha una qualche speciale rilevanza per il livello applicativo.
  • PT (Payload Type): (7 bit) indica il formato del payload .
  • Sequence Number: (16 bit) il sequence number è incrementato di uno per ogni pacchetto RTP inviato e permette al ricevente di identificare perdite di pacchetti e ripristinare l’ordine corretto.
  • Timestamp: (32 bit) utilizzato per permettere al ricevente di riprodurre il media ricevuto nell’intervallo appropriato.
  • SSRC: (32 bit) il synchronization source identifier identifica in modo univoco la fonte dello stream all’interno della sessione RTP.
  •       CSRC: (da 0 a 15, 32 bit ciascuno) gli identificatori contributing source enumerano le fonti di uno stream generato da più fonti. Il numero d’identificatori CSRC è dato dal valore del campo CC

H.323 e SIP


H.323
È un protocollo standard che contiene requisiti per consegnare audio tramite rete e include I codec della voce.
SIP (Session Initiation Protocol)
È un protocollo per organizzare , cambiare e finire una connessione di conversazione (Conferenze multimedia, connessione fra telefoni e connessione fra diverse applicazioni)
Per capire meglio come funzionano H.323 e SIP , leggete i miei prossimi articoli.

Terminiamo quest’articolo precisando che per quelli che non sanno se passare al VoIP, ho una notizia interessante per loro: Il mondo è già passato a VoIP e forse anche voi. Ecco la prova:
Applicazioni che usano VoIP:
Skype, Justvoip …

Fonti e Approfondimenti:
Wikipedia

Siamo su Facebook

Google+