Q.850 cause 31 (Normal, unspecified): o que significa
Resposta curta: Q.850 cause 31 (Normal, unspecified) é uma causa genérica: informa um evento normal quando nenhuma outra causa da classe normal se aplica. Por si só não indica falha. O problema é que muitos gateways a usam como valor padrão e escondem o motivo real. Procure a resposta SIP original e o Reason no trecho anterior.
| Causa | 31 |
|---|---|
| Nome oficial (ITU-T Q.850) | Normal, unspecified |
| Classe | Evento normal (1 a 31) |
| Resposta SIP pela RFC 3398 | SIP 480 Temporarily Unavailable |
Como o Monitor trata a causa 31
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 31 aparece como: uma falha de rede não especificada
.
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 31 na prática?
A Q.850 cause 31, Normal, unspecified, serve para relatar um evento normal apenas quando nenhuma outra causa da classe normal se aplica. Em outras palavras, é a causa de quem não sabe ou não diz o motivo. Pela RFC 3398 (seção 7.2.4.1), a causa 31 vira SIP 480 Temporarily Unavailable. No sentido inverso ela é ainda mais comum: a RFC define 31 como valor padrão para qualquer resposta SIP que não esteja na tabela, e também para 488 e 606 quando o Warning não trata de capacidade de portadora. Por isso uma causa 31 no seu PABX pode vir de dezenas de respostas SIP diferentes. Ela aparece na REL do ISUP, num Reason: Q.850;cause=31 e, no Asterisk, em ${HANGUPCAUSE}. Em LTE, o “cause code 31” das mensagens ESM (Request rejected, unspecified) é de outra tabela.
Quando ela aparece
- Gateway SIP-TDM que recebe uma resposta SIP sem correspondência na RFC 3398 e aplica o padrão 31.
- Falha de negociação de mídia (488 ou 606) sem Warning sobre portadora.
- Operadoras que usam 31 como resposta genérica para qualquer recusa.
- Chamadas para celular desligado, em redes que não detalham o motivo.
- Equipamentos antigos que não implementam causas mais específicas.
Como diagnosticar
- Não pare na causa 31: encontre a resposta SIP original com
pjsip set logger on(ousip set debug on) ou nosngrep. - Se a 31 veio da operadora num Reason, peça a ela a causa ou a resposta original da rede de destino.
- Agrupe as chamadas com causa 31 por destino e horário. Um destino só sugere o lado de lá; muitos destinos sugerem a rota.
- Veja se havia 488 ou 606 com Warning: aí o problema é de codec, não de rede.
- No Asterisk 11 ou mais novo, a função
HANGUPCAUSEcom o tipotechguarda a resposta SIP de cada canal discado; grave-a no log ao lado da causa. - No 3CX, ative o Verbose logging para que o Activity Log mostre a resposta SIP completa.
O que mandar para a operadora
- Data, hora e fuso das tentativas.
- Números A e B.
- Call-ID, a resposta SIP recebida e o Reason com cause=31.
- O pedido explícito da causa original no trecho dela, já que a 31 não identifica o motivo.
- O pcap, se tiver, e a lista de destinos afetados.
Perguntas frequentes
A cause 31 é erro?
Por definição, não: ela pertence à classe normal e diz apenas que não há causa mais específica. Na prática, aparece muito em falhas reais, porque gateways a usam como valor padrão quando não sabem traduzir uma resposta SIP. Se as chamadas com causa 31 não completam, trate como falha e procure a resposta original.
Qual a diferença entre cause 16 e cause 31?
A cause 16 (Normal call clearing) diz que alguém desligou uma chamada estabelecida. A cause 31 (Normal, unspecified) diz que houve um evento normal sem causa específica, e costuma aparecer em chamadas que nem chegaram a completar. A 16 é o fim esperado de uma conversa; a 31 pede investigação quando se repete.