TesinaSIP

Introduzione

Storia

Una volta c'erano centraliniste che ci facevano comunicare dall'altra parte del mondo attraverso l'instaurazione manuale di un circuito di comunicazione. Oggi possiamo dettare all'ultimo smartphone con riconoscimento vocale il numero da chiamare, ed effettuare la chiamata via internet. Il mondo delle telecomunicazioni ha fatto passi da gigante dalla prima telefonata transatlantica, avvenuta il 7 Gennaio 1927. In Italia il primo telefono che la SIP (Società Italiana Per l'esercizio telefonico) offrì a noleggio fu il famoso S62 prodotto dalla Sit-Siemens, il quale funzionava attraverso un disco con 10 fori per comporre il numero da chiamare e la variazione d'impedenza tra i vari numeri permetteva alla centrale telefonica di “captare” il numero digitato.


Oggi

Data la sempre più crescente necessità di rimanere in contatto con le persone, il mondo si sta evolvendo verso un “always-on-internet”. Negli ultimi 10 anni sono nati svariati social network che permettono di mantenere rapporti con parenti ed amici anche a lunghe distanze, fornendo la possibilità di chiamarsi e vedersi (tramite i Google Hangouts o attraverso Facebook, il quale sfrutta la piattaforma di Skype). Questo innovativo modo di comunicare è permesso grazie a tecnologie quali VoIP, protocolli di comunicazione come SIP, e standard internazionali come il E.164 per poter collegare il passato (reti PSTN) al futuro (rete internet) .

Un po' di teoria

Sesion Initiation Protocol (SIP)

Sviluppato dalla IETF e pubblicato come norma RFC 3261, il SIP prevede di mettere in comunicazione due o più entità mediante sessioni audio e video definite in comune tra le parti. Il protocollo SIP opera a livello applicativo (seguendo lo standard ISO/OSI) e sfrutta il livello di trasporto attraverso la trasmissione di pacchetti TCP e UDP. Alla base della comunicazione VoIP che sfrutta il SIP, vi è un'applicazione User Agent (UA). Vi sono due “ruoli” intrapresi dall'UA: l'User Agent Client (UAC) e l'User Agent Server (UAS). Questi due ruoli sono definiti in base al fatto che si stia chiamando o che si stia ricevendo una chiamata. Altri elementi fondamentali per una comunicazione SIP sono i Server, che collegano più UA e mantengono informazioni sugli utenti. Tra i server principali possiamo trovare:

  • Registrar, i quali mantengono informazioni su come raggiungere uno UA sfruttando un Address of Record (AoR) memorizzato nella propria cache;
  • Proxy, i quali inoltrano messaggi SIP e possono gestire la chiamata attraverso meccanismi di inoltro, deviazione, controllo di accesso, tariffazione, ecc..
  • Gateway, i quali cooperano con reti di altra natura (come la rete PSTN o la rete di telefonia mobile GSM/3G/LTE).

User Agent SIP

Vi sono svariati dispositivi in grado di far girare uno UA SIP, e che permettono dunque una comunicazione VoIP. Questi dispositivi possono essere raggruppati in due categorie:

  • hardware, che hanno un firmware al loro interno in grado di gestire chiamate IP, come ad esempio gli apparati Cisco per l'utenza business, oppure i cordless “Aladino VoIP” di Telecom Italia Spa per l'utenza residenziale;
  • software, ovvero applicazioni come Skype, Ekiga, o app su smartphone, in grado di gestire flussi SIP, SDP e RTP - vedi ad es. questa lista di applicazioni.

La scelta tra uno UA o un altro è dettata dalla tipologia di servizio richiesto. Se si sceglie di sfruttare piattaforme di comunicazione come Skype, si deve per forza di cose usare la loro applicazione (in realtà vale solo per l'utenza privata, in quanto Skye permette l'uso di SIP con centralini PBX aziendali). In alternativa, l'uso di piattaforme “open” come il servizio SQUILLO (fornito insieme all'omonimo software, dall'azienda NGI Spa) permettono l'uso di qualsiasi client, indipendentemente dalla piattaforma hardware o software.

La maggior parte degli UA consente l'uso di meccanismi di autenticazione dell'utente verso il proprio provider VoIP al fine di evitare la ricezione e l'effettuazione di chiamate per le quali non si ha il permesso (ed evitare illeciti come il furto d'identità). Nella finestra principale di uno UA possiamo trovare un tastierino numerico per poter chiamare numerazioni che risiedono su altre reti, o una “input box” che accetta URI per poter raggiungere altri client tramite la rete internet.

Provider VoIP

