Perché il VoIP soffre il NAT
Quasi ogni ufficio usa il NAT (Network Address Translation): i telefoni e i computer hanno indirizzi privati, come 192.168.1.20, e il router li fa uscire su Internet tutti con un unico indirizzo pubblico. Per la navigazione web funziona senza che nessuno se ne accorga, perché è sempre il computer a iniziare la connessione e il router si ricorda a chi consegnare la risposta.
Il protocollo SIP è più complicato per due motivi. Primo, scrive gli indirizzi dentro i messaggi: il telefono dice al server "raggiungimi a questo indirizzo e a questa porta", ma l'indirizzo che conosce è quello privato, che da Internet non si raggiunge. Secondo, la voce non viaggia nella stessa connessione dei messaggi SIP: usa flussi separati (RTP) su altre porte, che vengono decise chiamata per chiamata.
Il risultato tipico, se nessuno corregge questi indirizzi, è una chiamata che si collega ma in cui la voce arriva solo in una direzione, oppure un telefono che dopo qualche minuto smette di ricevere le chiamate. Se ti serve un ripasso di come funziona una chiamata, la guida il VoIP per le aziende parte dalle basi.
Le porte che usa Vohippo
Per far funzionare un telefono o un centralino con Vohippo servono due tipi di traffico.
| Traffico | Protocollo | Porte sul server | A cosa serve |
|---|---|---|---|
| Segnalazione SIP | UDP | 5060 | Registrazione, avvio e chiusura delle chiamate |
| Voce (RTP) | UDP | 10000-20000 | L'audio delle chiamate, in entrambe le direzioni |
Il server è sip.vohippo.com, porta 5060 UDP. Il trasporto da impostare su telefoni, softphone e centralini è UDP.
Devo aprire porte sul router?
Nella maggior parte dei casi no. Il telefono si registra verso l'esterno e il router, che è quasi sempre un firewall "con stato", lascia rientrare le risposte e le chiamate in arrivo sulla stessa connessione. Le regole servono solo se in ufficio c'è un firewall che blocca anche il traffico in uscita: in quel caso permetti l'UDP verso sip.vohippo.com sulla porta 5060 e sulle porte 10000-20000, e le relative risposte.
Il SIP ALG: perché conviene spegnerlo
Molti router hanno una funzione chiamata SIP ALG (Application Layer Gateway), a volte indicata come "SIP helper", "SIP passthrough" o semplicemente "SIP". L'idea è buona: il router legge i messaggi SIP che passano e riscrive gli indirizzi privati con quello pubblico.
Il problema è che spesso lo fa male: riscrive solo una parte dei campi, sbaglia le porte, interferisce con le correzioni che il telefono o il server fanno già per conto loro. I sintomi sono audio a una via, chiamate che cadono dopo 30 secondi, telefoni che risultano registrati ma non squillano, o registrazioni che saltano a intervalli regolari.
Il consiglio, valido per Vohippo e per quasi tutti gli operatori, è disattivare il SIP ALG del router. Dove si trova dipende dal modello: di solito nelle impostazioni avanzate, del firewall o del NAT. Su alcuni router forniti dall'operatore non è visibile dall'interfaccia e va chiesto all'assistenza. Dopo averlo spento, riavvia il router e i telefoni, così le vecchie associazioni vengono cancellate.
Cosa fa già il server Vohippo
La buona notizia è che la maggior parte del lavoro sul NAT la fa il server. Su ogni account sono attive queste correzioni:
- force_rport: il server risponde all'indirizzo e alla porta da cui il messaggio è arrivato davvero, non a quelli scritti dentro il messaggio
- rewrite_contact: l'indirizzo con cui il telefono si registra viene sostituito con quello pubblico visto dal server, così le chiamate in arrivo trovano la strada
- rtp_symmetric: l'audio viene rimandato all'indirizzo e alla porta da cui arriva, anche se il telefono ha annunciato un indirizzo privato
- keepalive RTP ogni 30 secondi: durante la chiamata il flusso audio viene tenuto aperto anche nei momenti di silenzio, così il router non lo chiude
Per questo, con un router normale e il SIP ALG spento, non serve configurare STUN né indicare l'indirizzo pubblico sul telefono. Anzi, impostazioni NAT manuali sbagliate sul telefono sono una causa frequente di audio a una via: se le hai messe in passato senza un motivo preciso, prova a toglierle.
Keepalive e scadenza della registrazione
Il router tiene in memoria l'associazione tra il telefono e il server per un tempo limitato. Se in quel tempo non passa traffico, la dimentica. Da quel momento il server continua a mandare le chiamate all'indirizzo che conosce, ma il router non sa più a chi consegnarle: il telefono risulta registrato e non squilla.
Ci sono due modi per evitarlo, e conviene usarli insieme.
La scadenza della registrazione
Ogni telefono si registra per un certo tempo, dopo il quale rinnova la registrazione. Su Vohippo la scadenza predefinita è di 600 secondi; il consiglio è impostarla fra 300 e 600 secondi. Valori molto alti, come un'ora, lasciano il telefono irraggiungibile per troppo tempo se qualcosa cambia; valori molto bassi, sotto il minuto, generano traffico inutile senza vantaggi.
Il keepalive del telefono
Quasi tutti i telefoni e i softphone hanno un'opzione di keepalive NAT: mandano un piccolo pacchetto al server a intervalli regolari, solo per tenere aperta l'associazione nel router. Se il telefono lo prevede, attivalo con un intervallo tra 15 e 30 secondi: è il valore che regge anche con i router che dimenticano le connessioni UDP più in fretta.
Più dispositivi sullo stesso account
Ogni account può registrare fino a 5 dispositivi insieme: per esempio il telefono in ufficio e l'app sul cellulare. Ognuno mantiene la sua registrazione e il suo keepalive. Se un dispositivo non c'è più, non serve fare nulla: la sua registrazione scade da sola.
Fail2ban e indirizzi IP bloccati
Il server protegge gli account da chi tenta di indovinare le password. Il sistema si chiama fail2ban: se dallo stesso indirizzo IP arrivano 5 errori di autenticazione in 10 minuti, quell'indirizzo viene bloccato per un certo tempo. Chi continua a sbagliare viene bloccato per periodi via via più lunghi.
Il rovescio della medaglia è che lo stesso meccanismo può bloccare anche un ufficio vero. Capita quando:
- hai cambiato la password nel portale ma non sul telefono, che continua a riprovare con quella vecchia
- un telefono dimenticato in un cassetto o un vecchio softphone su un portatile riprova da solo con credenziali non più valide
- hai scritto lo username con uno spazio in più copiandolo
Dato che in ufficio tutti escono con lo stesso indirizzo pubblico, un solo apparato sbagliato blocca l'intero ufficio. Il sintomo è che di colpo nessun telefono si registra più.
Come sbloccare un indirizzo
- Trova l'apparato con le credenziali sbagliate e correggile, oppure spegnilo.
- Nel portale apri la pagina «Sicurezza degli indirizzi IP» e controlla se il tuo indirizzo pubblico è bloccato.
- Sblocca l'indirizzo da lì.
- Riavvia i telefoni, o forza una nuova registrazione, e controlla che risultino registrati.
Se sblocchi senza correggere prima l'apparato, entro pochi minuti l'indirizzo viene bloccato di nuovo. Per capire quale apparato sta sbagliando, nel portale ci sono i log SIP di ciascun interno degli ultimi 7 giorni.
Autenticazione per indirizzo IP
Se hai un centralino o un dialer con un indirizzo IP fisso, puoi autenticare l'account con «Indirizzo IP» invece che con «Username e password», oppure con «Username/password e IP», che chiede entrambe le cose. Si possono indicare fino a 20 indirizzi o reti IPv4. È la soluzione tipica per un trunk SIP verso un centralino aziendale.
Diagnosi rapida: sintomo, causa, rimedio
| Sintomo | Causa più probabile | Cosa fare |
|---|---|---|
| Senti l'altro ma lui non sente te, o viceversa | SIP ALG o impostazioni NAT manuali sul telefono | Spegni il SIP ALG, togli STUN e indirizzo pubblico dal telefono |
| Il telefono risulta registrato ma non squilla | Associazione NAT scaduta | Scadenza registrazione 300-600 s, keepalive 15-30 s |
| La chiamata cade sempre dopo circa 30 secondi | Le conferme SIP non tornano al telefono, spesso per il SIP ALG | Spegni il SIP ALG, controlla che il trasporto sia UDP |
| All'improvviso nessun telefono si registra | Indirizzo bloccato da fail2ban | Correggi le credenziali, poi sblocca da «Sicurezza degli indirizzi IP» |
| Errore 403 o 401 in registrazione | Username o password sbagliati | Ricopia le credenziali dal portale, senza spazi |
| Audio a scatti | Wi-Fi saturo, rete instabile, perdita di pacchetti | Cavo di rete o QoS sul router; vedi la guida sui codec |
Per i problemi di qualità audio che non dipendono dal NAT, la guida sui codec VoIP G.711 e G.722 spiega come riconoscere quelli dovuti a una negoziazione sbagliata.
VPN, reti ospiti e situazioni particolari
Alcune configurazioni meritano un'attenzione in più.
- VPN aziendale. Se il portatile esce su Internet attraverso una VPN, il softphone si registra con l'indirizzo della VPN. Funziona, ma un errore di password lì blocca l'indirizzo della VPN, cioè di tutti quelli che la usano.
- Reti ospiti e hotel. Alcune reti Wi-Fi pubbliche bloccano l'UDP o le porte non standard. Se il softphone non si registra fuori ufficio, prova con la connessione del cellulare: se lì funziona, il problema è la rete ospite. In viaggio l'app Vohippo per iPhone e Android è spesso la soluzione più semplice; la trovi descritta nella guida su come configurare un softphone.
- Connessioni mobili 4G e 5G. Usano spesso un NAT dell'operatore molto aggressivo, che chiude le associazioni in fretta: tieni il keepalive attivo.
Se dopo questi controlli qualcosa ancora non torna, scrivici dalla pagina contatti indicando l'account, l'ora di una chiamata di prova e il sintomo: dai log SIP possiamo vedere cosa è successo. Le impostazioni dei singoli telefoni sono nella guida su come configurare un telefono VoIP; per partire da zero registrati su https://cloud.vohippo.com/register.
Domande frequenti
Quali porte devo aprire per il VoIP?
Di solito nessuna in entrata: il telefono si registra verso l'esterno e il router lascia passare le risposte. Se il tuo firewall blocca il traffico in uscita, permetti l'UDP verso sip.vohippo.com sulla porta 5060 per la segnalazione e sulle porte 10000-20000 per la voce.
Perché sento l'altra persona ma lei non sente me?
È l'audio a una via, quasi sempre causato dal NAT. Le cause più comuni sono il SIP ALG attivo sul router o impostazioni NAT manuali sbagliate sul telefono. Spegni il SIP ALG, togli STUN e indirizzo pubblico dal telefono e riavvia router e apparati.
Che cos'è il SIP ALG e come lo disattivo?
È una funzione del router che riscrive i messaggi SIP per aggirare il NAT, ma spesso li rovina. Si disattiva dalle impostazioni avanzate, del firewall o del NAT del router; su alcuni router dell'operatore va chiesto all'assistenza.
Perché il telefono è registrato ma non riceve le chiamate?
Perché il router ha dimenticato l'associazione con il server mentre il telefono era inattivo. Imposta la scadenza della registrazione fra 300 e 600 secondi e, se il telefono lo prevede, un keepalive NAT fra 15 e 30 secondi.
Il mio indirizzo IP è stato bloccato: cosa faccio?
Il blocco scatta dopo 5 errori di autenticazione in 10 minuti dallo stesso indirizzo. Prima correggi l'apparato che sbaglia la password, poi sblocca l'indirizzo dalla pagina «Sicurezza degli indirizzi IP» del portale: se non correggi prima, il blocco torna.
Serve STUN per usare Vohippo?
Di norma no. Il server corregge già gli indirizzi dei messaggi e dell'audio per chi sta dietro un NAT, quindi STUN e indirizzo pubblico sul telefono vanno lasciati vuoti, salvo casi particolari.