voip e software libero - antonio gallo -
DESCRIPTION
Quali tecnologie Open Source sono disponibili per creare applicazioni VoIP per LinuxTRANSCRIPT
www.badpenguin.org
VoIP e VoIP e “Software Libero”“Software Libero”
di Antonio Gallo (agx) - www.badpenguin.org
www.badpenguin.org
Antonio Gallo, presentazioneAntonio Gallo, presentazione
● Socio di ILS dal 1996● Sys e web admin di www.linux.it per alcuni anni● Organizzatore del LD dalla 1^ alla 5^ edizione● Autore di documentazione su come creare e
gestire un LUG su www.badpenguin.org● Contributi a numerosi progetti open source...
qualcosina anche al Kernel
www.badpenguin.org
Ultime esperienze lavorativeUltime esperienze lavorative
● Ho lavorato per 4 anni nell'ambito del “voip”● Da questa esperienza oggi trarremo alcuni
spunti:– Cos'è il VoIP ?
– Quali strumenti “liberi” abbiamo a disposizione per sfruttarlo con Linux?
– Cosa posso in concreto fare con Linux, il software libero in ambito VoIP ?
www.badpenguin.org
L’EVOLUZIONE L’EVOLUZIONE DELLE RETI TELEFONICHE DELLE RETI TELEFONICHE
DA PSTN (analogiche)DA PSTN (analogiche)ALLE NUOVE ALLE NUOVE
TECNOLOGIE SU IP (digitali)TECNOLOGIE SU IP (digitali)
www.badpenguin.org
Come funziona la telefonia Come funziona la telefonia tradizionale?tradizionale?
Quando alziamo la cornetta ci colleghiamo alla centrale telefonica più vicina tramite un circuito elettrico, la centrale ci trasmette il tono di libero.
Il numero composto tramite toni (DTMF) o impulsi viene interpretato dai circuiti elettrici della centrale a cui siamo connessi.
La centrale comunica con le altre centrali creando un circuito elettrico unico (commutazione) tra il chiamate e il chiamato.
www.badpenguin.org
La telefonia tradizionale è mortaLa telefonia tradizionale è morta
Sono anni ormai che le centrali della vecchia “SIP” sono “digitali”, sfruttano le tecnologie VoIP per trasmettere le voce da un punto all'altro della rete telefonica. Resta “tradizionale” soltanto il così detto “ultimo miglio”.
Altri operatori, oggi, come ad esempio fastweb, tiscali, superano già il concetto di “ultimo miglio” portando nelle nostre case gateway VoIP che simulano le linee telefoniche.
www.badpenguin.org
Come funziona la telefonia digitale?Come funziona la telefonia digitale?
Le segnalazioni tra centrali non sono più codificate tramite impulsi elettrici ma tramite protocolli informatici (commutazione a pacchetto).
La voce non viaggia più come un onda elettrica ma è convertita in dati: allo stesso modo in cui oggi non abbiamo più il disco di vinile ma l'MP3.
Non esiste più un unico circuito ma “n” percorsi che i pacchetti dati intraprendono lungo la rete.
Il protocollo “IP” è il nuovo mezzo trasmissivo.
www.badpenguin.org
Concetti di base:Concetti di base:il significato di “VoIP”il significato di “VoIP”
e la trasmissione della “voce”e la trasmissione della “voce”
www.badpenguin.org
Cosa significa VoIP?Cosa significa VoIP?
VoIP in inglese è la sigla per “Voice Over IP”.
Ovvero la traduzione in italiano di “tecnologia di trasmissione della voce tramite commutazione a pacchetto IP”.
www.badpenguin.org
Trasmissione della voceTrasmissione della voce
La trasmissione della voce si basa sul convertire la “pressione dell'aria” registrata da un microfono in un segnale elettrico
Solo le frequenze da 300 a 4000 Hz (spettro) vengono trasmesse, una piccola parte delle nostre capacità uditive
www.badpenguin.org
Digitalizzazione e campionamentoDigitalizzazione e campionamento
Nel VoIP il segnale elettrico proveniente dal microfono viene “campionato” a 8000 Hz e “quantizzato” (compresso) secondo determinati algoritmi matematici.
La qualità rispetto alla telefonia tradizionale non cambia in quanto lo spettro delle frequenze utilizzato e il medesimo della telefonia analogica
www.badpenguin.org
I CodecI Codec
L'algoritmo matematico utilizzato per la “quantizzazione” (codifica) è in gergo detto “codec”.
I codec comprimono i dati provenienti dal “campionatore” riducendo il numero di dati che vengono trasmessi a scapito della quantità di CPU utilizzata per comprimere questi dati e della qualità della voce.
www.badpenguin.org
I principali codecI principali codec
A 8000 Hz il campionamento di 1 secondo a 16bit di audio produce 128 Kbps (di dati) che vengono compressi con:
– PCM (G.711 U/A) 64 Kbps
– G.729a: 8 Kbps
– G.726 (ADPCM): 16, 24, 32 e 40 Kbps
– G.723.1: 5.3 Kbps
– GSM Full Rate: 13 Kbps
– iLBC: 16.2 Kbps
– Speex: da 2 a 44 Kbps (configurabile)
www.badpenguin.org
Il problema del payloadIl problema del payload
● Siccome il protocollo IP si comporta come un TIR in cui una motrice trasporta un rimorchio con le merci, allo stesso modo la quantità di dati trasmessi su una linea dati aumenta
● Esempio: 1 secondo di conversazione in G.711 che contiene 64 Kbps di dati viene trasmesso utilizzando 80Kbps di banda (!)
● Infatti quando si parla di Kbps in relazione a dei codec voip si intende la quantità di dati da trasmettere non l'effetiva occupazione di banda IP
www.badpenguin.org
Codec e brevettiCodec e brevetti
● I brevetti incidono sul VOIP● In particolare il codec G.729
– uno dei più usati perché offre uno dei migliori rapporti qualità/compressione
– È brevettato, richiede pagamento di royalty per l'utilizzo
– In alcuni casi è possibile l'utilizzo gratuito per privati o no-profit (*)
www.badpenguin.org
I codec del futuroI codec del futuro
Attualmente la qualità audio è la stessa degli ultimi 40 anni.
La famiglia di codec G.722 permette:– Campionamento a 16.000Hz
– Spettro di frequenze maggiore
– Fattore di compressione elevati
Purtroppo non tutti i provider supportano questo codec. Il G.722 richiede inoltre che il telefono sia dotato di una cornetta speciale (spettro più ampio).
www.badpenguin.org
I PROTOCOLLI DI I PROTOCOLLI DI SEGNALAZIONE:SEGNALAZIONE:
come e dove trasmettiamo la vocecome e dove trasmettiamo la voce
www.badpenguin.org
Protocolli di segnalazioneProtocolli di segnalazione
I protocolli di segnalazione consentono di effettuare chiamate, trasferimenti e altre funzioni.
Il protocollo di segnalazione usato dai principali provider è il S.I.P. (Session Initialization Protocol)Con il SIP potete:
– comunicare punto-punto con un altro utente/apparecchiatura
– tramite un “proxy” tramite comunicare con utenti “registrati” sullo stesso provider
– tramite un “gateway” comunicare con utenti e apparecchiature “non-SIP”
www.badpenguin.org
PerchéPerché SIP e non Skype? SIP e non Skype?
Skype è un protocollo proprietario
Skype non è adatto per creare un servizio pubblico
Skype è peer-to-peer, anche se voi non fate nulla, altri utenti utilizzano la vostra ADSL per comunicare con terzi (*2008)
Non c'è certezza di come Skype utilizza i vostri dati personali, log, conversazioni, ecc. (*2008)
www.badpenguin.org
PerchéPerché SIP ? SIP ?
SIP è stato progettato appositamente per creare infrastrutture telefoniche su rete IP.
SIP consente l'iterazione tra gestori diversi.
SIP è estensibile.
SIP è un protocollo pubblico disponibile tramite RFC
SIP è royalty free
www.badpenguin.org
Come funziona il SIP ?Come funziona il SIP ?
Il SIP si basa sul concetto di “user agent” (client)
Lo user agent deve “registrarsi” presso un server per essere raggiungibile dagli altri utenti, praticamente è simile a un operazione di “login”.
A questo punto tramite un “proxy” le nostre chiamate vengono inoltrate a altri utenti dello stesso proxy, di altri proxy o della rete telefonica pubblica (“gateway”).
www.badpenguin.org
Come effettuo una chiamata SIP ?Come effettuo una chiamata SIP ?Tramite un client:
– SOFTWARE: Ekiga, Kphone, LinPhone, Zoiper, ecc. (per windows: Zoiper, X-Lite)
– Riutilizzando un vecchio telefono analogico e collegandolo a uno speciale apparecchio (ATA) che trasforma il segnale del telefono in VOIP-SIP; es. Linksys PAP2T
– Utilizzando un telefono nativo VOIP (Grandstream, Snom, Aastra, etc.)
Ovviamente in questo modo potete chiamare un altro utente solo conoscendone l'indirizzo IP.
www.badpenguin.org
Come posso chiamare chiunque?Come posso chiamare chiunque?Occorre un abbonamento presso un “provider” VoIP, in Italia ci sono:
– Eutelia
– Exsorsa
– Messagenet
– McLink
– LeVoIP.it
– Squillo (NGI)
– Parla
– Univoice
– Ecc., ecc., ecc.
www.badpenguin.org
Il centralino VoIPIl centralino VoIP
Tutti i centralini tradizionali possono essere aggiornati con costose schede per effettuare un upgrade al VoIP.
In alternativa si può utilizzare Asterisk, FreeSwitch (o qualsiasi altro software simile) possibilmente annegati in una distribuzione Linux già pronta per velocizzare l'installazione.
ATTENZIONE: far funzionare Asterisk (pensato per gli USA) in Italia non è uno scherzo (*2008)
www.badpenguin.org
Soluzioni “free software”Soluzioni “free software”
● Librerie di sviluppo:– Sofia (Nokia) usata internamente da FreeSwitch
– GNU “oSIP” usata internamente da LinPhone
– PJSIP
● Registrar/Proxy SIP:– Asterisk (dual licensing)
– FreeSwitch (MPL)
– Callweaver (GPL), progetto italiano!
– OpenSER => Kamailio, OpenSIPS
www.badpenguin.org
Qual'è il leader?Qual'è il leader?
Non esiste un leader, ognuno dei progetti ha dei punti di forza non coperti dagli altri.
● Asterisk: supporto per schede telefoniche PCI e codec proprietario G.729
● Callweaver: supporto protocollo FAX T.38● OpenSER: proxy per la gestione di grandi
volumi di utenti● FreeSwitch: riconoscimento vocale, sintetizzatore
vocale, XML e LDAP, possibilità di gestire ogni aspetto del protocollo SIP, sistema di audio-conferenze avanzato
www.badpenguin.org
Quali applicazioni posso realizzare?Quali applicazioni posso realizzare?
● Centrale telefonica tradizionale (PBX)● Voicemail (segreteria telefonica + email)● Risponditore vocale (premere 1 per X, ecc.) con
menù ad albero● Smistamento automatico delle chiamate (se la
chiamata arriva dal numero X, sulla linea Y, smistala all'interno Z)
● Integrazione dei dati aziendali con la fonia● Diventare operatore di telefonia
www.badpenguin.org
Un esempio di programmazioneUn esempio di programmazioneAsterisk (semplificato)Asterisk (semplificato)
exten=>10,1,Answer()
exten=>10,2,PlayBack(tutte-gli-operatori-sono-ora-impegnati.wav)
exten=>10,3,VoiceMail(paolo)
exten=>10,4,Hangup()
www.badpenguin.org
Un esempio di programmazione con Un esempio di programmazione con FreeSwitchFreeSwitch
<extension name="Esempio1">
<condition field="destination_number" expression="^(\d+)$"/>
<action application="bridge" data="sofia/profilename/[email protected]"/>
</condition>
</extension>
www.badpenguin.org
CallWeaver, Asterisk, FreeSwitchCallWeaver, Asterisk, FreeSwitch
www.badpenguin.org
CallWeaverCallWeaver
● Progetto italiano● Leader: Massimo
Cetra● Motivazioni: stack
SIP, T.38● Punti di forza: qualità,
stabilità
● Punti deboli: asterisk 1.2, funzionalità mancanti, mISDN non funzionante
● Sito: www.callweaver.org
www.badpenguin.org
AsteriskAsterisk
● Pro: possibilità di inserire e utilizzare schede telefoniche PCI per i vari allacci telefonici (PSTN, ISDN, Pri-ISDN)
● Tantissime API e funzioni che estendono la piattaforma
● Contro: ● dual licensing? (*)● Stack SIP rozzo● Gethostbyname() e
altre chiamate bloccanti (!)
● Non scala oltre le 250 chiamate
● Insicuro (*)
www.badpenguin.org
FreeSwitchFreeSwitch
● Pro:● Gestito da 3 persone
che moderano e coordinano i contributi
● XML e altre tecnologie moderne
● Stack SIP di Nokia (libsofia)
● Gestisce migliaia di chiamate
● Contro:● Ostico per i
principianti o per chi viene dal mondo asterisk (?)
● Manca l'applicazione Queue (?)
● Non supporta schede ISDN nativamente
● Sicurezza
www.badpenguin.org
ApprofondimentiApprofondimenti
Confronto tra Asterisk e Freeswitch (inglese):
http://www.freeswitch.org/node/117
“Asterisk e Dintorni” (e-book):http://www.apogeonline.com/libri/88-503-1041-2/ebook/libro
Mia user page su Freeswitch:http://wiki.freeswitch.org/wiki/User:Agx
www.badpenguin.org
ContattiContatti
Antonio Gallo
[email protected]://www.badpenguin.org/follow-me
(Jabber, skype, gTalk, MSN, Twitter, Facebook, Linkedin etc.)