La chiamata si interrompe: dopo 30 secondi, dopo 15–30 minuti
Un'interruzione «esattamente dopo tot» non è una cattiva connessione, ma un timer: una delle parti aspettava qualcosa, non è arrivato e ha riagganciato onestamente. Perciò, in base al tempo dell'interruzione, la causa si può indicare quasi con certezza: ~32 secondi — non è arrivata la conferma dell'inizio della conversazione; ~15 o ~30 minuti — non è passato il rinnovo della conversazione; le chiamate in entrata funzionano solo nei primi minuti — il router ha chiuso la strada verso il telefono. Di seguito — il meccanismo di ogni caso a parole e cosa fare.
La configurazione generale dei telefoni è nella panoramica «Configurazione dei telefoni SIP», gli altri sintomi nella diagnostica per sintomi.
Prima verificate nell'area di amministrazione#
- Registro delle chiamate — aprite la chiamata interrotta. «Conversazione» mostrerà la durata con precisione al secondo: 0:31–0:33 — è la firma del primo caso, circa 15:00 o 29:30 — del secondo. Qui ci sono anche «Ha riagganciato» (il chiamante, il dipendente o il PBX) e «Motivo della chiusura».
- Echo test
*43, ma lungo: componete e tenete la cornetta per 45 secondi. Anche*43è una chiamata, e la conferma dell'inizio della conversazione segue lo stesso percorso. Si è interrotta al 32º secondo — guasto tra il telefono e il PBX; ha tenuto — il telefono e la rete della sede sono a posto, cercate oltre (chiamate esterne, operatore di telecomunicazioni). - Scheda dell'apparecchio → «Funzionalità»: errori regolari «nessuna connessione» — il router chiude il percorso di ritorno verso il telefono (vedi il terzo caso).
- «Chiama l'apparecchio» nella scheda, 10 minuti dopo l'ultima chiamata: ha squillato — la strada verso il telefono è viva; tace con il punto verde — è il router.
- SIP trace sul PBX dedicato: un
200 OKripetuto senzaACK, poiBYE— primo caso;BYEdopoINVITEoUPDATEa metà conversazione — secondo.
Interruzione dopo 30–32 secondi#
Perché succede#
L'inizio della conversazione è una stretta di mano in tre messaggi: «chiamo» (INVITE) — «ha risposto» (200 OK) — «ricevuto, iniziamo» (ACK). La parte che ha risposto ripete il suo «ha risposto» finché non riceve «ricevuto». La regola del protocollo SIP: se «ricevuto» non arriva entro 64 × T1 = 64 × 0,5 s = 32 secondi, la conversazione va terminata. La voce nel frattempo è già in corso — per questo per mezzo minuto va tutto bene, e poi la chiamata cade da sola.
Dunque, un'interruzione al 32º secondo significa: la conferma ACK si perde da qualche parte. Perché — dal più frequente al più raro:
- SIP ALG sul router. Il router riscrive gli indirizzi all'interno dei messaggi di servizio, e la conferma va nel posto sbagliato o viene scartata. La prima cosa da verificare sempre.
- Pacchetto troppo grande. Se nel telefono sono attivati decine di codec, la descrizione della chiamata si gonfia oltre ~1300 byte, e via UDP parte «a pezzi» (frammenti). Molti router e firewall scartano i frammenti in silenzio — si perde proprio quel messaggio. Il protocollo SIP richiede espressamente per tali messaggi il passaggio a TCP.
- Indirizzo interno nei messaggi. Il telefono dichiara di sé un indirizzo interno (
192.168.x.x), e la conferma viene inviata lì. Il nostro PBX lo corregge da solo — risponde là da dove il messaggio è realmente arrivato —, ma presso l'operatore di telecomunicazioni tale protezione può non esserci: allora si interrompono solo le chiamate esterne. - Doppio NAT o un firewall severo che lascia passare i primi messaggi della chiamata e taglia quelli successivi.
Per l'amministratore di rete: quale parte riaggancia
Secondo la RFC 3261 (§13.3.1.4) la parte che ha risposto 200 OK lo ripete con intervallo da T1 a T2 e, dopo 64 × T1 senza ACK, termina la sessione con una richiesta BYE; T1 per impostazione predefinita è 500 ms (§17.1.1.1), da qui i 32 secondi.
- Chiamata in entrata verso il telefono:
200 OKlo invia il telefono,ACK— il PBX. Si è perso l'ACKlungo il percorso verso il telefono — riaggancia il telefono. - Chiamata in uscita dal telefono e
*43:200 OKlo invia il PBX,ACK— il telefono. Si è perso l'ACKlungo il percorso verso il PBX — riaggancia il PBX. - Frammentazione: RFC 3261 §18.1.1 — se una richiesta è più lunga di 1300 byte (o entro 200 byte dalla MTU del percorso), il client deve inviarla via TCP con controllo della congestione. Il nostro PBX accetta TCP sulla stessa porta 5060.
Cosa fare#
Dopo ogni passo ripetete il lungo *43 (45 secondi) e una chiamata di prova; poi proseguite solo se non ha aiutato.
- Disattivate il SIP ALG sul router («SIP Helper», «SIP Passthrough», «ALG per SIP») e riavviate il router. Dove si trova nelle marche più diffuse — «Rete, router e internet».
- Lasciate nel telefono tre codec — G.711 PCMA, G.711 PCMU e G.722 —, disattivate gli altri: i messaggi diventeranno più corti e smetteranno di frammentarsi.
- Passate il trasporto a TCP (la porta è la stessa, 5060), se il passo 2 non ha aiutato: TCP suddivide da solo i messaggi lunghi nel modo corretto, e la frammentazione sparisce. Il nostro PBX accetta sia UDP sia TCP.
- Si interrompono solo le chiamate esterne, mentre
*43e quelle interne tengono — guasto tra il PBX e l'operatore di telecomunicazioni. Inviate al supporto l'orario di alcune chiamate interrotte. - Eliminate il doppio NAT — mettete il router del provider in modalità bridge oppure collegate il telefono direttamente a esso.
Interruzione dopo 15 o 30 minuti#
Perché succede#
Durante una lunga conversazione le parti confermano di tanto in tanto che la conversazione è ancora in corso — sono i timer di sessione. L'intervallo viene concordato all'inizio della chiamata; una parte si impegna a «prorogare» la conversazione a metà dell'intervallo, l'altra attende la proroga. Sul nostro centralino i timer di sessione sono attivi con un intervallo di 1800 secondi (30 minuti); servono perché una conversazione la cui connessione è caduta in silenzio non resti appesa per ore occupando la linea.
Da qui due andamenti:
- circa 15 minuti — a metà dell'intervallo la proroga è stata inviata, ma non è andata a buon fine: la parte l'ha rifiutata o non ha ricevuto risposta;
- circa 29,5 minuti — la proroga non c'è stata affatto, e la parte che l'attendeva ha riagganciato poco prima della scadenza dell'intervallo.
Perché la proroga non va a buon fine:
- Il router ha chiuso il percorso dei messaggi di servizio. La voce durante la conversazione fluisce di continuo, mentre i messaggi di servizio tacciono. Se sul telefono il keep-alive è disattivato, dopo qualche minuto il router chiude la «porta» per i messaggi di servizio — e la proroga dal centralino al telefono non arriva più.
- Il telefono non comprende il metodo di proroga o lo rifiuta — firmware vecchio, «Session Timer» attivo con parametri non standard.
- SIP ALG altera il messaggio di proroga.
- Il timer dell'operatore telefonico — se cadono solo le chiamate esterne e sempre allo stesso minuto.
Il centralino attiva i timer nella conversazione solo se anche il telefono li supporta ⚠️ verify. Sulla maggior parte dei telefoni da scrivania «Session Timer» è disattivato di fabbrica (su Yealink e Grandstream — secondo la documentazione), e in quel caso nella conversazione i timer non ci sono affatto.
Per l'amministratore di rete: valori sul lato centralino
timers=yes— i timer sono supportati;timers_sess_expires=1800— intervallo 1800 s;timers_min_se=90— meno di 90 s il centralino non accetta (shared/sip/advanced-options.json, gruppoprotocol).- Secondo la RFC 4028 la proroga viene inviata a metà dell'intervallo (900 s), e la parte che non l'ha ricevuta chiude la sessione con
BYEmin(32 s, intervallo / 3) prima della scadenza — circa 1768 s. - Il centralino non interrompe per silenzio (
rtp_timeout=0), quindi una «conversazione senza audio» di per sé non cade. - Su un centralino dedicato gli stessi valori sono in «Impostazioni SIP avanzate» («Timer di sessione», «Aggiornamento sessione, secondi»). Non è necessario modificarli senza richiesta del provider.
Cosa fare#
- Attivate il keep-alive sul telefono — mantiene aperto il percorso dei messaggi di servizio anche durante la conversazione. Yealink: Account → Advanced → Keep Alive Type (Default o Options) e Keep Alive Interval — 30 s (valore di fabbrica).
- Disattivate SIP ALG sul router.
- Se sul telefono avete attivato «Session Timer» — riportate il valore di fabbrica (off) oppure impostate l'intervallo a 1800 s: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
- Aggiornate il firmware del telefono — gli errori di proroga della conversazione sono spesso corretti nelle nuove versioni.
- Cadono solo le chiamate esterne, sempre allo stesso minuto — inviate gli orari delle chiamate al supporto: verificheremo i timer con l'operatore telefonico.
Le chiamate in entrata funzionano solo nei primi minuti dopo l'accensione#
Perché succede#
Il telefono si trova dietro il router, e il centralino può raggiungerlo solo attraverso la «porta» che il telefono ha aperto con il suo ultimo messaggio. Il router tiene aperte queste porte per poco — sui router domestici da mezzo minuto a qualche minuto di silenzio — e poi le chiude. Finché il telefono invia spesso qualcosa (registrazione subito dopo l'accensione, keep-alive), la porta resta aperta. Appena tace — si chiude, e la chiamata in entrata dal centralino si blocca sul router.
La sede nell'admin può intanto restare verde: la registrazione il telefono la rinnova da solo, dall'interno, e va a buon fine, mentre entrare nel telefono dall'esterno non è più possibile. Il riavvio «guarisce», perché riapre la porta — per un po'.
Il nostro centralino dal canto suo ogni 60 secondi verifica ogni apparecchio con una richiesta «sei in linea?»: anche questo pacchetto di andata tiene aperta la porta — ma solo se il router la chiude in più di un minuto. Se l'apparecchio non risponde, il centralino lo considera non raggiungibile, la sede si spegne e in «Funzionalità» compare un'interruzione.
Cosa fare#
Dopo ogni passaggio verificate la chiamata in entrata dopo 10 minuti di inattività (con il pulsante «Chiama l'apparecchio» o da un interno vicino); poi — solo se non ha funzionato.
- Attivate il keep-alive sul telefono con intervallo di 20–30 secondi. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (di fabbrica Default e 30 s); su Fanvil — Keep Alive Type nelle impostazioni avanzate della linea.
- Disattivate SIP ALG sul router — anche lui tende a «dimenticare» le porte.
- Riducete il tempo di registrazione sul telefono (Expires / Register Expiration) a 60–120 secondi — il telefono aprirà la porta da solo più spesso. Meno di 60 il nostro centralino non accetta (
423 Interval Too Brief). - Su un centralino dedicato potete verificare gli apparecchi più spesso: «Impostazioni SIP avanzate» → «Verifica connessione, secondi» — 20–30 invece di 60. Questo mantiene la porta dal lato centralino, ma aggiunge traffico di servizio; il keep-alive del telefono è più affidabile.
- Doppio NAT (router del provider + il vostro) — le porte sono due, e si chiudono in modi diversi: eliminate una — «Rete, router e internet».
Interruzione al passaggio da Wi-Fi a internet mobile#
Perché succede#
Il Wi-Fi del locale e l'internet mobile sono due indirizzi diversi. La conversazione è iniziata da uno dei due, e all'inizio della conversazione il centralino ha memorizzato da dove arriva la voce: per motivi di sicurezza accetta l'audio solo da quell'indirizzo. Quando lo smartphone passa alla rete mobile, la voce inizia ad arrivare da un nuovo indirizzo — e per il centralino è ormai un flusso estraneo, mentre i messaggi di servizio continuano a essere inviati al vecchio indirizzo, che non esiste più. Una conversazione iniziata in una rete, al passaggio a un'altra, quasi sempre si interrompe. È un limite della tecnologia stessa, non un guasto.
L'altra faccia della stessa medaglia: mentre lo smartphone passa da una rete all'altra, il softphone perde la registrazione, e in quei secondi le chiamate in entrata non arrivano. Android, inoltre, mette in sospensione le app in background — per approfondire, nella panoramica, la sezione sui telefoni software.
Cosa fare#
- Durante la conversazione non cambiate rete: terminate la chiamata prima di uscire dalla zona Wi-Fi.
- Disattivate sullo smartphone il passaggio automatico da un Wi-Fi debole alla rete mobile (su iPhone — «Assistenza Wi-Fi», su Android — «passa alla rete mobile» nelle impostazioni Wi-Fi): allo stato attuale interrompe la conversazione sulla soglia del bar.
- Consentite al softphone di funzionare in background e disattivate per esso il risparmio energetico — così si registra più rapidamente dopo il cambio di rete.
- Dove non potete permettervi di perdere la chiamata (banco, reception), installate un telefono da scrivania o un cordless DECT, non uno smartphone.
Cosa inviare al supporto#
- data e ora di alcune chiamate interrotte al minuto, i numeri e l'interno;
- dopo quanto si interrompe (dal registro — «Conversazione») e se sempre allo stesso modo;
- se si interrompono tutte le chiamate o solo quelle esterne; se il lungo
*43(45 secondi) tiene; - modello e firmware del telefono (la riga dal tag dell'apparecchio), se in esso sono attivi keep-alive e Session Timer;
- modello del router, se SIP ALG è disattivato, se c'è un secondo router del provider;
- su un centralino dedicato — il testo del SIP-trace dell'interruzione ripetuta.
Come scriverci — «Supporto».
Domande frequenti#
Perché l'interruzione avviene proprio al 32º secondo, e non al 30º né al 40º?#
Perché questo numero è insito nel protocollo SIP stesso: la conferma dell'inizio della conversazione viene attesa per 64 intervalli da mezzo secondo — 32 secondi. Se da voi sono «circa 30 secondi» e ogni volta allo stesso modo — è quello, anche se il cronometro segnava 31 o 33: parte del tempo è andata in squilli e risposta.
SIP ALG è disattivato, ma l'interruzione al 30º secondo è rimasta — cos'altro?#
Verificate che ALG sia disattivato su tutti i router lungo il percorso (sul router del provider spesso è il suo), lasciate nel telefono tre codec e provate il trasporto TCP. Se si interrompono solo le chiamate esterne, mentre *43 tiene per 45 secondi, — il problema è nel tratto verso l'operatore di telecomunicazioni, inviate l'ora delle chiamate.
La sede è verde, ma le chiamate in entrata non arrivano — è anch'esso un «interruzione»?#
È lo stesso meccanismo della sezione sulle chiamate in entrata nei primi minuti: la registrazione si aggiorna dall'interno, ma la porta verso il telefono dall'esterno è già chiusa. La verifica — «Chiamare l'apparecchio» dopo 10 minuti di inattività; la cura — keep-alive nel telefono.
Si possono semplicemente disattivare i timer di sessione sul centralino?#
Si può (su un centralino dedicato, «Impostazioni SIP avanzate»), ma questo cura il sintomo, non la causa: il rinnovo non passa perché il percorso dei messaggi di servizio è chiuso o danneggiato, e lo stesso percorso servirà per il trasferimento della chiamata e la messa in attesa. Inoltre, senza timer, le conversazioni interrotte in silenzio resteranno appese per ore e occuperanno le linee. Prima keep-alive e SIP ALG.
Sezioni correlate#
- Il telefono non funziona: diagnosi per sintomi — tra cui «nessuna chiamata in entrata con quelle in uscita funzionanti»
- Nessun audio, si sente in una sola direzione, eco, «robot»
- Non si registra: scritte e codici di errore — «si registra e sparisce»,
423 Interval Too Brief - Rete, router e internet per la telefonia — dove disattivare SIP ALG, doppio NAT
- Configurazione dei telefoni SIP — rete del locale, verifica della qualità della connessione
- Registro delle chiamate e SIP-trace
Fonti#
- RFC 3261 — SIP: ripetizione di
200 OKfino alla ricezione diACKe chiusura della sessione dopo 64 × T1 (§13.3.1.4), T1 = 500 ms (§17.1.1.1), passaggio a TCP per messaggi più lunghi di 1300 byte (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261 - RFC 4028 — Session Timers: rinnovo a metà intervallo,
BYEa min(32 s, intervallo / 3) prima della scadenza — https://www.rfc-editor.org/rfc/rfc4028 - Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (valori di fabbrica Default, 30 s), Session Timer (valore di fabbrica — disattivato; Session Expires 1800 s; rinnovo a metà intervallo)
- Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (valore di fabbrica «No»), Session Expiration, Min-SE — https://documentation.grandstream.com/knowledge-base/grp261x-grp262x-grp263x-series-administration-guide/
- Zoiper 5 User Guide v1.0.7 — UDP e limite della dimensione del pacchetto, timeout NAT del router — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
- Codice del centralino:
shared/sip/advanced-options.json(timers=yes,timers_sess_expires=1800,timers_min_se=90,qualify_frequency=60,minimum_expiration=60,rtp_timeout=0,force_rport,rewrite_contact),sip-edge/asterisk/rtp.conf(strictrtp=yes),sip-edge/sipsync/linecheck.go(test echo*43, limite di verifica 300 s)