Ferramenta gratuita

Códigos de resposta SIP.

Os 75 códigos do registro da IANA, com o que cada um quer dizer na prática e o que olhar no trace quando ele aparece.

1xx: Provisórias

A requisição foi recebida e está em andamento. Não encerram a transação.

100 Trying

#

O próximo salto recebeu a requisição e está trabalhando nela. Serve só para parar as retransmissões do INVITE; não diz nada sobre o destino final.

Causas, como depurar e proxies

Causas prováveis

  • Resposta normal de qualquer proxy ou UA a um INVITE.
  • Pode não aparecer se o INVITE for respondido muito rápido.

Como depurar

  • Se o INVITE é retransmitido várias vezes e nunca chega 100, o pacote não está chegando (firewall, NAT, porta ou transporte errado) ou a resposta não volta.
  • Confira o Via: a resposta volta pelo endereço e porta do topo do Via (e pelo received/rport, atrás de NAT).
  • No Wireshark, filtre por sip.Status-Code == 100 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Salto a salto: o proxy NÃO repassa o 100 recebido; ele gera o próprio 100 para quem enviou o INVITE.

180 Ringing

#

O destino foi encontrado e está alertando o usuário (tocando). Quem liga costuma ouvir o ringback gerado localmente.

Causas, como depurar e proxies

Causas prováveis

  • Telefone tocando.
  • Alguns sistemas mandam 180 com SDP, o que cria mídia antecipada (early media).

Como depurar

  • Sem áudio de chamada? Com 180 sem SDP, o ringback é gerado pelo telefone de quem liga; com SDP (ou 183), a mídia vem da rede e precisa de RTP fluindo.
  • No Asterisk, Ringing() manda 180 e Progress() manda 183. Veja com pjsip set logger on.
  • Se aparecer To com tag diferente em cada 180, houve forking: são diálogos iniciais (early dialogs) distintos.
  • No Wireshark, filtre por sip.Status-Code == 180 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Provisória. O proxy repassa para trás (upstream) assim que recebe, sem esperar a resposta final.

181 Call Is Being Forwarded

#

A chamada está sendo encaminhada para outro destino (siga-me, desvio).

Causas, como depurar e proxies

Causas prováveis

  • Desvio de chamada configurado no destino ou no servidor.
  • Pouco usado; muitos sistemas desviam sem avisar.

Como depurar

  • Procure cabeçalhos History-Info ou Diversion, que mostram por onde a chamada passou.
  • No Wireshark, filtre por sip.Status-Code == 181 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Provisória. O proxy repassa para trás (upstream) assim que recebe, sem esperar a resposta final.

182 Queued

#

O destino está ocupado no momento, mas a chamada entrou numa fila em vez de ser rejeitada.

Causas, como depurar e proxies

Causas prováveis

  • Fila de atendimento ou URA que segura a chamada antes do atendimento.

Como depurar

  • A frase pode trazer a posição na fila (por exemplo, "2 calls queued").
  • No Wireshark, filtre por sip.Status-Code == 182 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Provisória. O proxy repassa para trás (upstream) assim que recebe, sem esperar a resposta final.

183 Session Progress

#

Informação de andamento da chamada. Na prática quase sempre traz SDP e abre mídia antecipada (early media): mensagens da operadora, ringback da rede, anúncios.

Causas, como depurar e proxies

Causas prováveis

  • Operadora tocando ringback ou anúncio ("o número chamado não existe") antes de responder.
  • Uso de precondições (RFC 3312) ou de PRACK (RFC 3262) para confirmar o 183.

Como depurar

  • Silêncio antes do atendimento costuma ser 183 com SDP e RTP bloqueado (NAT ou firewall). Verifique o c= e o m= do SDP e se o RTP chega.
  • Se o 183 traz Require: 100rel, quem liga precisa responder com PRACK; sem isso a chamada pode cair.
  • No FreeSWITCH, pre_answer e ring_ready controlam o envio; no Asterisk, Progress().
  • No Wireshark, filtre por sip.Status-Code == 183 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Provisória. O proxy repassa para trás (upstream) assim que recebe, sem esperar a resposta final.

199 Early Dialog Terminated

#

Avisa que um diálogo inicial (early dialog) foi encerrado antes da resposta final, por exemplo uma das ramificações de um forking que falhou.

Causas, como depurar e proxies

Causas prováveis

  • Proxy com forking avisando que um dos destinos recusou.
  • Só é enviado se quem ligou declarou Supported: 199.

Como depurar

  • O To-tag do 199 é o do diálogo que acabou; libere a mídia associada a ele.
  • No Wireshark, filtre por sip.Status-Code == 199 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Provisória. Pode ser gerada pelo próprio proxy que faz forking, ao receber a resposta final de erro de uma ramificação.

2xx: Sucesso

A requisição foi aceita.

200 OK

#

Sucesso. Num INVITE, a chamada foi atendida e o SDP da resposta fecha a negociação de mídia. Num REGISTER, o registro foi aceito.

Causas, como depurar e proxies

Causas prováveis

  • Atendimento, registro aceito, BYE ou OPTIONS respondidos com sucesso.

Como depurar

  • 200 ao INVITE exige ACK. Se o 200 é retransmitido e a chamada cai em cerca de 32 s, o ACK não está chegando (Contact ou Record-Route com IP privado, NAT).
  • No REGISTER, confira os Contact e o expires que voltam: é o que o registrador guardou.
  • Áudio mudo após 200: compare o c= e o m= do SDP com o IP e a porta de onde o RTP realmente vem.
  • No Wireshark, filtre por sip.Status-Code == 200 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy repassa todo 2xx a INVITE imediatamente e cancela as outras ramificações. 2xx a INVITE não é retransmitido pelo proxy: o UAS retransmite até receber o ACK.

202 Accepted

#
  • 2xx Sucesso
  • Resposta final
  • RFC 6665
  • Obsoleto

A requisição foi aceita para processamento, mas ainda não concluída. Era a resposta a SUBSCRIBE (RFC 3265) e a REFER (RFC 3515). O RFC 6665 a marcou como obsoleta: o servidor deve usar 200 e o cliente deve tratar 202 como 200.

Causas, como depurar e proxies

Causas prováveis

  • Transferência de chamada (REFER) em equipamentos que seguem o RFC 3515.
  • Implementações antigas de SUBSCRIBE.

Como depurar

  • Depois de 202 a REFER, acompanhe os NOTIFY com corpo message/sipfrag: eles dizem como foi a chamada para o destino da transferência.
  • No Wireshark, filtre por sip.Status-Code == 202 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. Tratado como qualquer 2xx.

204 No Notification

#

A assinatura (SUBSCRIBE) foi aceita ou renovada, mas o servidor não vai mandar NOTIFY porque o estado não mudou desde a versão que o cliente já conhece.

Causas, como depurar e proxies

