O código de erro, também chamado de código SIP, nada mais é do que as respostas de um sistema de programação no contexto da telefonia digital. Por meio destes códigos de erro de telefonia, a operadora consegue mapear o bom funcionamento do sistema, além de coletar as informações de possíveis instabilidades.
Quer saber quais são esses códigos de telefonia? Então esse texto foi feito para você.
Os códigos são a base de qualquer sistema de programação, sendo assim, você também tem os específicos da telefonia digital.
Quando a temática é a telefonia o código de erro/resposta SIP é o padrão registrado na plataforma/painel VoIP que você utiliza.
Muitas vezes ele é imperceptível para o usuário, mas a operadora acompanha e recebe os erros em tempo real.
Então, quer entender o que é um código de erro de telefonia e qual a sua característica em um sistema? Continue a leitura.
Código de erro e protocolo SIP
Primeiro, é necessário entender o que é Protocolo SIP. Essa é a sigla do termo inglês Session Initiation Protocol, que pode ser traduzido como um “Protocolo de iniciação de Sessão”.
SIP é um protocolo de código aberto de aplicação, que utiliza o modelo “requisição-resposta”. Muito similar ao HTTP, para iniciar sessões de comunicação interativa entre utilizadores.
Nesse sentido, você consegue identificar cada código de erro de telefonia dentro de um sistema SIP.
Mas, antes de darmos mais um passo na discussão, é importante que você entenda o que é um Hangup Cause Codes e Q.850.
São dois pontos indispensáveis para compreender os códigos de resposta na telefonia. Vamos lá.
O que é Q.850?
Podemos definir Q.850 como uma padronização no sistema de sinalização digital para assinantes.
Em resumo, funciona como um formato padrão para analisar as causas de um erro e/ou resposta em um sistema de telecomunicação.
A padronização Q.850 define o formato, a codificação e a semântica das informações de causa, elementos/parâmetros, e o uso do campo de localização em um sistema de sinalização digital para assinantes.
Hangup Cause Code
Basicamente, Hangup Cause Code são os códigos de desligamento mais comuns em uma chamada.
Então, quando o sistema de telefonia busca por uma “justificativa” para que uma ligação não tenha tido sucesso ou completado, geralmente você vê na plataforma de telefonia algum desses códigos.
E como esse três elementos se relacionam?
Simples, os Hangup Cause Code fazem parte do padrão Q.850 de codificação, que são elementos de causa na comunicação SIP.
Abaixo, listamos as representações codificadas de “causa e resposta” do tipo Q.850 já conhecidos. Confira:
ORIGINATOR_CANCEL [487]
No código de erro originator_cancel, a chamada foi cancelada por quem iniciou a ligação. É um tipo de código frequente e comum, ocorre quando quem está fazendo a ligação simplesmente desiste ou cancela a mesma.
Este é um dos códigos em que o número da causa é o mesmo na equivalência para a numeração SIP, ou seja, permanece sendo diagnosticado como [487].
Esse é um tipo de “erro” que pode ocorrer no sistema de entrada ou saída de telefonia.
- (Q.850) 487, (SIP) 487, ORIGINATOR_CANCEL (título da causa)
NORMAL_CLEARING [16]
Normal_clearing é um tipo de código de resposta que chega ao sistema quando a chamada é completada normalmente, ou seja, a ligação teve sucesso.
Este código de resposta também tem a mesma equivalência SIP quando tabelado no sistema, sendo assim, continua como o número [16].
Portanto, ele aparece da seguinte forma:
- (Q.850) 16, (SIP) 16, NORMAL_CLEARING (título da causa).
Além disso, é uma resposta que envolve tanto a entrada quanto a saída da ligação.
BEARERCAPABILITY_NOTIMPL [65]
Bearercapability_notimpl é um código que consta no painel de gerenciamento da Nvoip como falha no destino.
Este código de erro de telefonia indica que o equipamento que está enviando “a causa” não suporta a capacidade do portador solicitado. No sistema de equivalência SIP aparece como [488].
- (Q.850) 65, (SIP) 488, BEARERCAPABILITY_NOTIMPL (título da causa).
INCOMPATIBLE_DESTINATION [88]
Incompatible_destination é uma causa que indica que o equipamento que envia “a mensagem” recebeu uma solicitação para estabelecer uma chamada que tem compatibilidade de camada baixa ou compatibilidade de camada alta, e atributos (por exemplo, taxa de dados) que não podem ser acomodados.
O código de erro consta na plataforma de telefonia como falha no destino. É diagnosticado na numeração [488] na equivalência para SIP.
- (Q.850) 88, (SIP) 488, INCOMPATIBLE_DESTINATION (título da causa).
MANDATORY_IE_MISSING [96]
O código de erro de telefonia mandarory_ie_missing aparece quando o equipamento capta a resposta de falha no destino, pois recebeu uma mensagem que está faltando um elemento de informação que devia estar presente no conteúdo para que possa ser processado.
No sistema SIP, a equivalência corresponde ao mesmo número do padrão Q.850.
- (Q.850) 96, (SIP) 96, MANDATORY_IE_MISSING (título da causa).
NETWORK_OUT_OF_ORDER [38]
Essa causa indica que a rede não está funcionando corretamente e que a condição provavelmente durará um período relativamente longo, por exemplo, tentar novamente a chamada imediatamente não terá sucesso.
Quanto à equivalência para SIP, esse código aparece sob a numeração [502].
- (Q.850) 38, (SIP) 502, NETWORK_OUT_OF_ORDER (título da causa).
NORMAL_CIRCUIT_CONGESTION [34]
Essa causa indica que não há circuito/canal apropriado atualmente disponível para lidar com a chamada (nenhum circuito disponível 503, serviço indisponível).
Este é mais um código de erro de telefonia que aparece no painel como “falha no destino”, que ocorre na saída do sistema de saída.
Em uma tabela de equivalência SIP, o Normal_circuit_congestion consta na numeração [503], ficando assim o modelo de comparação:
- (Q.850) 34, (SIP) 503, NORMAL_CIRCUIT_CONGESTION (título da causa).
NORMAL_TEMPORARY_FAILURE [41]
Normal_temporary_failure indica que a rede não está funcionando corretamente e que a condição provavelmente não durará muito tempo, por exemplo, o usuário pode fazer uma outra tentativa de chamada quase imediatamente.
Esse é um código de erro temporário e tem grande probabilidade de ser resolvido rapidamente.
Então, caso você tente novamente, provavelmente será atendido.
- (Q.850) 41, (SIP) 503, NORMAL_TEMPORARY_FAILURE (título da causa).
REQUESTED_CHAN_UNAVAIL [44]
Esse código de erro também aparece como “falha no destino” e consta como ocorrência de saída no sistema.
A causa requested_chan_unavail é retornada quando o circuito ou canal indicado pela entidade solicitante não pode ser fornecido pelo outro lado da interface.
Na equivalência SIP, o código é identificado por [503], sendo assim, se configura dessa forma nos sistemas:
- (Q.850) 44, (SIP) 503, REQUESTED_CHAN_UNAVAIL (título da causa).
SERVICE_NOT_IMPLEMENTED [79]
Esta causa é usada para relatar um serviço ou opção não implementada, ou seja, esse evento ocorre somente quando nenhuma outra causa na classe de serviço ou opção não implementada se aplica.
Sendo assim, o código de erro service_not_implemented, ao pé da letra, é categorizado como não implementado [79]. No modelo de tabela comparativa, ele aparece no seguinte formato:
- (Q.850) 79, (SIP) 501, SERVICE_NOT_IMPLEMENTED (título da causa).
BEARERCAPABILITY_NOTAUTH [57]
O código bearercapability_notauth indica que o usuário solicitou um recurso de portador que é implementado pelo equipamento que gerou essa causa, mas o usuário não está autorizado a usar.
O código de erro consta na saída. Na equivalência para SIP, o erro corresponde ao número [403].
- (Q.850) 57, (SIP) 403, BEARERCAPABILITY_NOTAUTH (título da causa).
PROTOCOL_ERROR [111]
Falha no destino, esse código é usado para relatar um evento de erro de protocolo apenas quando nenhuma outra causa na classe de erro de protocolo se aplica.
O código de erro protocol_error segue a mesma numeração na equivalência para o SIP. Então, aparece do seguinte modo:
- (Q.850) 111, (SIP) 111, PROTOCOL_ERROR (título da causa).
DESTINATION_OUT_OF_ORDER [27]
Esta causa corresponde à resposta: o destino indicado pelo usuário não pode ser alcançado porque a interface com o destino não está funcionando corretamente.
O termo “não está funcionando corretamente” indica que uma mensagem de sinalização não pode ser entregue à parte remota; por exemplo, uma camada física ou falha na camada de enlace de dados na parte remota ou equipamento do usuário offline.
É um tipo de código de erro que ocorre na saída de telefonia. Na equivalência para o SIP, o código destination_out_of_order aparece com a numeração [502].
Seguindo o modelo padrão, o código fica assim:
- (Q.850) 27, (SIP) 502, DESTINATION_OUT_OF_ORDER (título da causa).
NORMAL_UNSPECIFIED [31]
Esta causa é usada para relatar um evento normal somente quando nenhuma outra causa na classe normal se aplica. Na equivalência SIP, o código aparece como [480].
- (Q.850) 31, (SIP) 480, NORMAL_UNSPECIFIED (título da causa).
UNKNOWN [31]
Código de erro no destino. Ocorre quando há uma solicitação para dar prioridade a um recurso, porém não houve um local e/ou destino para essa opção encaminhar a solicitação.
No sistema de equivalência para o SIP o código segue o mesmo.
- (Q.850) 31, (SIP) 31, UNKNOWN (título da causa).
INTERWORKING [127]
Código de falha no destino. Essa resposta indica que houve interoperabilidade com uma rede que não fornece causas para as ações que ela executa.
Portanto, a causa precisa de uma mensagem que está sendo enviada, mas que não pode ser determinada. Na equivalência SIP o código segue igual, veja:
- (Q.850) 127, (SIP) 127, INTERWORKING (título da causa).
SERVICE_UNAVAILABLE [63]
Este código é usado para relatar um serviço ou evento de opção não disponível, apenas em casos onde nenhuma outra causa no serviço ou classe de opção disponível se aplica.
Geralmente, causa um problema na saída da chamada. O código é o mesmo na equivalência SIP.
- (Q.850) 63, (SIP) 63, SERVICE_UNAVAILABLE (título da causa).
RECOVERY_ON_TIMER_EXPIRE [102]
Recovery_on_timer_expire é o código que indica que a linha está fora de área.
Geralmente, o telefone está fora de área ou desligado nas ligações de saída, nas de entrada, pode ser um problema no NAT.
Na equivalência SIP, o código aparece como [504].
- (Q.850) 102, (SIP) 504, RECOVERY_ON_TIMER_EXPIRE (título da causa).
SUBSCRIBER_ABSENT [20]
Este valor de causa é usado quando uma estação móvel foi desconectada.
O código é ativado na plataforma quando o contato de rádio não foi obtido com uma estação móvel ou se um usuário de telecomunicação pessoal temporariamente não pode ser endereçado em qualquer interface de rede do usuário.
Então, é comum que o sistema envie a resposta subscriber_absent para a operadora. Quanto à equivalência SIP, o código passa a ser [480].
- (Q.850) 20, (SIP) 480, SUBSCRIBER_ABSENT (título da causa).
SWITCH_CONGESTION [42]
O código indica limite ligações. Esse código é registrado na entrada e na saída da chamada, ocorre quando o equipamento atinge o limite de ligações simultâneas.
Ou seja, o equipamento de comutação está passando por um período de alto tráfego. O código switch_congestion aparece da seguinte forma:
- (Q.850) 42, (SIP) 503, SWITCH_CONGESTION (título da causa).
INVALID_NUMBER_FORMAT [28]
Quando você receber no painel o código de erro [28], o sistema está indicando que o número discado não é válido. Essa é uma resposta que ocorre na saída da ligação.
Vejamos um exemplo prático, o sistema que você usa atua no padrão E.164, mas você acabou discando em outro formato.
Caso a pessoa queira ligar para o Brasil, é preciso usar o padrão E.164, então se você deve discar “+55 (11) 4118.6267”.
Caso você erre e coloque outro padrão de discagem como, por exemplo, “(011) 4118.6267”, você terá como resposta o código invalid_number_format.
Na equivalência para SIP, o código de erro passa a ser [484]. Então, fica do seguinte modelo:
- (Q.850) 28, (SIP) 484, INVALID_NUMBER_FORMAT (título da causa).
NO_ROUTE_DESTINATION [3]
No_route_destination é um código que indica que o usuário está sem rota (tarifas de cobrança) para o destino no plano especificado.
Esse código consta no painel da Nvoip como “número inválido” e ocorre tanto na entrada como na saída do sistema de telefonia.
Para facilitar a sua compreensão, vamos pensar em exemplo cotidiano para esse tipo de código de erro.
A operadora da qual você está efetuando a ligação não possui rota para o número selecionado. Sendo assim, é preciso que você verifique se o número realmente existe, além de checar se está usando o formato de discagem correto.
Também é indicado que você entre em contato com a operadora para ter certeza.
Outra possível causa para que esse erro ocorra é a disponibilidade da rota.
Pode ser que o plano do cliente não contemple a rota pra esse destino, por exemplo, o usuário não pode fazer ligação internacional no plano contratado.
Também pode ter como explicação o fato da operadora não ter uma rota para esse destino ou até mesmo ser um problema de interconexão.
De forma simples, esse código de erro é o contrário do que ocorre no próximo item – termination_rate_not_found -, neste caso, o cliente final não possui “permissão”/tarifas para ligar pra este destino.
A equivalência do código no SIP é o número [404]. Então, a tabela fica no seguinte formato:
- (Q.850) 3, (SIP) 404, NO_ROUTE_DESTINATION (título da causa).
TERMINATION_RATE_NOT_FOUND [31]
Sem rota (tarifas de cobrança) pra esse destino no provedor selecionado. É um problema que ocorre no sistema de saída da chamada, também se traduz no painel como “número inválido”.
Este é um caso comum para usuários de plataformas de bilhetagem, que é um modelo muito usado por revendedores de VoIP.
Esse código indica que o sistema de bilhetagem não encontrou nenhuma tarifa para concluir essa rota.
Isso pode estar ligado a configuração do sistema em si ou porque fornecedor não possui a rota à qual tentou utilizar no sistema de revenda.
Segue o mesmo código na equivalência SIP, desse modo:
- (Q.850) 31, (SIP) 31, TERMINATION_RATE_NOT_FOUND (título da causa).
NUMBER_CHANGED [22]
Esse código se traduz no painel como “número não existe”, essa causa é retornada a parte chamadora quando o número indicado na discagem por ela não está mais atribuído.
Geralmente, no Brasil esse código é exibido quando o número de destino foi “cancelado” ou está inativo na operadora.
O novo número da parte chamada pode ser opcionalmente incluído no campo de diagnóstico. Se uma rede não suportar este valor de causa, deve ser usado o número de causa 1, número não alocado (não atribuído).
É mais um dos registros que ocorre no sistema de entrada e saída da chamada.
O number_changed é representado na equivalência SIP pelo código [410].
- (Q.850) 22, (SIP) 410, NUMBER_CHANGED (título da causa).
UNALLOCATED_NUMBER [1]
Esse código de erro é diagnosticado na saída da chamada, basicamente, ele informa ao cliente que o número não existe.
A causa unallocated_number indica que a parte chamada não pode ser alcançada porque, embora o número de destino esteja em formato válido, ele não está alocado, ou seja, atribuído, no momento.
Uma ocorrência possível é o caso da portabilidade. Por exemplo, você pode ter pedido a migração do seu número para outra operadora, mas a linha não foi configurada da forma correta ou não está ativo ainda na nova operadora.
Então, ao tentar se comunicar com esse número por ligação, o código de erro [1] vai “bater” no seu sistema.
Esse código de erro aparece como [404] na equivalência para SIP.
- (Q.850) 1, (SIP) 404, UNALLOCATED_NUMBER (titulo da causa).
USER_BUSY [17]
Usuário destino (entrada ou saída) está ocupado, sendo uma causa que acontece tanto na entrada e na saída.
O código de erro user_busy pode ocorrer, por exemplo, caso o seu telefone IP permita que você receba apenas 1 chamada simultânea na linha.
Então, se uma segunda ligação chegar na mesma linha telefônica, ela vai retornar ao sistema com o código em questão, constando como ocupado.
Na equivalência SIP, o código aparece na numeração [486].
- (Q.850) 17, (SIP) 486, USER_BUSY (título da causa).
CALL_REJECTED [21]
Este código indica que o receptor não deseja aceitar esta chamada, embora a chamada pudesse ser atendida porque o equipamento não está ocupado e também não é incompatível.
A rede também pode gerar esta causa, indicando que a chamada foi cancelada devido a uma restrição de serviço suplementar. O campo diagnóstico pode conter informações adicionais sobre o serviço complementar e o motivo da rejeição.
Basicamente, esse erro ocorre quando você nega a ligação no seu celular, você está mandando um código call_rejected para o sistema.
Outro bom exemplo de como esse código de erro acontece nas chamadas é, por exemplo, quando a operadora nega algum tipo de funcionalidae/serviço.
Por exemplo, uma empresa de telefonia pode não ter como serviço as ligações internacionais. Então, caso você receba uma chamada do exterior, ela vai retornar como o código de erro [21].
Neste caso, se você estiver ligando com rota CLI (Que bina 00 na frente), a ligação será rejeitada pelo fato da operadora considerar uma bina 00 como internacional.
No caso de números nacionais, como os 0800, é bem frequente que as empresas não liberem o recebimento de ligações de celular. Este é mais um exemplo em que a chamada “volta” como erro de call_rejected.
Esse código de erro na telefonia ocorre na entrada e na saída da chamada. Além disso, na equivalência para SIP, o código passa a ser [603].
- (Q.850) 21, (SIP) 603, CALL_REJECTED (título da causa).
NO_SUFFICIENT_FUND [31]
Esse código como o próprio nome sugere, indica que o cliente não tem saldo suficiente na conta para fazer uma chamada. Ou seja, ocorre em especial, no sistema tarifador.
É bem comum que esse código aconteça em planos de telefonia pré-pago. Onde é necessário que o usuário vai inserindo os créditos, de acordo com a sua necessidade.
Então, caso você não se lembre de recarregar, não vai conseguir realizar chamadas. E o sistema vai retornar com o código no_sufficiente_fund.
É registrado na entrada e na saída da chamada. Na equivalência para SIP aparece com a mesma numeração.
- (Q.850) 31, (SIP) 31, NO_SUFFICIENT_FUND (título da causa).
ALLOTTED_TIMEOUT [602]
Isso significa que o servidor cancelou a chamada porque o canal de destino demorou muito para atender, é uma ocorrência na saída da chamada.
Aparece no painel da operadora como “sem resposta”. No sistema de equivalência segue com o mesmo código identificador. Ficando no seguinte formato:
- (Q.850) 602, (SIP) 602, ALLOTTED_TIMEOUT (título da causa).
NO_ANSWER [19]
Esse é o código que indica, literalmente, que a chamada não obteve resposta.
No_answer é um código muito normal, retorna ao painel quando o sistema tenta o máximo possível completar a ligação e o destino não atende.
Então, ele aparece quando a parte chamada foi alertada, mas não responde com uma indicação de conexão dentro de um período de tempo prescrito.
No entanto, atenção: esta causa não é necessariamente gerada por procedimentos Q.93l, mas pode ser gerada por temporizadores de rede internos.
Sendo assim, é um erro característico no saída da chamada. Na tabela de equivalência SIP, o código passa a ser identificado no número [480].
- (Q.850) 19, (SIP) 480, NO_ANSWER (título da causa).
USER_NOT_REGISTERED [606]
O código 606 indica que o usuário está offline, ou seja, não está registrado com sua conta na plataforma da Nvoip.
O user_not_registered é muito visto em plataformas de telefonia digital como a Nvoip, significa que o destino não está registrado na plataforma.
Esse registro é o que chamados de usuário logado ou usuário online. Quanto à equivalência SIP, o código segue com a mesma numeração.
- (Q.850) 606, (SIP) 606, USER_NOT_REGISTERED (título da causa).
Considerações
Agora você já conhece os principais códigos de erro na telefonia. Como mencionado, eles aparecem no painel do cliente e também é identificado pela operadora que, na maioria das vezes, intervêm e registra a ocorrência no sistema.
Basicamente, esse é o sistema que permite que você faça chamadas pela internet e agrega uma série de funcionalidades a sua comunicação corporativa.
Tudo isso com uma redução de custos significativa e suporte remoto.
Espero que você tenha curtido esse conteúdo, continue acompanhando o blog da Nvoip.
Até a próxima.