Causas Q.850

Q.850 cause 16 (Normal call clearing): o que significa

Resposta curta: Q.850 cause 16 (Normal call clearing) é o encerramento normal: uma das pontas desligou depois de a chamada ser estabelecida. Não indica falha. Vira problema quando muitas chamadas terminam com 16 em poucos segundos, sem áudio ou logo após o atendimento da URA. Nesse caso, veja quem mandou o BYE e se houve RTP nos dois sentidos.

Causa 16 na referência
Causa16
Nome oficial (ITU-T Q.850)Normal call clearing
ClasseEvento normal (1 a 31)
Resposta SIP pela RFC 3398Nenhuma: normalmente encerra a chamada com BYE ou CANCEL

Como o Monitor trata a causa 16

Quando a operadora informa a causa Q.850 no cabeçalho Reason da resposta SIP, o Monitor a guarda junto com o código SIP em cada chamada de teste, e ela aparece na evidência do incidente, pronta para o chamado na operadora. Nas telas em português, a causa 16 aparece como: a chamada foi encerrada normalmente.

Como qualquer falha, uma chamada de teste lida como Fora do ar é repetida 3 vezes, a cada 2 minutos, e só 4 falhas seguidas abrem um incidente.

O que significa a causa 16 na prática?

A Q.850 cause 16, Normal call clearing, indica que a chamada foi encerrada porque um dos usuários envolvidos pediu, ou seja, alguém desligou. É a causa mais comum em qualquer registro de chamadas e não representa falha. Num link SS7 ela segue na mensagem REL do ISUP; num E1 ISDN, no DISCONNECT do Q.931. Em SIP não existe resposta de erro equivalente: a RFC 3398 (seção 7.2.4.1) diz que a causa 16 normalmente resulta num BYE ou num CANCEL, muitas vezes com Reason: Q.850;cause=16. No Asterisk ela aparece como hangup cause 16 em ${HANGUPCAUSE} e, no CDR, como hangupcause 16 quando o campo é gravado. Nos logs do 3CX e de outros PABX, a mesma causa costuma vir junto do lado que desligou. Em redes LTE, o “cause code 16” das mensagens EMM é outra coisa (MSC temporarily not reachable) e não deve ser confundido com esta causa.

Quando ela aparece

  • Em toda chamada atendida que termina quando alguém desliga: é o caso normal.
  • Em chamadas de 1 a 3 segundos após o 200 OK, quando a URA atende e derruba. A causa é normal, mas o atendimento não é.
  • Quando há áudio só num sentido e a pessoa desliga por não ouvir nada: o registro mostra 16 e o defeito real é de mídia (NAT, firewall, SIP ALG).
  • Quando um equipamento encerra por conta própria, por tempo máximo de chamada ou falta de RTP, e informa 16 no BYE, porque para a sinalização o encerramento foi ordenado.
  • Em discadores que desligam ao detectar caixa postal ou silêncio.

Como diagnosticar

  1. Separe as chamadas com causa 16 por duração. Um volume alto abaixo de 5 segundos merece atenção; o resto costuma ser normal.
  2. No sngrep, veja quem mandou o BYE: o seu lado ou a operadora. Isso diz quem desligou.
  3. Confira se houve RTP nos dois sentidos: no Asterisk, rtp set debug on mostra os pacotes; no sngrep, o fluxo exibe o RTP quando ele passa pela máquina.
  4. Abra o BYE e leia o cabeçalho Reason. Um cause=16 vindo da operadora logo após o atendimento indica que o destino desligou.
  5. Se as quedas têm tempo fixo (por exemplo, sempre perto de 32 segundos), procure ACK perdido ou session timer: o desligamento é automático, mesmo que chegue com causa 16.

O que mandar para a operadora

  • Em geral, nada: uma causa 16 isolada não é motivo de chamado.
  • Se houver padrão, uma lista de chamadas curtas com data, hora e fuso, números A e B e a duração de cada uma.
  • O Call-ID de cada exemplo e qual lado mandou o BYE, com o cabeçalho Reason.
  • Se faltou áudio, o pcap com SIP e RTP mostrando o sentido sem pacotes.
  • O horário em que o padrão começou e se ele se repete com o mesmo destino.

Perguntas frequentes

Hangup cause 16 no Asterisk é erro?

Não. No Asterisk, `${HANGUPCAUSE}` igual a 16 quer dizer que alguém desligou de forma ordenada, seja o seu usuário, seja o destino. É o valor mais comum em qualquer registro de chamadas. Só merece investigação quando aparece junto com duração muito curta, falta de áudio ou reclamações de queda, porque aí o desligamento normal pode ser consequência de outro problema.

Por que a cause 16 não tem código SIP de resposta?

Porque ela não é uma recusa. Pela RFC 3398, a causa 16 normalmente resulta num BYE, quando a chamada já foi atendida, ou num CANCEL, quando ainda estava tocando, sem código de status. O valor costuma vir dentro dessas mensagens no cabeçalho `Reason: Q.850;cause=16`, definido na RFC 3326.

Uma chamada de teste real ajuda a ver quando a cause 16 esconde um problema?

Ajuda, porque é uma chamada de verdade: além da resposta SIP final, ela verifica o áudio nas duas direções e mede a qualidade de voz (MOS-LQO). Assim, uma chamada que termina com causa 16 mas sem áudio não passa despercebida. Falhas são repetidas antes de virar alerta, e o alerta segue por e-mail e SMS.

Saiba disso antes dos seus clientes

O Monitor liga para cada circuito de voz o dia todo e entrega cada falha com o código SIP e a causa Q.850 como prova.