SIP 401 Unauthorized: o que significa e como resolver
Resposta curta: SIP 401 Unauthorized é o desafio de autenticação do registrar ou do servidor: ele pede que a requisição seja reenviada com credenciais digest. Uma vez é normal no REGISTER e no INVITE. Se o 401 volta depois do reenvio, o usuário, a senha ou o realm estão errados. Confira as credenciais do tronco com a operadora.
| Código | 401 |
|---|---|
| Nome oficial | Unauthorized |
| Classe | 4xx: falha da requisição |
| Definido em | RFC 3261 |
| Causas Q.850 que costumam vir junto | 21 (Call rejected) |
Como o Monitor trata o SIP 401
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) | Sem visibilidade |
| Um tom de teste ou serviço de eco | Sem visibilidade |
| Outro: pode tocar ou ser atendido | Sem visibilidade |
Sem visibilidade quer dizer que a falha está do lado da 2N5, não no seu circuito: o teste não conta contra o circuito, não entra no SLA e não avisa o cliente. A 2N5 é avisada se durar.
O que o Monitor registra para uma URA: A operadora não aceitou a conta de chamadas da 2N5, geralmente por usuário ou senha errados, então nenhuma chamada de teste chegou ao circuito. É um problema de configuração do lado da 2N5, não uma queda deste circuito (SIP 401).
Se a operadora devolve o SIP 401 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 401 na prática?
Pela RFC 3261, o SIP 401 Unauthorized indica que a requisição exige autenticação do usuário. Ele é enviado por registrars e por agentes que recebem a chamada, e traz o header WWW-Authenticate com o desafio digest: realm, nonce e o algoritmo. O cliente calcula a resposta com usuário e senha e reenvia a requisição com o header Authorization.
Por isso, ver um 401 isolado é rotina: muitos troncos desafiam todo REGISTER e todo INVITE. O sinal de problema é o ciclo REGISTER, 401, REGISTER com credenciais e outro 401. Se o desafio repetido traz stale=true, o nonce apenas expirou e o cliente deve tentar de novo com o novo nonce. Sem stale, as credenciais foram recusadas, e é esse erro 401 SIP repetido que impede o registro do tronco. Para proxies, o equivalente é o SIP 407.
Causas comuns no Brasil
- Senha do tronco trocada no portal da operadora e não atualizada no Asterisk, Issabel, FreePBX ou 3CX.
- Usuário de autenticação diferente do número do tronco: muitas operadoras usam um login de autenticação separado do usuário que vai no From.
- Realm ou domínio configurado errado, fazendo o PABX responder ao desafio com dados de outro servidor.
- Tronco contratado para autenticação por IP, mas o PABX passou a sair por outro IP público, e a operadora volta a pedir credenciais.
- Dois PABX registrando com as mesmas credenciais, um derrubando o registro do outro.
- Caracteres especiais na senha que o painel do PABX salva ou escapa de forma diferente.
Como diagnosticar
- No Asterisk ou FreePBX com PJSIP, rode
pjsip show registrationse veja se o tronco estáRegisteredouRejected. No chan_sip (comum no Issabel), usesip show registry. - Ative
pjsip set logger on(ousip set debug on) e confirme se há um segundo 401 depois do envio comAuthorization. - Compare o realm do header
WWW-Authenticatecom o configurado no tronco e confira o usuário enviado no campousernamedoAuthorization. - No FreePBX, revise os campos de autenticação do tronco PJSIP (usuário, senha e servidor). No 3CX, confira “Authentication ID” e senha, e ative o “Verbose logging”.
- Use
sngrep port 5060para ver a escada completa e garantir que o reenvio sai pelo mesmo IP e porta da primeira tentativa. - Se o tronco é por IP, confirme com
curl ifconfig.mequal IP público o servidor está usando.
O que mandar para a operadora
- Data e hora com fuso horário das tentativas de registro ou de chamada.
- Número ou identificador do tronco e o usuário de autenticação usado.
- Call-ID de um REGISTER ou INVITE recusado.
- As duas respostas 401, com o header
WWW-Authenticatecompleto, mostrando o realm. - O IP público de origem e quantas tentativas falharam.
- O pcap da captura, quando disponível, sem expor a senha em texto.
Perguntas frequentes
Ver 401 no log do Asterisk significa que o tronco está com problema?
Não necessariamente. O fluxo normal de autenticação é: REGISTER ou INVITE sem credenciais, 401 com o header WWW-Authenticate, reenvio com o header Authorization e, então, 200 OK. O problema é quando o segundo envio, já com credenciais, também recebe 401. Isso indica credenciais recusadas, e não apenas o desafio.
Qual a diferença entre 401 e 403 num tronco SIP?
O 401 diz "preciso saber quem você é" e oferece um desafio para autenticar. O 403 Forbidden diz "sei o que você pediu e não vou atender", e autenticar de novo não resolve. Se você vê 401 seguido de 403, a autenticação passou, mas a operadora recusou a chamada por outro motivo, como o número de origem.