Causas prováveis

  • Notificação condicional: o SUBSCRIBE trouxe Suppress-If-Match com a etag do estado atual.

Como depurar

  • Compare o valor de Suppress-If-Match do SUBSCRIBE com o SIP-ETag dos NOTIFY anteriores.
  • No Wireshark, filtre por sip.Status-Code == 204 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. Tratado como qualquer 2xx.

3xx: Redirecionamento

É preciso tentar outro destino, indicado no Contact.

300 Multiple Choices

#
  • 3xx Redirecionamento
  • Resposta final
  • RFC 3261

O destino pode ser encontrado em mais de um endereço, listados no Contact. Quem liga escolhe ou tenta todos.

Causas, como depurar e proxies

Causas prováveis

  • Servidor de redirecionamento com vários contatos para o mesmo usuário.

Como depurar

  • Leia os Contact e o parâmetro q (prioridade) de cada um.
  • No Wireshark, filtre por sip.Status-Code == 300 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

O proxy pode seguir o redirecionamento sozinho (recursão, tentando os Contact recebidos) ou repassá-lo ao chamador. Se repassar, o 3xx entra na escolha da melhor resposta entre as ramificações.

301 Moved Permanently

#
  • 3xx Redirecionamento
  • Resposta final
  • RFC 3261

O usuário não está mais no endereço pedido; o novo endereço vem no Contact e pode ser guardado para as próximas vezes.

Causas, como depurar e proxies

Causas prováveis

  • Mudança definitiva de número ou de domínio.

Como depurar

  • Confira o Contact retornado e atualize a agenda ou a rota.
  • No Wireshark, filtre por sip.Status-Code == 301 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

O proxy pode seguir o redirecionamento sozinho (recursão, tentando os Contact recebidos) ou repassá-lo ao chamador. Se repassar, o 3xx entra na escolha da melhor resposta entre as ramificações.

302 Moved Temporarily

#
  • 3xx Redirecionamento
  • Resposta final
  • RFC 3261

O usuário está temporariamente em outro endereço, indicado no Contact. É a forma clássica de desvio de chamada feito por servidor de redirecionamento.

Causas, como depurar e proxies

Causas prováveis

  • Siga-me ou desvio feito com redirecionamento em vez de proxy.
  • Servidores de roteamento e balanceadores que respondem com o destino em vez de encaminhar a chamada.

Como depurar

  • Se a chamada não segue o 302, o cliente pode não estar configurado para isso. No Asterisk com PJSIP, veja a opção redirect_method do endpoint.
  • Cheque se o Contact aponta para um destino alcançável pelo chamador.
  • No Wireshark, filtre por sip.Status-Code == 302 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

O proxy pode seguir o redirecionamento sozinho (recursão, tentando os Contact recebidos) ou repassá-lo ao chamador. Se repassar, o 3xx entra na escolha da melhor resposta entre as ramificações.

305 Use Proxy

#
  • 3xx Redirecionamento
  • Resposta final
  • RFC 3261

O destino só pode ser acessado através do proxy indicado no Contact.

Causas, como depurar e proxies

Causas prováveis

  • Política de rede exigindo um proxy de saída específico.

Como depurar

  • Por segurança, o RFC 3261 pede que o 305 seja aceito só de fontes autenticadas; muitos UAs o ignoram.
  • No Wireshark, filtre por sip.Status-Code == 305 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

O proxy pode seguir o redirecionamento sozinho (recursão, tentando os Contact recebidos) ou repassá-lo ao chamador. Se repassar, o 3xx entra na escolha da melhor resposta entre as ramificações.

380 Alternative Service

#
  • 3xx Redirecionamento
  • Resposta final
  • RFC 3261

A chamada não teve sucesso, mas existem serviços alternativos possíveis, descritos no corpo da resposta.

Causas, como depurar e proxies

Causas prováveis

  • Raro em PABX e em provedores; aparece em serviços que oferecem outra forma de contato no lugar da chamada.

Como depurar

  • Abra o corpo da resposta: ele explica a alternativa.
  • No Wireshark, filtre por sip.Status-Code == 380 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

O proxy pode seguir o redirecionamento sozinho (recursão, tentando os Contact recebidos) ou repassá-lo ao chamador. Se repassar, o 3xx entra na escolha da melhor resposta entre as ramificações.

4xx: Erro do cliente

A requisição tem problema ou não pode ser atendida neste servidor. Corrigida, pode dar certo.

400 Bad Request

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

A requisição está mal formada: erro de sintaxe, cabeçalho obrigatório faltando ou valor inválido.

Causas, como depurar e proxies

Causas prováveis

  • Cabeçalho obrigatório ausente (Via, From, To, Call-ID, CSeq, Max-Forwards).
  • SDP ou cabeçalho alterado por um ALG de roteador (SIP ALG) e corrompido.
  • Content-Length que não bate com o corpo, comum em mensagens fragmentadas por UDP.

Como depurar

  • A frase da resposta ou o cabeçalho Warning costumam dizer qual campo está errado (por exemplo, "Missing CSeq").
  • Compare a mensagem que saiu de um lado com a que chegou do outro: se mudou no caminho, desligue o SIP ALG do roteador.
  • No Kamailio, sanity_check() do módulo sanity mostra o motivo no log.
  • No Wireshark, filtre por sip.Status-Code == 400 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

41 Temporary failure

401 Unauthorized

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O destino final (registrador ou UA) exige autenticação. A resposta traz WWW-Authenticate com o desafio (realm e nonce); o cliente deve repetir a requisição com Authorization.

Causas, como depurar e proxies

Causas prováveis

  • Normal no primeiro REGISTER ou INVITE: o 401 é o desafio, e a requisição seguinte deve passar.
  • Se o 401 se repete depois do Authorization: usuário, senha ou realm errados.
  • Nonce expirado ou relógio errado, gerando novo desafio com stale=true.

Como depurar

  • Ver um 401 sozinho não é erro. Erro é a segunda tentativa, com Authorization, também receber 401 ou 403.
  • Confira o username e o realm do Authorization contra o que o servidor espera (auth user pode ser diferente do ramal).
  • No Asterisk, pjsip set logger on e a mensagem "Failed to authenticate"; no FreeSWITCH, sofia global siptrace on.
  • No Wireshark, filtre por sip.Status-Code == 401 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. Num forking, o proxy junta os desafios WWW-Authenticate de todas as ramificações numa única resposta.

Causa Q.850 em gateways (RFC 3398)

21 Call rejected

402 Payment Required

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

Reservado para uso futuro pelo RFC 3261. Alguns provedores usam para indicar falta de crédito.

Causas, como depurar e proxies

Causas prováveis

  • Conta pré-paga sem saldo, em provedores que adotam o código.

