2. 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
3. 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 ?
5. www.badpenguin.org
Come funziona la telefoniaCome 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.
6. 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.
7. 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.
9. 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”.
10. 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
11. 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
12. 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.
13. 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)
14. 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
15. 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 (*)
16. 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).
17. www.badpenguin.org
I PROTOCOLLI DII PROTOCOLLI DI
SEGNALAZIONE:SEGNALAZIONE:
come e dove trasmettiamo la vocecome e dove trasmettiamo la voce
18. 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”
19. 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)
20. 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
21. 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”).
22. 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.
23. 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.
24. 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)
25. 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
26. 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
27. 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
28. www.badpenguin.org
Un esempio di programmazioneUn esempio di programmazione
Asterisk (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()
29. www.badpenguin.org
Un esempio di programmazione conUn esempio di programmazione con
FreeSwitchFreeSwitch
<extension name="Esempio1">
<condition field="destination_number" expression="^(d+)
$"/>
<action application="bridge" data="sofia/profilename/
$1@voip.provider.it"/>
</condition>
</extension>
31. 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
32. 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 (*)
33. 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
34. 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