C cenaly.com
Começar grátis

A chamada cai: após 30 segundos, após 15–30 minutos

Queda aos 32 segundos (sem ACK), após 15–30 minutos (timers de sessão), chamadas recebidas funcionam apenas nos primeiros minutos após ligar — funcionamento e solução

On this page 21

A chamada cai: após 30 segundos, após 15–30 minutos

Queda “exatamente após tanto tempo” não é conexão ruim, mas um temporizador: um dos lados esperou algo, não recebeu e desligou honestamente. Por isso, pelo tempo da queda dá para apontar a causa quase com certeza: ~32 segundos — a confirmação de início da conversa não chegou; ~15 ou ~30 minutos — a renovação da conversa não passou; as chamadas recebidas funcionam só nos primeiros minutos — o roteador fechou o caminho até o telefone. Abaixo está o mecanismo de cada caso em palavras e o que fazer.

A configuração geral dos telefones está na visão geral “Configuração de telefones SIP”; os demais sintomas estão no diagnóstico por sintomas.

Primeiro verifique no painel de administração#

  1. Registro de chamadas — abra a chamada interrompida. “Conversa” mostrará a duração com precisão de segundos: 0:31–0:33 — a marca do primeiro caso; cerca de 15:00 ou 29:30 — do segundo. Ali também estão “Desligou o telefone” (quem chamou, o funcionário ou a central telefônica) e “Motivo do desligamento”.
  2. Teste de eco *43, mas longo: disque e mantenha o telefone 45 segundos. *43 também é uma chamada, e a confirmação de início da conversa nela percorre o mesmo caminho. Caiu no 32º segundo — defeito entre o telefone e a central telefônica; aguentou — o telefone e a rede do estabelecimento estão em ordem, procure mais adiante (chamadas externas, operadora de telefonia).
  3. Ficha do aparelho → “Funcionamento”: falhas regulares de “sem conexão” — o roteador está fechando o caminho de volta até o telefone (veja o terceiro caso).
  4. “Ligar para o aparelho” na ficha, 10 minutos após a última chamada: tocou — o caminho até o telefone está vivo; fica em silêncio com a unidade verde — é o roteador.
  5. SIP-trace na central telefônica dedicada: 200 OK repetido sem ACK, depois BYE — primeiro caso; BYE após INVITE ou UPDATE no meio da conversa — segundo.

Queda após 30–32 segundos#

Por que isso acontece#

O início da conversa é um aperto de mãos de três mensagens: “estou ligando” (INVITE) — “atenderam” (200 OK) — “entendi, começamos” (ACK). O lado que atendeu repete o seu “atenderam” até receber o “entendi”. A regra do protocolo SIP: se o “entendi” não chegou em 64 × T1 = 64 × 0,5 s = 32 segundos, a conversa deve ser encerrada. A voz já está fluindo nesse momento — por isso meio minuto está tudo normal, e depois a chamada cai sozinha.

Assim, a queda no 32º segundo significa: a confirmação ACK se perde em algum lugar. Por quê — do frequente ao raro:

  1. SIP ALG no roteador. O roteador reescreve os endereços dentro das mensagens de serviço, e a confirmação vai para o lugar errado ou é descartada. A primeira coisa que sempre precisa ser verificada.
  2. Pacote grande demais. Se no telefone estão ativados dezenas de codecs, a descrição da chamada incha para mais de ~1300 bytes, e por UDP ela sai “em pedaços” (fragmentos). Muitos roteadores e firewalls descartam fragmentos silenciosamente — perde-se justamente essa mensagem. O protocolo SIP exige expressamente que, para tais mensagens, se passe para TCP.
  3. Endereço interno nas mensagens. O telefone informa sobre si um endereço interno (192.168.x.x), e a confirmação é enviada para ele. Nossa central telefônica corrige isso sozinha — responde para onde a mensagem realmente chegou —, mas na operadora de telefonia essa proteção pode não existir: então só as chamadas externas caem.
  4. NAT duplo ou firewall rígido, que deixa passar as primeiras mensagens da chamada e corta as seguintes.
Para o administrador de rede: qual lado desliga o telefone