Como depurar

  • Verifique saldo ou bloqueio na conta do provedor; a frase costuma explicar.
  • No Wireshark, filtre por sip.Status-Code == 402 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

21 Call rejected

403 Forbidden

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O servidor entendeu a requisição e se recusa a atendê-la. Autenticar de novo não resolve.

Causas, como depurar e proxies

Causas prováveis

  • Trunk: IP de origem não liberado no provedor, ou número de origem (From/P-Asserted-Identity) não pertence à conta.
  • Destino bloqueado (internacional, 0900) ou conta suspensa.
  • Credencial certa mas sem permissão, ou bloqueio por ACL e fail2ban.

Como depurar

  • Leia a frase e o Warning: muitos provedores dizem o motivo ("Invalid caller ID", "IP not allowed").
  • Compare From, P-Asserted-Identity e o IP de origem com o que o provedor cadastrou.
  • No Asterisk, confira permit/deny e identify do endpoint; no Kamailio, os módulos permissions e pike.
  • No Wireshark, filtre por sip.Status-Code == 403 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

21 Call rejected

404 Not Found

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O usuário ou número pedido não existe no domínio do Request-URI.

Causas, como depurar e proxies

Causas prováveis

  • Ramal não registrado ou inexistente.
  • Trunk: formato do número errado (falta de DDD, 0, +55) ou rota inexistente no provedor.
  • Contexto ou dialplan errado no PABX que recebe a chamada.

Como depurar

  • Olhe o Request-URI do INVITE: é ele que o servidor procura, não o To.
  • No Asterisk, o log mostra "extension not found in context"; confira o context do endpoint. No FreeSWITCH, o dialplan XML; no Kamailio, lookup("location").
  • No Wireshark, filtre por sip.Status-Code == 404 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

1 Unallocated number

405 Method Not Allowed

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O método é conhecido, mas não é permitido para este endereço. A resposta deve trazer o cabeçalho Allow com os métodos aceitos.

Causas, como depurar e proxies

Causas prováveis

  • Enviar SUBSCRIBE, MESSAGE ou REFER a um servidor que não aceita esses métodos.
  • REGISTER enviado a um proxy que não é registrador.

Como depurar

  • Leia o Allow da resposta.
  • No Wireshark, filtre por sip.Status-Code == 405 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

63 Service or option unavailable

406 Not Acceptable

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O recurso só consegue responder com conteúdo que não está na lista Accept da requisição.

Causas, como depurar e proxies

Causas prováveis

  • Cabeçalho Accept restrito demais, por exemplo em SUBSCRIBE de presença.

Como depurar

  • Compare o Accept da requisição com os formatos que o servidor oferece.
  • No Wireshark, filtre por sip.Status-Code == 406 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

79 Service or option not implemented

407 Proxy Authentication Required

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

Igual ao 401, mas quem exige autenticação é um proxy no caminho. A resposta traz Proxy-Authenticate e o cliente repete com Proxy-Authorization.

Causas, como depurar e proxies

Causas prováveis

  • Normal no primeiro INVITE para provedores e PABX que autenticam chamadas.
  • Repetido depois da resposta: senha, usuário ou realm errados.

Como depurar

  • Como no 401, só é erro se a segunda tentativa (com Proxy-Authorization) também falhar.
  • O ACK do 407 é obrigatório e vai na mesma transação; o INVITE seguinte tem o mesmo Call-ID e CSeq maior.
  • No Kamailio, proxy_challenge() (módulo auth) e proxy_authorize() (módulo auth_db).
  • No Wireshark, filtre por sip.Status-Code == 407 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. Normalmente gerado pelo próprio proxy. Num forking, o proxy junta os Proxy-Authenticate de todas as ramificações.

Causa Q.850 em gateways (RFC 3398)

21 Call rejected

408 Request Timeout

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

Não houve resposta final a tempo. Pode vir do servidor (o destino não respondeu) ou ser gerada localmente pela pilha SIP, sem nada chegar pela rede, quando o temporizador da transação (Timer B ou F, 32 s com T1 padrão) estoura.

Causas, como depurar e proxies

Causas prováveis

  • Destino desligado, fora de alcance ou com registro velho no registrador.
  • Firewall ou NAT descartando os pacotes; resposta voltando para porta errada.
  • Proxy com Timer C estourado numa ramificação sem resposta.

Como depurar

  • Procure no pcap se o 408 veio pela rede. Se não veio, foi a sua própria pilha que desistiu: o problema é que nada respondeu.
  • Siga as retransmissões do INVITE (intervalos de 0,5 s, 1 s, 2 s...). Se só um lado aparece no trace, o pacote se perde no caminho.
  • Em registros por UDP atrás de NAT, use keep-alive (qualify no Asterisk, NAT ping no Kamailio) para manter o mapeamento aberto.
  • No Wireshark, filtre por sip.Status-Code == 408 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy gera 408 para a ramificação quando o Timer C (mais de 3 minutos) estoura sem resposta final; se só houve provisória, ele manda CANCEL.

Causa Q.850 em gateways (RFC 3398)

102 Recovery on timer expiry

410 Gone

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O recurso existia, mas não está mais disponível, e não há endereço novo conhecido.

Causas, como depurar e proxies

Causas prováveis

  • Número desativado ou portado sem redirecionamento.

Como depurar

  • Use 404 quando não se sabe se o número existiu; 410 diz que existiu e foi retirado.
  • No Wireshark, filtre por sip.Status-Code == 410 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

22 Number changed

412 Conditional Request Failed

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3903

Um PUBLISH condicional falhou: a etag enviada em SIP-If-Match não corresponde a nenhum estado publicado (expirou ou é desconhecida).

Causas, como depurar e proxies

Causas prováveis

  • Refresh de PUBLISH depois de a publicação já ter expirado no servidor de presença.

Como depurar

  • Compare o SIP-If-Match com o SIP-ETag da última resposta 200 ao PUBLISH. A correção é publicar de novo sem SIP-If-Match.
  • No Wireshark, filtre por sip.Status-Code == 412 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

413 Request Entity Too Large

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O corpo da requisição é maior do que o servidor aceita.

Causas, como depurar e proxies

Causas prováveis

  • SDP enorme com muitos codecs e candidatos ICE.
  • Corpos multipart grandes (SIP-I, ISUP encapsulado).

Como depurar

  • Veja se há Retry-After: indica condição temporária.
  • Reduza a lista de codecs oferecidos.
  • No Wireshark, filtre por sip.Status-Code == 413 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

414 Request-URI Too Long

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O Request-URI é maior do que o servidor consegue interpretar.

Causas, como depurar e proxies

Causas prováveis

  • Parâmetros demais adicionados ao URI por algum elemento do caminho.

Como depurar

  • Copie o Request-URI do INVITE e veja o que está sendo acrescentado a cada salto.
  • No Wireshark, filtre por sip.Status-Code == 414 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