Di provider VoIP nel mondo ce ne sono a iosa, ed offrono servizi diversi in base a ciò di cui necessitiamo. La forza del VoIP sta nel fatto di poter scegliere il proprio fornitore di servizi senza essere legati geograficamente al luogo di residenza, e portare il proprio numero telefonico (o la propria URI) ovunque nel mondo. L'unico punto debole del VoIP è la propria connessione internet, infatti per una comunicazione efficiente e stabile si necessita di stare sotto i 300ms, poiché a latenze maggori si va incontro a ritardi di ascolto, e la conversazione risulterà tediosa agli interlocutori.

Alcuni provider VoIP permettono inoltre di scegliere il codec di compressione che più si preferisce, per risparmiare banda, per avere maggiore qualità o per mantenere il supporto con dispositivi hardware già in proprio possesso per i quali non è possibile scegliere manualmente il codec o perché magari non ne supporta alcuni di più recenti.

La scelta tra un provider o un altro risiede nel fatto di avere magari dei server dislocati in tutto il mondo, con buoni peering internazionali (quindi maggiore efficienza e minor problema di latenza), oppure tariffe convenienti, o avere più numeri sul quale essere reperibili. I maggiori provider VoIP nel mondo (per una comparazione, andare QUI) sono: Skype, Phone Power, Comcast, ITP, RingCentral e Phone.com. Un utente può divenire esso stesso provider VoIP tramite uno dei software free come Asterisk che, assieme alla registrazione dei RR relativi ad un proprio nome a dominio, permette di ricevere chiamate VoIP; al tempo stesso, collegandolo anche alla PSTN, Asterisk espleta funzioni di centralino intelligente, e può essere configurato per inoltrare le chiamate uscenti nel modo più economico.

Riguardo la sicurezza, è possibile criptare le conversazioni VoIP tra client tramite un appropriato software (come Skype fa con il suo client) oppure tramite protocolli come TLS o ZRTP (creato da Phil Zimmermann, proprio colui che ha inventato anche il PGP!).

Interlavoro tra SIP e PSTN

Una rete VoIP può interfacciarsi con la rete PSTN adottando per entrambe lo standard redatto da ITU-T dal nome E.164, pubblicato per la prima volta nel Maggio del 1997 e che riguarda la numerazione telefonica da usare nella rete PSTN. Secondo lo standard E.164, i numeri telefonici devono essere preceduti dal simbolo + ed essere lunghi al massimo 15 cifre numeriche, oltre a contenere il codice della nazione (prefisso internazionale, es. 39 per l’Italia), il codice di area (prefisso nazionale, es. 0773 per la zona di Latina), ed il numero “significativo” (il proprio numero personale).

Per poter effettuare una chiamata da rete SIP a rete PSTN, si sfruttano un insieme di regole e meccanismi definiti come ENUM (acronimo di tElephone NUmber Mapping). Si procede dunque invertendo l'ordine dei numeri ed aggiungendo il suffisso e164.arpa (ad es. per il numero +390773496250, il nome a dominio è 0.5.2.6.9.4.3.7.7.0.9.3.e164.arpa ) e viene effettuata la query al DNS che risponderà con dei RR NAPTR (qualora ce ne fossero) dai quali si leggono le URI e si provano con i relativi suffissi (sip: , email: , ecc.). Se non sono presenti NAPTR, il proxy di outbound (quello che ha provato precedentemente con ENUM) prova con altre radici (ad es. e164.org). Se falliscono anche queste, allora si dovrà instradare la chiamata verso la rete PSTN, attraversando un gateway che può essere vicino a lui (al proxy), oppure (meglio) vicino al chiamato (nel qual caso la chiamata arriva fin lì via VoIP Internet).

È possibile installare sul proprio pc/server/router un software PBX come ad esempio Asterisk che, configurato come dovere, permette di tentare le traduzioni ENUM per vedere se il chiamato (con il numero PSTN scritto poco sopra) è presente e, nel caso affermativo, inoltrare la chiamata via VoIP verso la URI del chiamato, facendoci risparmiare parecchi soldi! In caso di esito negativo (record non presente su server e164.org) Asterisk dirà che il numero non è raggiungibile e si potrà effettuare la ciamata con il proprio provider VoIP (premendo ad esempio un tasto come lo 0 prima della chiamata), attraverso il quale è possibile raggiungere la rete PSTN (attraverso il gateway del nostro provider) e il numero del chiamato, pagando dunque la chiamata.

