Benvenuto su Pop3-smtp.com
Tutti i parametri per la configurazione delle email

SIP

Smtp Pop3

Il protocollo SIP (Session Initiation Protocol) è un protocollo basato su IP e impiegato principalmente per applicazioni di telefonia su IP o VoIP. 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 Adapters), 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.

Applicazione

Esso trova applicazione nella telefonia su IP e nei servizi telefonici supplementari, nella video-comunicazione, nei giochi interattivi, nella messaggistica istantanea. Il protocollo è stato sviluppato, ufficialmente, a partire dal 1999 (RFC 2543 e 3261) per iniziativa di IETF e fa parte della Internet Multimedia Conferencing Suite. Ad oggi l'utilizzo prevalente è nella telefonia su IP, per cui SIP è spesso sinonimo di un sistema dedicato a questa applicazione.

Descrizione

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.

  • è facilmente estendibile e programmabile

  • eventuali server possono essere sia stateless sia stateful.

  • è indipendente dal protocollo di trasporto.

  • 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.

    Overview sul protocollo

    SIP supporta cinque sfaccettature per l’avvio e la terminazione di una connessione:

  • User location: determinazione degli end system usati nella comunicazione;

  • User availability: identificazione della disponibilità delle parti ad impegnarsi in una comunicazione;

  • User capabilities: identificazione di media e parametri utilizzati;

  • Session setup: avviso, instaurazione dei parametri di una sessione su chiamate;

  • Session management: 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 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.

    Esempio di un messaggio SIP

    Gli utenti SIP sono risorse identificabili o localizzabili mediante URI o URL che contengano informazioni sul dominio, sul nome-utente, sull'host o il numero col quale l'utente partecipa alla sessione. Gli indirizzi sono stile e-mail. Esempi fittizi possono ad esempio essere:

  • sip:salvatore@mioDominio.it

  • sip:salvatore@194.150.20.21:5068

  • sip:+39-81-12345@mioGateway.com

  • ...

  • Un messaggio SIP è costituito dalla chiamata di un 'metodo' (SIP request type, nell'esempio il metodo INVITE), seguito da una serie di campi detti 'headers', simili ai campi presenti nelle email. Inoltre, separati da una riga vuota, vi sono gli headers del protocollo SDP (Session Description Protocol, RFC 2327), che segnalano all'host contattato che tipo di sessione multimediale verrà instaurata per la comunicazione (nell'esempio una sessione audio RTP).

    INVITE sip:utente@domain.com SIP/2.0
        Via: SIP/2.0/UDP 134.102.18.1
        From: <sip:zioMauro@dominio.com>; tag = 4711 ''//identifica l'originatore della richiesta ''
        To: Michele <sip:utente@domain.com> ''//identifica la destinazione logica di una richiesta''
        Call-Id: 12345678@134.102.18.1 ''//è un valore costante che identifica l'invito''
        Cseq: 49 Invite ''//ordina le transazioni (..la prossima richiesta avrà Cseq=50)''
        Content-Length: 117 ''//il body consiste in 117 byte ''
        Content-Type: application /sdp ''//tipo di messaggio/protocollo che segue gli headers [[SDP]]''
        Subject: felicitazioni! ''//l'oggetto del messaggio''
        Contact: sip:zioMauro@134.102.18.1:4050 ''//l'indirizzo al quale si desidera ricevere richieste''
        transport = udp ''//specifica il protocollo di trasporto, nell'esempio [[User Datagram Protocol|UDP]]''
                                   
        v = 0 ''//indica la versione in uso''
        o = jack 7564657 9823872 IN IP4 134.102.18.1 ''//l'owner della risorsa con un ID di sessione''
        c = IN IP4 134.102.18.1 ''//tipo di rete, la versione del protocollo IP e l'IP stesso ''
        t = 0 0 ''//tempo di start e di stop''
        m = audio 4754 RTP/AVP 0 ''//tipo di media, num. di porta, protocollo di trasporto e formato ''
        a = rtpmap: 0 PCMU/8000 ''//attributi audio\video.. se ce ne fossero ''
        s = festa ''//subject della sessione''

    Cenni ai messaggi SIP più frequenti

    Altri messaggi SIP frequenti sono:

  • Register: messaggio inviato da uno User Agent quando vuole registrare presso un Registrar Server il proprio punto di ancoraggio alla rete.

  • Bye: utilizzato per porre fine ad un dialogo SIP

  • Cancel: per terminare un dialogo se la sessione non ha ancora avuto inizio.

  • Invite: già discusso in precedenza, serve ad invitare un utente a partecipare ad una sessione.

  • Ack: è un messaggio di riscontro

  • Trying e Ringing: messaggi provvisori;mantengono i parametri della richiesta a cui rispondono.

  • Subscribe e Notify: utilizzati per E-Presence

  • Architettura di una rete SIP

    Le entità essenziali di una rete SIP sono:

  • SIP User Agent:

    è 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.

  • Un 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 "ruotarle" 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 contentente informazioni sull'utente, come il profilo, l'indirizzo IP, l'URL.

  •