415 Unsupported Media Type

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O tipo do corpo (Content-Type) ou a codificação (Content-Encoding) não é suportado. A resposta deve listar o que é aceito em Accept, Accept-Encoding ou Accept-Language.

Causas, como depurar e proxies

Causas prováveis

  • Corpo multipart/mixed ou application/isup para quem só entende application/sdp.
  • MESSAGE com tipo de conteúdo não suportado.

Como depurar

  • Leia o Accept da resposta e compare com o Content-Type enviado.
  • No Wireshark, filtre por sip.Status-Code == 415 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

79 Service or option not implemented

416 Unsupported URI Scheme

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O esquema do Request-URI (sips:, tel:, outro) não é suportado pelo servidor.

Causas, como depurar e proxies

Causas prováveis

  • Mandar sips: ou tel: para um servidor que só aceita sip:.

Como depurar

  • Confira o início do Request-URI e a configuração de transporte e TLS do destino.
  • No Wireshark, filtre por sip.Status-Code == 416 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

417 Unknown Resource-Priority

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 4412

A requisição exige tratamento de prioridade (Require: resource-priority), mas o servidor não entende o namespace ou o valor do cabeçalho Resource-Priority.

Causas, como depurar e proxies

Causas prováveis

  • Chamadas de prioridade (governo, emergência) passando por equipamento sem suporte ao namespace usado.

Como depurar

  • A resposta pode trazer Accept-Resource-Priority com os valores aceitos.
  • No Wireshark, filtre por sip.Status-Code == 417 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

420 Bad Extension

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O cliente exigiu uma extensão (em Require ou Proxy-Require) que o servidor não suporta. A resposta lista as não suportadas no cabeçalho Unsupported.

Causas, como depurar e proxies

Causas prováveis

  • Require: 100rel, timer ou outra extensão enviada a quem não a implementa.

Como depurar

  • Leia o Unsupported da resposta. Em vez de exigir (Require), anuncie a extensão em Supported.
  • No Asterisk, opções como 100rel e timers do endpoint controlam isso.
  • No Wireshark, filtre por sip.Status-Code == 420 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

421 Extension Required

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O servidor só atende se o cliente usar uma extensão, listada no Require da resposta.

Causas, como depurar e proxies

Causas prováveis

  • Servidor que exige 100rel (PRACK) ou timer (sessão com refresh) e o cliente não declarou suporte.

Como depurar

  • Habilite no cliente a extensão pedida no Require e declare-a em Supported.
  • No Wireshark, filtre por sip.Status-Code == 421 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

422 Session Interval Too Small

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 4028

O intervalo de sessão (Session-Expires) pedido é menor que o mínimo do servidor. A resposta traz Min-SE com o valor mínimo.

Causas, como depurar e proxies

Causas prováveis

  • Session-Expires configurado baixo demais (abaixo de 90 s, o mínimo do RFC 4028, ou do valor do provedor).

Como depurar

  • Leia o Min-SE da resposta e reenvie com Session-Expires igual ou maior.
  • No Asterisk, timers_min_se e timers_sess_expires do endpoint.
  • No Wireshark, filtre por sip.Status-Code == 422 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

423 Interval Too Brief

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O tempo de expiração pedido (no REGISTER ou SUBSCRIBE) é curto demais. A resposta traz Min-Expires.

Causas, como depurar e proxies

Causas prováveis

  • Telefone configurado para registrar a cada poucos segundos para manter o NAT aberto.

Como depurar

  • Leia o Min-Expires e ajuste o expires do cliente. Para NAT, prefira keep-alive a registros curtos.
  • No Asterisk, minimum_expiration do AOR.
  • No Wireshark, filtre por sip.Status-Code == 423 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

424 Bad Location Information

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 6442

A informação de localização enviada (cabeçalho Geolocation ou corpo PIDF-LO) está mal formada ou não satisfaz o servidor.

Causas, como depurar e proxies

Causas prováveis

  • Chamadas de emergência com localização inválida ou ilegível.

Como depurar

  • O cabeçalho Geolocation-Error da resposta traz o código e o motivo.
  • No Wireshark, filtre por sip.Status-Code == 424 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

425 Bad Alert Message

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 8876

Rejeita um alerta de chamada de emergência não interativa (mensagem CAP) tão mal formado que não é possível decidir que resposta dar a ele.

Causas, como depurar e proxies

Causas prováveis

  • Sensores ou sistemas automáticos enviando alerta CAP inválido a um centro de emergência.

Como depurar

  • O cabeçalho AlertMsg-Error da resposta detalha o problema.
  • No Wireshark, filtre por sip.Status-Code == 425 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

428 Use Identity Header

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 8224

O servidor exige o cabeçalho Identity (assinatura da identidade de quem liga, base do STIR/SHAKEN) e ele não veio ou não está num formato suportado.

Causas, como depurar e proxies

Causas prováveis

  • Rede que só aceita chamadas assinadas e o originador não assina.

Como depurar

  • Confira se o serviço de autenticação (que assina) está ativo e se o Identity sai na chamada.
  • No Wireshark, filtre por sip.Status-Code == 428 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

429 Provide Referrer Identity

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3892

O destino de uma REFER (transferência) exige a identidade de quem transferiu num Referred-By válido e assinado, e ele não veio.

Causas, como depurar e proxies

Causas prováveis

  • Transferência entre domínios com política de segurança mais rígida.

Como depurar

  • Veja o Referred-By da REFER e do INVITE gerado.
  • No Wireshark, filtre por sip.Status-Code == 429 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

430 Flow Failed

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 5626

No mecanismo SIP Outbound, o proxy de borda não consegue mais usar a conexão (flow) com o UA. A resposta vai para o proxy ou registrador anterior, que pode tentar outro flow.

Causas, como depurar e proxies

Causas prováveis

  • Conexão TCP ou TLS com o telefone caiu e o UA ainda não se registrou de novo.

Como depurar

  • Procure o parâmetro reg-id e o +sip.instance no REGISTER e o ob no Contact.
  • No Wireshark, filtre por sip.Status-Code == 430 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. Não deve chegar ao UA: é tratado pelo proxy que recebe, tentando outro flow do mesmo usuário.

433 Anonymity Disallowed

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 5079

O destino recusa chamadas anônimas (sem identificação de quem liga).

Causas, como depurar e proxies

Causas prováveis

  • Chamador com Privacy: id ou From anonymous para quem bloqueia chamadas anônimas.

Como depurar

  • Confira From, P-Asserted-Identity e o cabeçalho Privacy enviados.
  • No Wireshark, filtre por sip.Status-Code == 433 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

436 Bad Identity Info

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 8224

O serviço de verificação não conseguiu obter a credencial (certificado) indicada no parâmetro info do cabeçalho Identity.

Causas, como depurar e proxies

Causas prováveis

  • URL do certificado inacessível, fora do ar ou com erro de DNS.