Conforme a RFC 3261 (§13.3.1.4), o lado que respondeu 200 OK o repete com intervalo de T1 a T2 e, após 64 × T1 sem ACK, encerra a sessão com a requisição BYE; T1 por padrão é 500 ms (§17.1.1.1), daí os 32 segundos.

  • Chamada recebida no telefone: o 200 OK é enviado pelo telefone, o ACK — pela central telefônica. O ACK se perdeu no caminho até o telefone — quem desliga é o telefone.
  • Chamada feita do telefone e *43: o 200 OK é enviado pela central telefônica, o ACK — pelo telefone. O ACK se perdeu no caminho até a central telefônica — quem desliga é a central telefônica.
  • Fragmentação: RFC 3261 §18.1.1 — se a requisição for maior que 1300 bytes (ou dentro de 200 bytes do MTU do caminho), o cliente deve enviá-la por TCP com controle de congestionamento. Nossa central telefônica aceita TCP na mesma porta 5060.

O que fazer#

Após cada passo, repita o *43 longo (45 segundos) e uma chamada de teste; continue — só se não resolveu.

  1. Desative o SIP ALG no roteador (“SIP Helper”, “SIP Passthrough”, “ALG para SIP”) e reinicie o roteador. Onde ele fica nas marcas populares — “Rede, roteador e internet”.
  2. Deixe no telefone três codecs — G.711 PCMA, G.711 PCMU e G.722 —, desative os demais: as mensagens ficarão mais curtas e deixarão de ser fragmentadas.
  3. Mude o transporte para TCP (a porta é a mesma, 5060), se o passo 2 não ajudou: o TCP por si só corta as mensagens longas corretamente, e a fragmentação desaparece. Nossa central telefônica aceita tanto UDP quanto TCP.
  4. Só as chamadas externas caem, e *43 e as internas se mantêm — defeito entre a central telefônica e a operadora de telefonia. Envie o horário de várias chamadas interrompidas para o suporte.
  5. Elimine o NAT duplo — coloque o roteador do provedor em modo bridge ou conecte o telefone diretamente nele.

Queda após 15 ou 30 minutos#

Por que isso acontece#

Durante uma conversa longa, as partes de tempos em tempos confirmam que a conversa ainda está em andamento — são os timers de sessão. O intervalo é combinado no início da chamada; uma parte se compromete a "renovar" a conversa na metade do intervalo, a outra espera a renovação. Na nossa central telefônica os timers de sessão estão ativados com intervalo de 1800 segundos (30 minutos); eles são necessários para que uma conversa cuja conexão caiu em silêncio não fique pendurada por horas nem ocupe a linha.

Daí vêm dois padrões:

  • por volta de 15 minutos — na metade do intervalo a renovação foi enviada, mas não passou: a parte a rejeitou ou não recebeu resposta;
  • por volta de 29,5 minutos — a renovação não houve de todo, e a parte que a esperava desligou um pouco antes do fim do intervalo.

Por que a renovação não passa:

  1. O roteador fechou o caminho das mensagens de serviço. A voz durante a conversa flui continuamente, mas as mensagens de serviço ficam em silêncio. Se o keep-alive do telefone estiver desligado, o roteador após alguns minutos fecha a "porta" para as mensagens de serviço — e a renovação da central para o telefone já não chega.
  2. O telefone não entende o modo de renovação ou o rejeita — firmware antigo, "Session Timer" ativado com parâmetros fora do padrão.
  3. SIP ALG corrompe a mensagem de renovação.
  4. Timer da operadora de telefonia — se caem apenas as chamadas externas e sempre no mesmo minuto.

A central ativa os timers na conversa somente se o telefone também os suportar ⚠️ verify. Na maioria dos telefones de mesa o "Session Timer" vem desligado de fábrica (na Yealink e na Grandstream — conforme a documentação), e então não há timers na conversa de todo.

Para o administrador de rede: valores do lado da central
  • timers=yes — timers suportados; timers_sess_expires=1800 — intervalo de 1800 s; timers_min_se=90 — a central não aceita menos de 90 s (shared/sip/advanced-options.json, grupo protocol).
  • Conforme a RFC 4028, a renovação é enviada na metade do intervalo (900 s), e a parte que não a recebeu encerra a sessão com BYE min(32 s, intervalo / 3) antes do fim — cerca de 1768 s.
  • A central não derruba por silêncio (rtp_timeout=0), portanto uma "conversa sem áudio" por si só não cai.
  • Na central dedicada os mesmos valores ficam em "Configurações avançadas de SIP" ("Timers de sessão", "Renovação de sessão, segundos"). Não é preciso alterá-los sem exigência do provedor.

