Che cos'è un codec
Quando parli al telefono, il microfono produce un segnale continuo. Per mandarlo in rete bisogna campionarlo, cioè misurarlo migliaia di volte al secondo, e trasformare ogni misura in numeri. Il codec (da codificatore-decodificatore) è la regola che stabilisce come farlo: quante misure al secondo, quanti bit per ciascuna, se e come comprimere il risultato.
Durante una chiamata VoIP i due apparecchi si accordano sul codec all'inizio, durante la negoziazione SIP. Chi chiama propone un elenco di codec in ordine di preferenza nella descrizione della sessione (SDP); chi risponde sceglie il primo che conosce anche lui. Se non c'è nessun codec in comune, la chiamata non parte. Se vuoi ripassare come funziona una chiamata VoIP dall'inizio, la guida il VoIP per le aziende è il punto di partenza.
Tre grandezze decidono l'esperienza:
- la banda passante audio, cioè quali frequenze della voce arrivano dall'altra parte: più è larga, più la voce sembra naturale
- il bitrate, cioè quanti dati al secondo servono
- la complessità, cioè quanta potenza di calcolo serve al telefono o al centralino per codificare e decodificare
G.711: il codec di base della telefonia
G.711 è lo standard ITU della telefonia digitale da decenni ed è il codec che qualunque apparato VoIP supporta. Campiona la voce 8.000 volte al secondo con 8 bit per campione: il risultato è un flusso di 64 kbit/s, con la voce trasmessa fra circa 300 e 3.400 Hz. È la stessa qualità della telefonia fissa tradizionale, quella che chiamiamo banda stretta.
a-law e µ-law
G.711 esiste in due varianti, che differiscono per la curva usata per comprimere i valori del segnale:
- G.711 a-law (spesso indicato come PCMA) è lo standard in Europa e in gran parte del mondo
- G.711 µ-law (PCMU, a volte scritto u-law o mu-law) è lo standard in Nord America e in Giappone
La qualità è praticamente la stessa. In Italia conviene mettere a-law prima di µ-law: è la variante usata dalla rete telefonica europea e si evitano conversioni inutili.
Pregi e difetti
G.711 non comprime quasi nulla, quindi non perde qualità e non introduce ritardo di elaborazione. Il prezzo è la banda: con le intestazioni dei pacchetti IP, UDP e RTP una chiamata G.711 usa circa 100 kbit/s per direzione. Su una fibra o un'FTTC è poco; su una connessione ADSL lenta, con più chiamate insieme e altro traffico, va tenuto in conto.
G.722: la voce in alta definizione
G.722 è il codec della cosiddetta HD voice. Campiona la voce 16.000 volte al secondo e trasmette le frequenze fra circa 50 e 7.000 Hz: la differenza si sente subito, le consonanti come "f" e "s" diventano distinguibili e la voce sembra quella di una persona nella stanza, non quella "da telefono".
La cosa che sorprende molti è che G.722 usa la stessa banda di G.711: 64 kbit/s di audio, circa 100 kbit/s per direzione con le intestazioni. Quindi non c'è un costo di rete in più per avere una qualità migliore.
Quando si sente davvero in HD
L'alta definizione c'è solo se tutti e due gli estremi della chiamata usano G.722. In pratica:
- tra due interni dello stesso ufficio, entrambi con telefoni o app compatibili, la chiamata è in HD
- verso un numero fisso o un cellulare della rete tradizionale la chiamata passa quasi sempre in banda stretta, perché l'altra rete lavora con G.711
Questo non è un difetto: è il motivo per cui conviene impostare G.722 come primo codec e lasciare G.711 subito dopo. Quando l'HD è possibile si usa, quando non lo è la chiamata parte comunque.
G.729 e Opus: cosa sapere
Nel mondo VoIP si incontrano anche altri codec. Vale la pena conoscerli, anche perché molti telefoni e centralini li propongono di default.
G.729
G.729 comprime molto: 8 kbit/s di audio, circa 30 kbit/s per direzione con le intestazioni. È nato quando la banda era cara e si usa ancora su collegamenti molto lenti o satellitari. La qualità è in banda stretta e un po' inferiore a G.711, soprattutto con musica d'attesa e toni. Per anni ha richiesto licenze; oggi i brevetti principali sono scaduti, ma non tutti gli apparati lo includono.
Opus
Opus è un codec moderno e aperto, molto flessibile: si adatta da pochi kbit/s fino a bitrate alti e regge bene la perdita di pacchetti. È il codec più usato nelle chiamate dal browser con WebRTC e in molte app di messaggistica.
Cosa usano gli account Vohippo
Gli account SIP di Vohippo lavorano con G.711 a-law, G.711 µ-law e G.722. G.729 e Opus non sono disponibili sugli account. Con le connessioni di oggi non è una limitazione pratica: G.722 dà più qualità di G.729 e G.711 funziona con qualunque apparato. Se il tuo telefono propone G.729 o Opus in cima all'elenco non succede niente di grave, ma conviene toglierli per avere una negoziazione pulita.
Confronto rapido
| Codec | Banda audio | Bitrate audio | Banda per direzione (circa) | Sugli account Vohippo |
|---|---|---|---|---|
| G.711 a-law (PCMA) | 300-3.400 Hz | 64 kbit/s | 100 kbit/s | Sì |
| G.711 µ-law (PCMU) | 300-3.400 Hz | 64 kbit/s | 100 kbit/s | Sì |
| G.722 | 50-7.000 Hz | 64 kbit/s | 100 kbit/s | Sì |
| G.729 | 300-3.400 Hz | 8 kbit/s | 30 kbit/s | No |
| Opus | variabile, fino alla banda piena | 6-510 kbit/s | variabile | No |
Quanta banda serve in ufficio
Il conto è semplice: numero di chiamate contemporanee per 100 kbit/s, in upload e in download. Un'officina con 3 linee che squillano al banco accettazione ha bisogno di circa 300 kbit/s per direzione nel momento peggiore; un call center con 30 postazioni attive arriva a circa 3 Mbit/s per direzione. Il numero di chiamate contemporanee in uscita lo decidi tu su ogni account con «Chiamate contemporanee in uscita».
Conta più la stabilità che la velocità: una fibra con ritardi irregolari (jitter) o perdita di pacchetti dà più problemi di una connessione lenta ma costante. Se l'ufficio scarica spesso file pesanti, valuta di dare priorità al traffico voce sul router (QoS).
Come impostare i codec su telefoni e centralini
L'ordine consigliato è lo stesso su qualsiasi apparato:
- G.722
- G.711 a-law (PCMA)
- G.711 µ-law (PCMU)
Tutti gli altri codec vanno disattivati. Per i toni della tastiera (DTMF) usa RFC 4733, che su molti apparati compare ancora con il vecchio nome RFC 2833 o come "telephone-event": i toni viaggiano come eventi separati e non vengono deformati dal codec.
Telefoni IP
Sui telefoni da scrivania i codec si trovano di solito nelle impostazioni dell'account, in una sezione audio o codec, con due liste: abilitati e disabilitati. Sposta i tre codec nell'ordine giusto e lascia la durata del pacchetto (ptime) a 20 ms, che è il valore standard. I passaggi completi sono nella guida su come configurare un telefono VoIP, con le versioni per Yealink, Grandstream e le altre marche.
Softphone e app
Nei softphone per computer i codec si scelgono nelle impostazioni audio dell'account; alcune versioni gratuite includono solo G.711, che va benissimo. Il webphone nel browser e l'app Vohippo per iPhone e Android sono già pronti per l'uso con l'account. Vedi la guida su come configurare un softphone.
Asterisk e FreePBX
Su Asterisk con PJSIP i codec si impostano sull'endpoint del trunk, con lo stesso ordine:
[vohippo]
type=endpoint
disallow=all
allow=g722,alaw,ulaw
dtmf_mode=rfc4733
Il resto della configurazione è nella guida per configurare il trunk su Asterisk; su FreePBX gli stessi valori si mettono nelle impostazioni del trunk dall'interfaccia web, come spiega la guida trunk SIP su FreePBX. Ricorda che anche gli interni del centralino devono avere G.711 tra i codec ammessi: se un interno parla solo un codec che il trunk non ha, il centralino deve convertire l'audio (transcodifica), con più carico e qualche perdita di qualità.
3CX
Su 3CX l'elenco dei codec si trova nelle impostazioni del trunk. Lascia G.722 e G.711 a-law in cima, poi µ-law. I dettagli sono nella guida trunk SIP su 3CX.
I problemi causati dai codec
Molti problemi che sembrano di rete sono in realtà di codec. Ecco come riconoscerli.
| Sintomo | Causa probabile | Cosa fare |
|---|---|---|
| La chiamata viene rifiutata subito con l'errore 488 (Not Acceptable Here) | Nessun codec in comune | Abilita G.711 a-law e µ-law sull'apparato |
| Silenzio totale in entrambe le direzioni dopo la risposta | Codec annunciato ma non supportato davvero, oppure problema di NAT | Controlla l'elenco dei codec, poi la guida sul NAT |
| Voce metallica o robotica | Transcodifica in un centralino o perdita di pacchetti | Usa lo stesso codec sugli interni e sul trunk, verifica la rete |
| I toni del menu di un servizio non vengono riconosciuti | DTMF inviato dentro l'audio | Imposta il DTMF su RFC 4733 |
| HD voice tra interni non attiva | G.722 disabilitato su uno dei due apparati | Metti G.722 al primo posto su entrambi |
Se il codec è a posto e l'audio arriva da una parte sola, il problema è quasi sempre di rete: router, SIP ALG o firewall. Lo trattiamo nella guida su NAT, firewall e porte per il VoIP.
Un esempio pratico
Uno studio di commercialisti con 6 persone ha telefoni da scrivania che supportano G.722 e un collaboratore che lavora da casa con l'app. Impostando G.722, a-law e µ-law su tutti gli account, le chiamate fra colleghi sono in HD, comprese quelle verso il collaboratore da remoto, e le chiamate gratuite fra interni brevi non consumano credito. Le chiamate verso i clienti, che arrivano dai cellulari o dalla rete fissa, passano in G.711 senza bisogno di toccare nulla. La banda nel momento di massimo traffico, con 6 chiamate insieme, resta intorno ai 600 kbit/s per direzione.
Per partire bastano un account SIP per persona, che crei dopo esserti registrato su https://cloud.vohippo.com/register, e il listino delle tariffe al secondo per sapere quanto costano le chiamate verso l'esterno.
Domande frequenti
Qual è il miglior codec per il VoIP?
Per la qualità G.722, che porta la voce in alta definizione con la stessa banda di G.711. Per la compatibilità G.711, che funziona con qualunque apparato e con la rete telefonica tradizionale. L'impostazione giusta è averli entrambi, con G.722 al primo posto.
Che differenza c'è tra G.711 a-law e µ-law?
Usano due curve diverse per comprimere i valori del segnale, ma la qualità è praticamente la stessa. a-law è lo standard europeo, µ-law quello nordamericano e giapponese: in Italia conviene mettere a-law per primo e tenere µ-law come riserva.
Quanta banda consuma una chiamata VoIP?
Con G.711 o G.722 circa 100 kbit/s in ciascuna direzione, intestazioni comprese. Per sapere quanta ne serve all'ufficio, moltiplica per il numero massimo di chiamate contemporanee e aggiungi un margine per il resto del traffico.
Posso usare G.729 con Vohippo?
No, gli account Vohippo lavorano con G.711 a-law, G.711 µ-law e G.722. Se il tuo apparato propone G.729, toglilo dall'elenco: la chiamata userà G.722 o G.711, che con le connessioni di oggi danno una qualità uguale o migliore.
Perché sento la voce metallica in alcune chiamate?
Di solito per perdita di pacchetti sulla rete o per una conversione di codec dentro un centralino. Controlla che interni e trunk usino gli stessi codec e, se il problema resta, verifica la stabilità della connessione e il Wi-Fi.