Como depurar

  • Copie a URL do parâmetro info e teste o acesso a partir do verificador.
  • No Wireshark, filtre por sip.Status-Code == 436 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

437 Unsupported Credential

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 8224

O verificador obteve a credencial do Identity, mas não a aceita (autoridade certificadora não confiável, algoritmo não suportado). Antes se chamava "Unsupported Certificate".

Causas, como depurar e proxies

Causas prováveis

  • Certificado emitido por CA que o verificador não confia.

Como depurar

  • Confira a cadeia do certificado e o algoritmo da assinatura do PASSporT.
  • No Wireshark, filtre por sip.Status-Code == 437 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

438 Invalid Identity Header

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 8224

Nenhum cabeçalho Identity da requisição tem uma assinatura válida.

Causas, como depurar e proxies

Causas prováveis

  • Assinatura quebrada porque algum elemento do caminho alterou From, To ou Date.
  • Tentativa de falsificar o número de origem.

Como depurar

  • Compare os campos assinados (origem, destino, data) com os que chegaram. Um SBC reescrevendo o número quebra a assinatura.
  • No Wireshark, filtre por sip.Status-Code == 438 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

439 First Hop Lacks Outbound Support

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 5626

O registrador suporta SIP Outbound, mas o primeiro proxy por onde o UA está se registrando não suporta.

Causas, como depurar e proxies

Causas prováveis

  • UA com outbound ativado (reg-id e Supported: outbound) atrás de um proxy de borda sem suporte.

Como depurar

  • O UA pode registrar de novo sem outbound ou por outro proxy de saída.
  • No Wireshark, filtre por sip.Status-Code == 439 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

440 Max-Breadth Exceeded

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 5393

O proxy não pode fazer forking porque o limite de ramificações paralelas (cabeçalho Max-Breadth) acabou.

Causas, como depurar e proxies

Causas prováveis

  • Forking em cascata entre vários proxies; proteção contra amplificação.

Como depurar

  • Siga o valor de Max-Breadth a cada salto e revise as regras de forking.
  • No Wireshark, filtre por sip.Status-Code == 440 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

469 Bad Info Package

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 6086

Um INFO chegou com um Info Package que o destino não aceita na sessão. A resposta traz Recv-Info com os pacotes aceitos.

Causas, como depurar e proxies

Causas prováveis

  • DTMF por SIP INFO enviado a quem não negociou esse pacote.

Como depurar

  • Compare o Info-Package do INFO com o Recv-Info trocado no INVITE e na resposta.
  • Prefira DTMF por RFC 4733 (telephone-event) quando os dois lados suportam.
  • No Wireshark, filtre por sip.Status-Code == 469 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

470 Consent Needed

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 5360

O relay (por exemplo, uma lista de distribuição) precisa do consentimento do destinatário antes de encaminhar. A resposta traz Permission-Missing com os destinos sem permissão.

Causas, como depurar e proxies

Causas prováveis

  • Serviços de lista ou conferência que aplicam o framework de consentimento contra spam.

Como depurar

  • Leia Permission-Missing para saber quais destinos ainda não autorizaram.
  • No Wireshark, filtre por sip.Status-Code == 470 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

480 Temporarily Unavailable

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O destino existe mas não pode atender agora: desligado, não registrado, em não perturbe ou sem responder. A frase pode variar ("User not registered", "No answer") e o Retry-After pode indicar quando tentar.

Causas, como depurar e proxies

Causas prováveis

  • Ramal sem registro ativo no momento.
  • Não perturbe (DND) ou tempo de toque esgotado.
  • Em operadoras, número fora de área ou aparelho desligado.

Como depurar

  • Leia a frase e o cabeçalho Reason (RFC 3326), que pode trazer a causa Q.850 original da rede.
  • Confira se o destino está registrado: no Asterisk, pjsip show contacts; no FreeSWITCH, sofia status profile internal reg; no Kamailio, kamctl ul show.
  • No Wireshark, filtre por sip.Status-Code == 480 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

18 No user responding

481 Call/Transaction Does Not Exist

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

A requisição faz parte de um diálogo ou transação que o destino não conhece. Típico de BYE, re-INVITE ou CANCEL que não casam com nada.

Causas, como depurar e proxies

Causas prováveis

  • BYE ou re-INVITE com Call-ID, From-tag ou To-tag diferentes dos do diálogo (algum elemento reescreveu os cabeçalhos).
  • CANCEL que chegou depois de a transação do INVITE já ter acabado.
  • Um lado reiniciou ou o diálogo expirou (session timer) e o outro continua mandando requisições.

Como depurar

  • Compare Call-ID, From-tag e To-tag do BYE com os do INVITE e do 200. No Wireshark, filtre sip.Call-ID == "valor".
  • Confira se o BYE foi para o Contact e pela rota (Record-Route) certos.
  • Num CANCEL, o Via branch tem de ser igual ao do INVITE.
  • No Wireshark, filtre por sip.Status-Code == 481 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

41 Temporary failure

482 Loop Detected

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O servidor percebeu que a requisição voltou a ele (laço de roteamento).

Causas, como depurar e proxies

Causas prováveis

  • Duas rotas apontando uma para a outra (PABX manda para o provedor, que devolve ao PABX).

Como depurar

  • Leia os Via da requisição: o mesmo endereço aparecendo duas vezes mostra o laço.
  • Revise as rotas de saída e de entrada dos dois lados.
  • No Wireshark, filtre por sip.Status-Code == 482 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

25 Exchange routing error

483 Too Many Hops

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O Max-Forwards chegou a zero antes do destino: a requisição passou por saltos demais.

Causas, como depurar e proxies

Causas prováveis

  • Laço de roteamento que o servidor não detectou como 482.
  • Max-Forwards inicial baixo demais.

Como depurar

  • Conte os Via e veja o Max-Forwards inicial (o padrão é 70).
  • No Wireshark, filtre por sip.Status-Code == 483 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

25 Exchange routing error

484 Address Incomplete

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O número ou endereço está incompleto. Usado em discagem sobreposta (overlap): o servidor espera mais dígitos.

Causas, como depurar e proxies

Causas prováveis

  • Número discado sem todos os dígitos.
  • Plano de numeração do PABX esperando mais dígitos.

Como depurar

  • Confira o Request-URI e o padrão do dialplan que deveria casar com ele.
  • No Wireshark, filtre por sip.Status-Code == 484 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

28 Invalid number format

485 Ambiguous

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O endereço é ambíguo: casa com mais de um destino. A resposta pode listar as opções no Contact.

Causas, como depurar e proxies

Causas prováveis

  • Busca por nome ("joao@empresa") com vários usuários possíveis.

Como depurar

  • Leia os Contact e use um endereço mais específico.
  • No Wireshark, filtre por sip.Status-Code == 485 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

