SIP 404 Not Found: o que significa e como resolver
Resposta curta: SIP 404 Not Found significa que o servidor tem informação definitiva de que o usuário ou número não existe no domínio chamado. A causa mais comum em troncos é o formato do número: falta de DDD, prefixo errado ou E.164 onde a operadora espera outro formato. Compare o número enviado no INVITE com o formato aceito pela operadora.
| Código | 404 |
|---|---|
| Nome oficial | Not Found |
| Classe | 4xx: falha da requisição |
| Definido em | RFC 3261 |
| Causas Q.850 que costumam vir junto | 1 (Unallocated (unassigned) number), 2 (No route to specified transit network (national use)), 3 (No route to destination), 26 (Non-selected user clearing) |
Como o Monitor trata o SIP 404
A leitura depende do que deve atender o número, a pergunta que a 2N5 responde ao cadastrar cada circuito. Estas são as regras que o produto aplica hoje, geradas da mesma função que julga cada chamada de teste.
| O que deve atender o número | Leitura |
|---|---|
| Uma saudação ou mensagem gravada (a URA) | Fora do ar |
| Um tom de teste ou serviço de eco | Fora do ar |
| Outro: pode tocar ou ser atendido | Fora do ar |
O que o Monitor registra para uma URA: O número não existe ou foi discado errado, então a operadora não completou a chamada (SIP 404).
Uma chamada lida como Fora do ar não alerta ninguém sozinha: ela é repetida 3 vezes, a cada 2 minutos, e só 4 falhas seguidas abrem um incidente, com o código SIP e a causa Q.850 de cada chamada como evidência para a operadora. No ritmo padrão, cada circuito é testado a cada 15 minutos.
Se a operadora devolve o SIP 404 ao registro da conta de chamadas da 2N5, antes de qualquer chamada, o teste fica sem visibilidade: é um problema do lado da 2N5, não conta contra o circuito e não avisa o cliente.
O que significa o SIP 404 na prática?
Pela RFC 3261, o SIP 404 Not Found indica que o servidor tem informação definitiva de que o usuário não existe no domínio informado na Request-URI. O mesmo código é usado quando o domínio da Request-URI não corresponde a nenhum domínio atendido por quem recebeu a requisição.
Num tronco, o erro 404 SIP quase sempre se resume a “esse número não existe aqui”. Às vezes o número realmente não está alocado, e a rede costuma responder com a Q.850 cause 1. Com frequência, porém, o número existe e foi enviado no formato errado, ou chegou ao PABX de destino, que não tem rota para ele. Quando a chamada entra no seu próprio PABX e recebe 404, o DID não está configurado nas rotas de entrada. Se o número existia e foi desativado, o código mais preciso seria o SIP 410; se faltam dígitos, o SIP 484.
Causas comuns no Brasil
- Número enviado num formato que a operadora não aceita: sem DDD, com
0a mais, com código de prestadora (CSP) onde não deveria, ou E.164 (+55) onde ela espera só dígitos. - Celular discado sem o nono dígito, ou fixo discado com um dígito a mais.
- 0800 enviado incompleto ou com DDD na frente.
- Número de destino que não está alocado ou foi desativado.
- Número portado roteado para a operadora antiga (a RFC 3398 mapeia a cause 26 para 404 nesse caso).
- DID de entrada sem rota no Asterisk, Issabel, FreePBX ou 3CX: o PABX responde 404 porque não encontra o ramal no contexto.
Como diagnosticar
- Capture com
sngrep port 5060e veja a Request-URI do INVITE: é ali que está o número exatamente como saiu. - No Asterisk ou FreePBX, ative
pjsip set logger on(ousip set debug onno chan_sip). Em chamadas de entrada, o log mostra a extensão não encontrada no contexto. Confira comdialplan show <número>@<contexto>. - Revise as regras de saída (dial patterns) do FreePBX ou do 3CX: um prefixo removido ou adicionado a mais muda o número enviado.
- Teste o mesmo destino em formatos diferentes, por exemplo
11987654321e5511987654321, para descobrir o que a operadora aceita. - Procure o header
Reason: Q.850;cause=1(RFC 6432) ou outra causa na resposta: ele diferencia número não alocado de falta de rota (cause 3). - Ligue para o mesmo número a partir de outra linha. Se também não completa, o número de fato não existe.
O que mandar para a operadora
- Data e hora com fuso horário das tentativas.
- Número de origem (A) e número chamado (B), exatamente como estavam na Request-URI.
- Call-ID de pelo menos uma chamada.
- A linha completa da resposta e o header Reason com a causa Q.850, se houver.
- O formato de discagem que você está usando e quantas tentativas falharam.
- O pcap da captura, quando disponível.
Perguntas frequentes
Em que formato devo enviar o número para a operadora?
Depende da operadora e do contrato. Algumas aceitam DDD mais o número (10 ou 11 dígitos), outras pedem E.164 com ou sem o +55, e outras aceitam a discagem tradicional, com `0`, código da prestadora e DDD. O 0800 tem 11 dígitos, como 0800 123 4567. Peça o formato oficial por escrito e ajuste a regra de saída do PABX.
Qual a diferença entre 404, 410 e 484?
O 404 diz que o número não existe naquele destino. O 410 Gone diz que ele existia e não está mais em serviço, de forma permanente. O 484 Address Incomplete diz que faltam dígitos. Na prática, muitas operadoras usam 404 para os três casos, então vale conferir também a causa Q.850 que vem junto.