O que fazer#

  1. Ative o keep-alive no telefone — ele mantém o caminho das mensagens de serviço aberto também durante a conversa. Yealink: Account → Advanced → Keep Alive Type (Default ou Options) e Keep Alive Interval — 30 s (valor de fábrica).
  2. Desligue o SIP ALG no roteador.
  3. Se no telefone foi ativado o "Session Timer" — volte ao valor de fábrica (desl.) ou defina o intervalo de 1800 s: Yealink — Account → Advanced → Session Timer / Session Expires; Grandstream — Account → SIP Settings → Session Timer (Enable Session Timer, Session Expiration).
  4. Atualize o firmware do telefone — erros de renovação de conversa muitas vezes são corrigidos em versões novas.
  5. Caem apenas as chamadas externas, sempre no mesmo minuto — envie os horários das chamadas ao suporte: vamos conferir os timers com a operadora de telefonia.

As chamadas recebidas funcionam só nos primeiros minutos após ligar#

Por que isso acontece#

O telefone fica atrás do roteador, e a central só consegue alcançá-lo pela "porta" que o telefone abriu com sua última mensagem. O roteador mantém essas portas por pouco tempo — nos roteadores domésticos, de meio minuto a alguns minutos de silêncio — e depois as fecha. Enquanto o telefone envia algo com frequência (registro logo após ligar, keep-alive), a porta fica aberta. Ficou em silêncio — fechou, e a chamada recebida da central esbarra no roteador.

A unidade no painel administrativo pode continuar verde: o telefone renova o registro por conta própria, de dentro, e ele passa, mas entrar no telefone de fora já não é possível. Reiniciar "cura", porque reabre a porta — por um tempo.

A nossa central, do seu lado, verifica cada aparelho a cada 60 segundos com a pergunta "você está conectado?": esse pacote de ida também mantém a porta aberta — mas só se o roteador a fecha em mais de um minuto. Se o aparelho não respondeu, a central o considera indisponível, a unidade apaga, e em "Funcionamento" aparece uma falha.

O que fazer#

Após cada passo, verifique a chamada recebida após 10 minutos de inatividade (com o botão "Ligar para o aparelho" ou de um ramal vizinho); depois — só se não ajudou.

  1. Ative o keep-alive no telefone com intervalo de 20–30 segundos. Yealink: Account → Advanced → Keep Alive Type / Keep Alive Interval (de fábrica Default e 30 s); na Fanvil — Keep Alive Type nas configurações adicionais da linha.
  2. Desligue o SIP ALG no roteador — ele também costuma "esquecer" as portas.
  3. Reduza o prazo de registro no telefone (Expires / Register Expiration) para 60–120 segundos — o telefone vai abrir a porta por conta própria com mais frequência. Menos de 60 a nossa central não aceita (423 Interval Too Brief).
  4. Na central dedicada é possível verificar os aparelhos com mais frequência: "Configurações avançadas de SIP" → "Verificação de conexão, segundos" — 20–30 em vez de 60. Isso mantém a porta do lado da central, mas adiciona tráfego de serviço; o keep-alive do telefone é mais confiável.
  5. NAT duplo (roteador do provedor + o seu) — são duas portas, e elas fecham de modos diferentes: remova uma — "Rede, roteador e internet".

Queda ao alternar do Wi-Fi para a internet móvel#

Por que isso acontece#

O Wi-Fi do estabelecimento e a internet móvel são dois endereços diferentes. A conversa começou a partir de um deles, e a central telefônica, no início da conversa, memorizou de onde vem a voz: por questões de segurança, ela aceita o áudio apenas desse endereço. Quando o smartphone alterna para a rede móvel, a voz passa a chegar de um novo endereço — e, para a central, isso já é um fluxo estranho, enquanto as mensagens de serviço continuam indo para o endereço antigo, que não existe mais. Uma conversa iniciada em uma rede, ao alternar para outra, quase sempre cai. É uma limitação da própria tecnologia, não um defeito.