Per ricevere una chiamata da rete PSTN sul proprio UA SIP, si deve richiedere un numero E.164 al proprio provider, pena il non poter essere raggiungibile dalla rete PSTN. Il proprio provider, infatti, assocerà il numero del quale è intestatario (e che ci verrà associato successivamente) ad un URI (mettiamo caso sia il numero precedente con il provider Telecom, si avrà <sip:+390773496250@telecomitalia.it>) e proverà ad instaurare una connessione con l'altro interlocutore facendo passare la chiamata mediante il proprio gateway PSTN/SIP ed instaurando tutto il “route”.

Links utili

Esempio chiamata SIP

Per vedere un esempio di chiamata SIP, premi QUI

Configurazione Software Ekiga

Per la configurazione del software Ekiga, vai alla pagina della Configurazione Ekiga

Aggiunta numero sul sito e164.org

Per la registrazione di un numero telefonico su e164.org, vai alla pagina della registrazione e164.org Registrazione e164.org

Risparmiare il più possibile e considerazioni finali

Ricapitolando ciò che è stato scritto qui sopra, è possibile in definitiva farsi assegnare un numero E.164 in maniera gratuita e per un tempo illimitato (clausole contrattuali permettendo) da vari provider che lo permettono (nel nostro esempio Messagenet), per poter essere raggiungibili da rete PSTN e SIP.

Per chiamare i nostri amici invece è necessario configurare un gateway/proxy molto flessibile (come ad esempio Asterisk, noto PBX software) che permette di interrogare prima il sito e164.org e verificare quindi la raggiungibilità tramite rete VoIP del chiamato, o eventualmente usare il proprio provider VoIP per la chiamata su rete PSTN, con annessi i costi di tariffazione (per il provider Messagenet è possibile visualizzarle presso QUESTO link) o ancora sfruttre tramite dispositivi hardware la nostra rete telefonica PSTN.

Alcuni provider VoIP addirittura forniscono verso numerazioni internazionali dei minuti gratuiti(qualche centinaio, con limitazioni sulla durata della chiamata): è il caso del provider Voipstunt. Sebbene non sia italiano come Messagenet.it , Voipstunt ha una buona latenza dall'Italia verso i propri server, consentendo dunque una buona qualità audio.

Mediante e164.org si può associare il numero assegnatoci dal nostro provider VoIP (o gestore PSTN) e farlo dirottare verso altri gateway/proxy che non siano quelli del proprio provider (ciò avviene se chiamati via VoIP, perché se chiamati via PSTN la chiamata arriva direttamente al provider che ci ha assegnato il numero). Nel mio caso, ho dirottato le chiamate verso il numero PSTN assegnato da Messagenet.it verso l'account Voipstunt perché il gateway di Messagenet.it non ha permesso al server di e164.org di poter ricevere la chiamata dallo stesso per confermare l'AoR da inserire nel proprio database e digitare quindi il PIN (altrimenti potremmo assegnarci qualsiasi numero e attuare comportamenti illeciti, come il furto di identità su internet, rispondendo a nome di qualcun altro).

Un ottimo sito per confrontare le tariffe è progx.ch , il quale permette di confrontare svariati provider del gruppo Betamax in base alla destinazione che preferiamo chiamare.

Attraverso questo sito, infatti, ho notato che alcuni provider forniscono chiamate verso i fissi/mobili Italiani a 0,005€/min (è inutile rileggere la cifra, gli zeri sono giusti!! ) con uno scatto alla risposta di 0,03€ circa, e chiamare praticamente a costo “zero”!

Per confrontare provider italiani, è possibile sfruttare il servizio di HTML.it e constatare l'enorme divario che c'è con le nostre tariffe (assurdo pensare che chiamare dall'Italia verso la stessa, convenga attraversare i confini italici, precisamente arrivare sino a Lussemburgo con il gruppo Betamax, ed usare apparati dislocati in luoghi esteri e con costi superiori di attraversamento backbone internazionali e via dicendo). Per confronto con altri provider internazionali, possiamo vedere che le tariffe di Skype 9,99€/mese ci offre 60 minuti verso fissi/cellulari a confronto, con i 2000 (duemila) minuti che ci avrebbero fruttato globalfreecalls.com .

In conclusione abbiamo:

  • un numero in ingresso ottenuto gratuitamente e per un tempo illimitato (vedi clausole contrattuali);
  • Asterisk, un software che gestisce chiamate in ingresso ed uscita in base alla configurazione datagli;
  • provider che offrono a costo irrisorio chiamate verso rete fissa e mobile ( 0,005€/min).

“Immagina, puoi!” (G. Clooney)

Download PDF VoIP

Per scaricare tutto il pdf contenente la tesina, premi QUI .

<< Tesina SIP | Esempi >>