Códigos SIP

SIP 400 Bad Request: o que significa e como resolver

Resposta curta: SIP 400 Bad Request significa que o servidor recebeu a mensagem SIP mas não conseguiu interpretá-la, por erro de sintaxe. A causa mais comum é um header malformado, muitas vezes alterado por um SIP ALG no roteador. Leia a frase de motivo da resposta, que deveria indicar o problema, e compare o INVITE com o que a operadora espera.

SIP 400 na referência
Código400
Nome oficialBad Request
Classe4xx: falha da requisição
Definido emRFC 3261
Causas Q.850 que costumam vir junto41 (Temporary failure)

Como o Monitor trata o SIP 400

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úmeroLeitura
Uma saudação ou mensagem gravada (a URA)Fora do ar
Um tom de teste ou serviço de ecoFora do ar
Outro: pode tocar ou ser atendidoFora do ar

O que o Monitor registra para uma URA: A operadora recusou a chamada (SIP 400).

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 400 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 400 na prática?

Pela RFC 3261, o SIP 400 Bad Request indica que a requisição não pôde ser entendida por causa de sintaxe malformada. A própria RFC recomenda que a frase de motivo detalhe o problema, por exemplo “Missing Call-ID header field”. Na prática, muitos servidores respondem só “Bad Request”, e o diagnóstico depende de comparar a mensagem enviada com o que o servidor espera.

É uma falha final: a chamada não acontece, e repetir a mesma mensagem dá o mesmo resultado. Num tronco que funcionava, um 400 que surge de repente costuma vir de uma mudança no caminho, como um roteador novo, uma atualização do PABX ou uma regra nova no SBC da operadora. Ver o erro 400 SIP em todas as chamadas aponta para configuração; em só algumas, para números ou headers específicos.

Causas comuns no Brasil

  • SIP ALG ativo em roteador de provedor de internet, reescrevendo headers e o SDP de forma inválida.
  • Request-URI com caracteres que a operadora não aceita, como espaços, hífens ou um + onde ela espera só dígitos.
  • Nome de exibição (Caller ID) com acentos ou aspas mal codificados, gerado pelo cadastro do ramal no Asterisk, Issabel ou FreePBX.
  • Header obrigatório ausente ou duplicado depois de uma customização no PABX ou de uma regra de manipulação no SBC.
  • SDP inconsistente, por exemplo com IP vazio ou linhas fora da ordem esperada, depois de uma mudança de NAT.
  • Atualização de versão do 3CX, Intelbras ou Asterisk que mudou o formato de algum header enviado ao tronco.

Como diagnosticar

  1. Capture com sngrep port 5060 e leia a resposta inteira: a frase de motivo e o header Warning, se houver, costumam dizer o que está errado.
  2. No Asterisk, Issabel ou FreePBX, ative pjsip set logger on (ou sip set debug on no chan_sip) e compare, linha a linha, o INVITE recusado com um INVITE que funciona.
  3. Faça a mesma captura no PABX e na borda da rede. Se a mensagem muda entre os dois pontos, há um equipamento alterando o SIP. Desative o SIP ALG do roteador.
  4. Teste com um número de destino simples, só com dígitos, e com o nome de exibição sem acentos, para isolar o campo problemático.
  5. No 3CX, ative o “Verbose logging” e procure a resposta 400 no log de atividade, junto com o INVITE que a provocou.
  6. Se o 400 aparece no REGISTER, antes de qualquer chamada, revise usuário, domínio e porta configurados no tronco.

O que mandar para a operadora

  • Data e hora com fuso horário de algumas tentativas recusadas.
  • Número de origem (A) e número chamado (B), no formato enviado.
  • Call-ID e a mensagem completa que recebeu o 400 (INVITE ou REGISTER).
  • A linha completa da resposta, com frase de motivo e header Warning.
  • Quantas tentativas falharam e se todas as chamadas são afetadas ou só algumas.
  • O pcap da captura, quando disponível.

Perguntas frequentes

O SIP 400 é problema meu ou da operadora?

Quase sempre a mensagem que saiu do seu lado chegou fora do padrão, seja por configuração do PABX, seja por um equipamento no caminho que a alterou. Mas há casos em que o servidor da operadora é mais rígido que a RFC 3261 e recusa algo válido. Compare a mensagem capturada na saída do PABX com a que chega ao servidor.

Que causa Q.850 aparece quando o 400 passa para a rede de telefonia?

Pela RFC 3398, um gateway que converte SIP para ISUP traduz o 400 Bad Request na Q.850 cause 41 (Temporary failure). Por isso, do lado da telefonia convencional, um 400 pode aparecer como falha temporária, embora a origem seja uma mensagem SIP malformada. Nenhuma causa Q.850 é convertida em 400 no sentido inverso.

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.