O outro lado da mesma questão: enquanto o smartphone alterna, o softphone perde o registro, e as chamadas recebidas nesses segundos não chegam. O Android, além disso, suspende os aplicativos em segundo plano — mais detalhes no guia, seção sobre telefones por software.

O que fazer#

  1. Durante a conversa, não troque de rede: encerre a ligação antes de sair da área de Wi-Fi.
  2. Desative no smartphone a alternância automática de um Wi-Fi ruim para a rede móvel (no iPhone — “Assistência Wi-Fi”, no Android — “alternar para rede móvel” nas configurações de Wi-Fi): hoje ela derruba a conversa na porta do café.
  3. Permita que o softphone funcione em segundo plano e remova a economia de bateria para ele — assim ele se registra de novo mais rápido após a troca de rede.
  4. Onde não se pode perder a ligação (balcão, recepção), use um telefone de mesa ou um fone DECT, e não um smartphone.

O que enviar ao suporte#

  • data e hora de várias ligações interrompidas com precisão de minuto, os números e o ramal;
  • em quanto tempo a ligação cai (pelo histórico — “Conversa”) e se é sempre igual;
  • se caem todas as ligações ou apenas as externas; se o *43 longo (45 segundos) se mantém;
  • modelo e firmware do telefone (a linha da etiqueta do aparelho), se keep-alive e Session Timer estão ativados nele;
  • modelo do roteador, se o SIP ALG está desativado, se há um segundo roteador do provedor;
  • na central dedicada — o texto do SIP trace da queda repetida.

Como falar conosco — “Suporte”.

Perguntas frequentes#

Por que a queda acontece exatamente no 32º segundo, e não no 30º nem no 40º?#

Porque esse número está embutido no próprio protocolo SIP: a confirmação do início da conversa é aguardada por 64 intervalos de meio segundo — 32 segundos. Se no seu caso dá “cerca de 30 segundos” e é sempre igual — é isso, mesmo que o cronômetro marcasse 31 ou 33: parte do tempo foi para os toques e o atendimento.

O SIP ALG está desativado, mas a queda no 30º segundo continua — o que mais?#

Verifique se o ALG está desativado em todos os roteadores do caminho (no roteador do provedor ele costuma ser próprio), deixe no telefone três codecs e tente o transporte TCP. Se caem apenas as ligações externas, e o *43 se mantém por 45 segundos, — o problema está no trecho até a operadora de telefonia, envie o horário das ligações.

A unidade está verde, mas as chamadas recebidas não chegam — isso também é “queda”?#

É o mesmo mecanismo da seção sobre as chamadas recebidas nos primeiros minutos: o registro é atualizado de dentro para fora, mas a porta para o telefone, do lado de fora, já está fechada. O teste é “Ligar para o aparelho” após 10 minutos de ociosidade; o tratamento é o keep-alive no telefone.

Dá para simplesmente desativar os timers de sessão na central?#

Dá (na central dedicada, “Configurações avançadas de SIP”), mas isso trata o sintoma, não a causa: a renovação não passa porque o caminho das mensagens de serviço está fechado ou corrompido, e esse mesmo caminho será necessário para transferir e reter chamadas. Além disso, sem os timers, conversas que caíram em silêncio ficarão penduradas por horas e ocuparão as linhas. Primeiro o keep-alive e o SIP ALG.

Seções relacionadas#

Fontes#

  • RFC 3261 — SIP: repetição do 200 OK até receber o ACK e encerramento da sessão após 64 × T1 (§13.3.1.4), T1 = 500 ms (§17.1.1.1), mudança para TCP para mensagens maiores que 1300 bytes (§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261
  • RFC 4028 — Session Timers: renovação na metade do intervalo, BYE em min(32 s, intervalo / 3) antes do vencimento — https://www.rfc-editor.org/rfc/rfc4028
  • Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval (padrão de fábrica, 30 s), Session Timer (padrão de fábrica — desativado; Session Expires 1800 s; renovação na metade do intervalo)
  • Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer (padrão de fábrica “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 limitação do tamanho do pacote, timeouts de NAT do roteador — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
  • Código da central: 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 (teste de eco *43, teto de verificação 300 s)
Was this article helpful?