1 Unallocated number

486 Busy Here

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O destino foi contatado, mas está ocupado e não aceita outra chamada neste terminal. Pode haver outros terminais do mesmo usuário livres (compare com 600).

Causas, como depurar e proxies

Causas prováveis

  • Usuário em outra ligação sem chamada em espera.
  • Recusa manual em alguns telefones.
  • Limite de canais do trunk ou do ramal atingido.

Como depurar

  • Confira o limite de chamadas do ramal ou do trunk (no Asterisk, device_state_busy_at; no FreeSWITCH, limit).
  • Num forking, o 486 de um terminal não impede que outro atenda.
  • No Wireshark, filtre por sip.Status-Code == 486 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

17 User busy

487 Request Terminated

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O INVITE foi encerrado por um CANCEL (ou BYE) antes de ser atendido. É a resposta normal quando quem liga desiste.

Causas, como depurar e proxies

Causas prováveis

  • Quem ligou desligou antes do atendimento.
  • Proxy com forking cancelou as outras ramificações porque uma atendeu.
  • Tempo de toque esgotado no PABX de origem.

Como depurar

  • Não é erro por si só. Para saber por que houve CANCEL, leia o Reason do CANCEL (por exemplo, SIP;cause=200;text="Call completed elsewhere").
  • A ordem esperada: CANCEL, 200 ao CANCEL, 487 ao INVITE e ACK do 487.
  • No Wireshark, filtre por sip.Status-Code == 487 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

488 Not Acceptable Here

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

A oferta de mídia (SDP) não é aceitável por este destino: nenhum codec em comum, tipo de mídia ou criptografia não suportados.

Causas, como depurar e proxies

Causas prováveis

  • Nenhum codec em comum (por exemplo, só G.729 de um lado e só G.711 do outro).
  • Um lado exige SRTP (RTP/SAVP) e o outro só aceita RTP/AVP.
  • re-INVITE de T.38 (fax) para quem não suporta.

Como depurar

  • Compare as linhas m= e a=rtpmap do SDP da oferta com os codecs permitidos no destino.
  • Leia o cabeçalho Warning: os códigos 304 (tipo de mídia), 305 (formato) e 370 (banda) dizem o motivo.
  • No Asterisk, allow/disallow e media_encryption do endpoint; no FreeSWITCH, codec-prefs e o log "incompatible destination".
  • No Wireshark, filtre por sip.Status-Code == 488 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

Causa Q.850 em gateways (RFC 3398)

Definida pelo Warning (31 Normal, unspecified por padrão)

489 Bad Event

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 6665

O servidor não entende o pacote de eventos do cabeçalho Event (do SUBSCRIBE ou PUBLISH). A resposta traz Allow-Events com os pacotes aceitos.

Causas, como depurar e proxies

Causas prováveis

  • Telefone assinando presence, dialog ou message-summary (BLF, correio de voz) em servidor sem suporte.

Como depurar

  • Compare o Event do SUBSCRIBE com o Allow-Events da resposta.
  • No Asterisk, confira se o ramal monitorado tem hint no dialplan.
  • No Wireshark, filtre por sip.Status-Code == 489 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

491 Request Pending

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

Já existe uma transação pendente no mesmo diálogo, por exemplo os dois lados mandando re-INVITE ao mesmo tempo (glare).

Causas, como depurar e proxies

Causas prováveis

  • Hold, retomada ou mudança de codec disparados pelos dois lados juntos.
  • re-INVITE enviado antes de a oferta anterior ser respondida.

Como depurar

  • O RFC manda esperar um tempo aleatório e tentar de novo: de 2,1 a 4 s se você gerou o Call-ID, de 0 a 2 s se não.
  • Procure dois INVITE com o mesmo Call-ID e CSeq cruzados no trace.
  • No Wireshark, filtre por sip.Status-Code == 491 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

493 Undecipherable

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3261

O corpo veio cifrado (S/MIME) e o destino não tem a chave para decifrá-lo.

Causas, como depurar e proxies

Causas prováveis

  • Uso de S/MIME, raro na prática.

Como depurar

  • Confira o certificado usado na cifragem e se o destino tem a chave privada correspondente.
  • No Wireshark, filtre por sip.Status-Code == 493 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

494 Security Agreement Required

#
  • 4xx Erro do cliente
  • Resposta final
  • RFC 3329

O servidor exige um acordo de mecanismo de segurança (cabeçalhos Security-Client, Security-Server e Security-Verify) antes de seguir.

Causas, como depurar e proxies

Causas prováveis

  • Redes IMS exigindo IPsec ou TLS negociado com o P-CSCF.

Como depurar

  • Leia o Security-Server da resposta e confira se o cliente envia Security-Client e Require: sec-agree.
  • No Wireshark, filtre por sip.Status-Code == 494 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e só repassa se for a melhor entre todas as ramificações (forking) quando nenhuma der 2xx ou 6xx.

5xx: Erro do servidor

A requisição pode estar certa, mas o servidor falhou ao atendê-la.

500 Server Internal Error

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

O servidor teve um erro inesperado e não conseguiu atender. Também é o que um proxy deve mandar quando a única resposta recebida foi 503.

Causas, como depurar e proxies

Causas prováveis

  • Falha de script, banco ou módulo no servidor.
  • Proxy convertendo um 503 de uma ramificação.

Como depurar

  • Olhe o log do servidor que gerou a resposta (o User-Agent ou Server da resposta diz qual é).
  • Retry-After indica que a falha é temporária.
  • No Wireshark, filtre por sip.Status-Code == 500 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

Causa Q.850 em gateways (RFC 3398)

41 Temporary failure

501 Not Implemented

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

O servidor não conhece o método da requisição. (Se conhece mas não permite para esse recurso, o certo é 405.)

Causas, como depurar e proxies

Causas prováveis

  • Mandar UPDATE, PRACK, MESSAGE ou PUBLISH a quem não implementa.

Como depurar

  • Veja o Allow em respostas a OPTIONS do destino para saber quais métodos ele aceita.
  • No Wireshark, filtre por sip.Status-Code == 501 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

Causa Q.850 em gateways (RFC 3398)

79 Service or option not implemented, unspecified

502 Bad Gateway

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

O servidor, agindo como gateway ou proxy, recebeu uma resposta inválida do próximo servidor.

Causas, como depurar e proxies

Causas prováveis

  • Falha no servidor seguinte ou no gateway para a rede de telefonia.
  • Resolução DNS do próximo salto apontando para destino errado.

Como depurar

  • Descubra qual é o próximo salto (Route, Request-URI, DNS SRV) e veja a resposta dele.
  • No Wireshark, filtre por sip.Status-Code == 502 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

Causa Q.850 em gateways (RFC 3398)

38 Network out of order

503 Service Unavailable

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

O servidor está temporariamente sem condições de atender (sobrecarga, manutenção) ou não tem rota. Pode trazer Retry-After. O cliente deve tentar outro servidor do mesmo domínio (DNS SRV).

Causas, como depurar e proxies

Causas prováveis

  • Trunk sem canais ou sem registro com o provedor.
  • Gateway ou servidor sobrecarregado ou em manutenção.
  • Erro de DNS ou de transporte ao enviar para o próximo salto; muitas pilhas geram 503 local nesse caso.

Como depurar

  • Se o 503 não veio pela rede, foi a própria pilha: no Asterisk, procure falha de envio ou de DNS no log; no FreeSWITCH, o hangup cause.
  • Confira se o trunk está registrado e se o destino responde a OPTIONS (qualify no Asterisk, dispatcher com ping no Kamailio).
  • No Kamailio, o dispatcher marca destinos inativos; veja com kamcmd dispatcher.list.
  • No Wireshark, filtre por sip.Status-Code == 503 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy NÃO deve repassar um 503 recebido, a não ser que ele mesmo esteja indisponível; se for a única resposta, ele gera 500. Normalmente tenta outro destino (failover).

Causa Q.850 em gateways (RFC 3398)

41 Temporary failure

504 Server Time-out

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

O servidor, ao tentar atender, não recebeu a tempo a resposta de um servidor externo (outro proxy, servidor de localização, DNS).

Causas, como depurar e proxies

Causas prováveis

  • Próximo salto que não responde.
  • Consulta lenta a banco, ENUM ou DNS.

Como depurar

  • Diferente do 408: o 504 diz que o problema está depois do servidor que respondeu.
  • No Wireshark, filtre por sip.Status-Code == 504 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

Causa Q.850 em gateways (RFC 3398)

102 Recovery on timer expiry

505 Version Not Supported

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

O servidor não suporta a versão do protocolo SIP da requisição (diferente de SIP/2.0).

Causas, como depurar e proxies

Causas prováveis

  • Mensagem corrompida ou tráfego que não é SIP na porta 5060.

Como depurar

  • Veja a primeira linha da requisição: deve terminar em SIP/2.0.
  • No Wireshark, filtre por sip.Status-Code == 505 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

513 Message Too Large

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3261

A mensagem é maior do que o servidor consegue processar.

Causas, como depurar e proxies

Causas prováveis

  • INVITE grande por UDP sendo fragmentado; o RFC pede TCP para mensagens perto do MTU (até 200 bytes abaixo dele).

Como depurar

  • Veja o tamanho da mensagem e se há fragmentos IP no pcap. Passe a usar TCP ou reduza o SDP e os cabeçalhos.
  • No Wireshark, filtre por sip.Status-Code == 513 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

Causa Q.850 em gateways (RFC 3398)

127 Interworking, unspecified

555 Push Notification Service Not Supported

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 8599

O REGISTER pediu notificação push (parâmetro pn-provider) de um serviço que a rede não suporta.

Causas, como depurar e proxies

Causas prováveis

  • App de softphone em celular pedindo push de um provedor (APNs, FCM) não suportado pelo servidor SIP.

Como depurar

  • Confira os parâmetros pn-provider, pn-prid e pn-param no Contact do REGISTER.
  • No Wireshark, filtre por sip.Status-Code == 555 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

580 Precondition Failure

#
  • 5xx Erro do servidor
  • Resposta final
  • RFC 3312

Não foi possível cumprir as precondições da sessão (por exemplo, reserva de recursos de QoS) exigidas no SDP.

Causas, como depurar e proxies

Causas prováveis

  • Rede sem conseguir reservar banda ou QoS pedidos, comum em IMS e VoLTE.

Como depurar

  • Procure as linhas a=curr, a=des e a=conf no SDP e o Require: precondition.
  • No Wireshark, filtre por sip.Status-Code == 580 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final. O proxy guarda a resposta e pode tentar outro destino (failover); repassa se for a melhor resposta ao fim das ramificações.

6xx: Falha global

Nenhum servidor vai atender esta requisição. O proxy para de procurar.

600 Busy Everywhere

#

O usuário está ocupado em todos os lugares e não vai aceitar a chamada. Diferente do 486, indica que não adianta tentar outros terminais.

Causas, como depurar e proxies

Causas prováveis

  • Usuário que configurou recusa geral quando ocupado.

Como depurar

  • Retry-After pode indicar quando tentar de novo.
  • No Wireshark, filtre por sip.Status-Code == 600 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final e global. O proxy cancela as ramificações pendentes (CANCEL) e repassa o 6xx imediatamente.

Causa Q.850 em gateways (RFC 3398)

17 User busy

603 Decline

#

O destino foi contatado e recusou explicitamente a chamada, e não há outro lugar onde ela possa ser atendida.

Causas, como depurar e proxies

Causas prováveis

  • Usuário apertou recusar (em vários telefones).
  • Bloqueio de número ou lista negra no destino.

Como depurar

  • Num forking, um 603 encerra todas as ramificações. Se isso não é o desejado, configure o telefone para responder 486.
  • No Wireshark, filtre por sip.Status-Code == 603 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final e global. O proxy cancela as ramificações pendentes (CANCEL) e repassa o 6xx imediatamente.

Causa Q.850 em gateways (RFC 3398)

21 Call rejected

604 Does Not Exist Anywhere

#

O servidor tem certeza de que o usuário do Request-URI não existe em lugar nenhum.

Causas, como depurar e proxies

Causas prováveis

  • Número ou usuário inexistente, informado por um servidor autoritativo do domínio.

Como depurar

  • Confira o Request-URI e o domínio de destino.
  • No Wireshark, filtre por sip.Status-Code == 604 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final e global. O proxy cancela as ramificações pendentes (CANCEL) e repassa o 6xx imediatamente.

Causa Q.850 em gateways (RFC 3398)

1 Unallocated number

606 Not Acceptable

#

O usuário foi contatado, mas algum aspecto da sessão (mídia, banda, endereçamento) não é aceitável em nenhum lugar. Versão global do 488.

Causas, como depurar e proxies

Causas prováveis

  • Nenhum terminal do usuário aceita os codecs ou o tipo de mídia oferecidos.

Como depurar

  • Leia o Warning e compare o SDP oferecido com o que o destino suporta.
  • No Wireshark, filtre por sip.Status-Code == 606 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final e global. O proxy cancela as ramificações pendentes (CANCEL) e repassa o 6xx imediatamente.

Causa Q.850 em gateways (RFC 3398)

Definida pelo Warning (31 Normal, unspecified por padrão)

607 Unwanted

#

O destinatário marcou a chamada como indesejada (spam, robô). Serve para alimentar sistemas de análise e bloqueio de chamadas.

Causas, como depurar e proxies

Causas prováveis

  • Usuário rejeitou a chamada como spam no aparelho ou app.

Como depurar

  • Um 607 pode levar a rede a bloquear o número de origem no futuro. Confira a reputação do seu número se receber muitos.
  • No Wireshark, filtre por sip.Status-Code == 607 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final e global. O proxy cancela as ramificações pendentes (CANCEL) e repassa o 6xx imediatamente.

608 Rejected

#

Um intermediário (não o usuário) rejeitou a chamada, normalmente um serviço de análise de chamadas antispam. A resposta pode trazer, no Call-Info, um jCard com o contato para contestar.

Causas, como depurar e proxies

Causas prováveis

  • Número de origem com má reputação ou bloqueado por análise da operadora.

Como depurar

  • Leia o Call-Info da resposta para saber quem bloqueou e como pedir revisão.
  • No Wireshark, filtre por sip.Status-Code == 608 e abra o fluxo em Telefonia > Fluxos VoIP.

Em proxies

Final e global. O proxy cancela as ramificações pendentes (CANCEL) e repassa o 6xx imediatamente.

Referência

Métodos SIP.

Os 14 métodos do registro da IANA, com o RFC que os define. A estrutura das mensagens e dos SIP URIs está no artigo Estrutura do protocolo SIP e SIP URI.

INVITE RFC 3261
Inicia uma sessão (chamada) e leva a oferta de mídia em SDP. Dentro do diálogo, o re-INVITE muda a sessão (hold, codec).
ACK RFC 3261
Confirma a resposta final a um INVITE. É o terceiro passo do handshake INVITE, 200, ACK e não tem resposta.
BYE RFC 3261
Encerra uma sessão já estabelecida. Qualquer lado pode enviar.
CANCEL RFC 3261
Cancela um INVITE que ainda não teve resposta final. O INVITE cancelado recebe 487.
REGISTER RFC 3261
Registra no registrador o endereço (Contact) onde o usuário pode ser encontrado, por um tempo (expires).
OPTIONS RFC 3261
Pergunta as capacidades do outro lado. Muito usado como keep-alive e teste de vida de trunks (qualify, ping).
PRACK RFC 3262
Confirma respostas provisórias confiáveis (100rel), por exemplo um 183 com early media.
SUBSCRIBE RFC 6665
Assina eventos de outro elemento: presença, BLF (dialog), correio de voz (message-summary).
NOTIFY RFC 6665
Entrega o estado de um evento assinado. Também informa o andamento de uma transferência (REFER).
REFER RFC 3515
Pede ao outro lado que faça uma requisição para um terceiro. É a base da transferência de chamada.
MESSAGE RFC 3428
Envia mensagem instantânea (texto) fora de uma sessão.
INFO RFC 6086
Leva informação da aplicação dentro do diálogo, como DTMF por SIP INFO, usando Info Packages.
UPDATE RFC 3311
Muda parâmetros da sessão (SDP, session timer) antes ou depois do atendimento, sem novo INVITE.
PUBLISH RFC 3903
Publica o próprio estado (por exemplo, presença) num servidor de eventos.

Na prática

Erros comuns.

As dúvidas que mais aparecem quando uma chamada ou um registro falha.

Qual a diferença entre 401 e 407?

Os dois são desafios de autenticação digest. O 401 vem do destino final (registrador ou telefone) e traz WWW-Authenticate; o cliente responde com Authorization. O 407 vem de um proxy no caminho e traz Proxy-Authenticate; o cliente responde com Proxy-Authorization. Ver um 401 ou 407 no primeiro REGISTER ou INVITE é normal. O erro é quando a segunda tentativa, já com as credenciais, recebe o mesmo desafio ou um 403: aí o usuário, a senha ou o realm estão errados.

Ver: 401, 407, 403

Trunk respondeu 403 ou 404: o que muda?

No 403 o provedor entendeu e recusou: IP de origem não liberado, número de origem (From ou P-Asserted-Identity) que não pertence à conta, destino bloqueado ou conta suspensa. No 404 o provedor não achou o destino: quase sempre é o formato do número no Request-URI (falta do DDD, do 0 ou do +55, conforme o que o provedor espera). Leia a frase e o cabeçalho Warning da resposta, que muitos provedores usam para explicar o motivo.

Ver: 403, 404, 484

Por que aparece 408 se nada respondeu?

Porque muitas vezes o 408 não veio pela rede: a própria pilha SIP o gera quando o temporizador da transação (Timer B para INVITE, Timer F para os outros métodos, 32 segundos com os valores padrão) estoura sem resposta. Procure no pcap se o 408 chegou de fora. Se não chegou, o problema é que o pedido ou a resposta se perdeu no caminho: firewall, NAT, porta ou transporte errados, ou um registro velho apontando para um IP que não existe mais.

Ver: 408, 100, 504

Por que a chamada recebe 488?

O 488 diz que a oferta de mídia (SDP) não serve para o destino. As causas mais comuns são não haver codec em comum (por exemplo, só G.729 de um lado e só G.711 do outro), um lado exigir SRTP (RTP/SAVP) e o outro só aceitar RTP/AVP, ou um re-INVITE de fax T.38 para quem não suporta. Compare as linhas m= e a=rtpmap da oferta com os codecs permitidos no destino e leia o cabeçalho Warning da resposta.

Ver: 488, 606, 415

O que causa 481 no BYE ou no re-INVITE?

O 481 diz que a requisição não pertence a nenhum diálogo conhecido pelo destino. Um diálogo é identificado pelo Call-ID mais a tag do From e a tag do To. Se algum elemento no caminho (SBC, ALG de roteador, B2BUA mal configurado) reescreveu esses campos, ou se um dos lados reiniciou e esqueceu a chamada, o BYE recebe 481. Compare Call-ID e tags do BYE com os do INVITE e do 200, e confira se o BYE seguiu o Contact e o Record-Route corretos.

Ver: 481, 487, 491

Qual a diferença entre 486, 600 e 603?

O 486 (Busy Here) diz que este terminal está ocupado, mas outro terminal do mesmo usuário ainda pode atender. O 600 (Busy Everywhere) e o 603 (Decline) são respostas globais: o proxy cancela todas as outras ramificações e encerra a busca. Num grupo de toque, um telefone que responde 603 ao ser recusado derruba a chamada para todos; nesse caso, configure-o para responder 486.

Ver: 486, 600, 603

Para ir além.

Fontes: registro SIP Parameters da IANA (códigos e métodos), RFC 3261 e os RFCs de cada extensão. Causas Q.850 conforme a tabela do RFC 3398.

Quer dominar o assunto?

Troubleshooting de Rede e SIP com Wireshark para VoIP

Neste curso apresentaremos os conceitos básicos de rede, protocolos, funcionamentos e mecanismos para captura, análise e diagnóstico de problemas de rede e VoIP usando a ferramenta de análise e captura de pacotes Wireshark.

Conhecer o curso