---
title: "Alertas por chamada no Uptime Kuma: faça seu celular tocar"
description: "O Uptime Kuma tem mais de 90 formas de notificação, mas nenhuma que faça seu celular tocar. Veja como adicionar alertas por chamada para quedas usando um único webhook."
date: 2026-08-28
author: Nooc
authorAvatarLink: /images/avatars/nooc.webp
authorLink: https://nooc.me
tags:
  - Uptime Kuma
  - monitoramento auto-hospedado
  - alertas por chamada
  - notificações webhook
  - monitoramento de uptime
  - plantão
---

# Alertas por chamada no Uptime Kuma: faça seu celular tocar

O Uptime Kuma tem mais de 90 provedores de notificação, mas nenhum deles faz seu celular tocar. Para receber uma chamada quando um monitor cai, envie a notificação **Webhook** do Uptime Kuma para um canal do Echobell com o tipo **Chamada**. Este guia mostra o corpo personalizado exato, como separar os alertas de queda dos de recuperação e os dois erros que quebram a configuração em silêncio.

O [Uptime Kuma](https://github.com/louislam/uptime-kuma) é o monitor de uptime auto-hospedado mais popular que existe — cerca de 90.000 estrelas no GitHub, com a versão 2.5.0 lançada em agosto de 2026. Ele verifica endpoints HTTP, portas TCP, registros DNS, contêineres Docker e mais, e é realmente muito bom em detectar quedas.

Onde ele deixa você exposto é na última milha: levar o alerta até uma pessoa que está dormindo.

## Por que o Uptime Kuma não consegue ligar para você sozinho

A lista de notificações do Uptime Kuma é longa — Telegram, Discord, Slack, e-mail, Gotify, ntfy e dezenas de outras — mas todas entregam uma *mensagem*. Mensagens dependem da chave de silenciar do seu celular, do Não perturbe e dos modos Foco do iOS. Às 3 da manhã isso significa que o alerta chega e nada acontece.

Não existe um provedor nativo do tipo "me ligue". As opções em que as pessoas costumam parar são:

- **Twilio** — dá para construir chamadas de voz em cima dele, mas o provedor Twilio do Uptime Kuma envia SMS. Voz significa escrever um serviço intermediário, comprar um número e pagar por chamada.
- **PagerDuty, Zenduty, Spike.sh, Splunk On-Call** — esses realmente fazem chamadas, e são plataformas completas de gestão de incidentes, com preço por usuário à altura. A resposta certa se você precisa de rodízios e políticas de escalonamento; exagero se você só precisa que um celular toque.
- **Gateways de SMS** — um SMS continua chegando como mensagem, e no iOS uma mensagem de texto só atravessa o modo Foco se o remetente estiver na sua lista de permissões.

Um [pedido de recurso para notificações por chamada VoIP](https://github.com/louislam/uptime-kuma/issues/3812) está aberto há um bom tempo no repositório do Uptime Kuma. Enquanto isso, o provedor genérico **Webhook** é a saída — ele consegue enviar qualquer coisa para qualquer URL, que é tudo de que você precisa.

## O que você precisa

- Uma instância do Uptime Kuma em execução (este guia foi escrito para a 2.x; o corpo personalizado do webhook também funciona na 1.23+)
- Echobell instalado ([App Store](https://apps.apple.com/app/apple-store/id6743597198?pt=128151925&ct=blog-uptime-kuma-phone-call-alerts-pt&mt=8) / [Google Play](https://play.google.com/store/apps/details?id=one.echobell.echobellandroid))
- Cinco minutos

Sua instância do Uptime Kuma precisa de HTTPS de saída para `hook.echobell.one`. Ela **não** precisa ser acessível pela internet — este é um webhook de saída, então um monitor rodando em um servidor doméstico ou dentro de uma rede privada funciona sem problemas.

## Passo 1 — Crie um canal que liga para você

No Echobell, crie um canal com um nome como `Production Down`. Defina o tipo de notificação da inscrição como **Chamada**. É essa a configuração que importa: alertas em chamada chegam como uma tela de ligação recebida e tocam atravessando o modo Foco do iOS e o Não perturbe, o que uma notificação push não faz.

Defina os modelos como:

```
Título: 🔴 {{monitor}} está fora do ar
Corpo: {{message}}
Destino: {{target}}
```

Depois copie a **URL do webhook** do canal. Ela se parece com isto:

```
https://hook.echobell.one/t/<channel-token>
```

Trate essa URL como um segredo — quem a tiver pode fazer seu celular tocar.

## Passo 2 — Adicione o Echobell como notificação de webhook

No Uptime Kuma, vá em **Settings → Notifications → Setup Notification** e preencha:

| Campo | Valor |
| --- | --- |
| Notification Type | `Webhook` |
| Friendly Name | `Echobell — Down` |
| Post URL | a URL do webhook do seu canal no Echobell |
| Request Body | `Custom Body` |

Deixe **Additional Headers** em branco.

## Passo 3 — Envie um payload que dá para filtrar

Este é o passo que a maioria dos guias pula, e é ele que faz a diferença entre um sistema de alertas e uma máquina de barulho.

Cole isto em **Custom Body**:

```json
{
  "monitor": "{{name}}",
  "target": "{{hostnameOrURL}}",
  "message": "{{ msg | strip_newlines }}",
  "up": "{{ heartbeatJSON['status'] }}"
}
```

O Uptime Kuma renderiza corpos personalizados com Liquid e expõe estas variáveis:

| Variável | O que contém |
| --- | --- |
| `{{name}}` | O nome amigável do monitor |
| `{{hostnameOrURL}}` | O hostname ou a URL que está sendo verificada |
| `{{status}}` | `🔴 Down`, `✅ Up` ou `⚠️ Test` |
| `{{msg}}` | O motivo em texto legível, por exemplo `connect ECONNREFUSED 10.0.0.4:443` |
| `{{ monitorJSON['...'] }}` | O objeto monitor completo |
| `{{ heartbeatJSON['...'] }}` | O objeto heartbeat completo |

Dois detalhes desse payload são intencionais:

**`strip_newlines` em `msg`.** A mensagem do Uptime Kuma costuma conter quebras de linha, e uma quebra de linha crua dentro de uma string JSON é JSON inválido. Sem o filtro, seu webhook falha de forma intermitente — só nos erros cujo texto por acaso quebra a linha. Se o seu Uptime Kuma for novo o bastante para ter o filtro `json` do Liquid, `"message": {{ msg | json }}` (atenção: sem as aspas ao redor) é ainda mais seguro, porque também escapa as aspas.

**`heartbeatJSON['status']` em vez de `{{status}}`.** A variável `status` é renderizada como texto com emoji, o que é ruim de comparar. O status do heartbeat é um número simples:

- `0` — fora do ar
- `1` — no ar
- `2` — pendente
- `3` — manutenção

As aspas (`"up": "{{ ... }}"`) também importam, e o Passo 5 explica por quê.

## Passo 4 — Impeça que alertas de recuperação liguem para você

Uma única notificação do Uptime Kuma dispara tanto na queda *quanto* na recuperação. Sem ajuste, esta configuração liga para você quando o serviço quebra e liga de novo quando ele se conserta sozinho. A segunda chamada é a que ensina as pessoas a ignorar a primeira.

Separe as duas usando as **condições** do Echobell, avaliadas antes de qualquer entrega:

**No canal `Production Down`** (tipo de notificação **Chamada**), defina a condição como:

```
up == "0"
```

**Crie um segundo canal** chamado `Production Recovered`, defina o tipo de notificação dele como **Normal** e dê a ele a condição:

```
up == "1"
```

Com os modelos:

```
Título: ✅ {{monitor}} voltou ao ar
Corpo: {{message}}
```

Depois adicione uma segunda notificação de webhook no Uptime Kuma — mesmo corpo personalizado, mesmos monitores, mas apontando para a URL do canal de recuperação. As duas notificações recebem todos os eventos; cada canal descarta a metade que não lhe interessa.

O resultado: a queda toca o telefone, a recuperação chega como um push silencioso que você lê de manhã.

## Passo 5 — Ajuste o monitor para ele não dar alarme falso

Uma chamada que acaba sendo uma oscilação de rede de dois segundos é pior do que chamada nenhuma, porque a próxima também vai ser ignorada. Três configurações do Uptime Kuma resolvem a maior parte disso, todas no próprio monitor:

- **Retries** — defina como `2` ou `3`. O Uptime Kuma só marca o monitor como fora do ar depois desse número de falhas consecutivas, o que filtra pacotes perdidos isolados.
- **Heartbeat Retry Interval** — com que rapidez ele verifica de novo enquanto está falhando. De 20 a 30 segundos é um equilíbrio razoável; combinado com 3 tentativas, você detecta uma queda real em cerca de um minuto.
- **Resend Notification if Down X times consecutively** — defina algo como `10` e o Uptime Kuma liga de novo se o serviço continuar fora do ar depois de mais dez verificações. É uma política de escalonamento tosca, e funciona.

Se você quiser que uma chamada não atendida continue tentando imediatamente em vez de esperar o reenvio, ative **Repetir chamadas com falha** nas configurações do app Echobell.

## Tocar apenas fora do horário de trabalho

Durante o expediente você provavelmente já está de olho em um dashboard, e um celular tocando é uma interrupção de que você não precisava. As variáveis de horário do sistema do Echobell (todas em UTC) fazem um mesmo canal se comportar de forma diferente conforme a hora:

```
up == "0" && (hour >= 17 || hour < 9)
```

Essa condição liga para você apenas fora do intervalo das 09:00 às 17:00 UTC. Aponte um segundo canal, do tipo Normal, para a condição inversa e receba pushes durante o dia:

```
up == "0" && hour >= 9 && hour < 17
```

Lembre-se de compensar o seu próprio fuso horário — essas variáveis são sempre calculadas em UTC. Há um tratamento mais completo em [notificações por janela de tempo com condições em UTC](/pt/blog/time-window-notifications-using-utc-conditions).

## Compartilhando o alerta com seu time

Um canal do Echobell pode ser compartilhado com colegas por um link de inscrição, e cada inscrito escolhe o próprio tipo de notificação. Assim, o mesmo monitor pode fazer tocar o celular de quem está de plantão e chegar como push normal para todo o resto — sem preço por usuário e sem regras de roteamento separadas no Uptime Kuma.

Isso também combina com a postura de privacidade que levou você a hospedar tudo por conta própria: seus monitores continuam na sua infraestrutura, e o Echobell mantém o conteúdo e o histórico das notificações no dispositivo, e não nos servidores dele.

## O que esta configuração não oferece

Ser honesto sobre o limite evita uma migração ruim mais tarde. O Echobell é uma camada de entrega, não uma plataforma de gestão de incidentes. Ele não tem:

- Escalas de plantão nem passagens de turno follow-the-sun
- Árvores de escalonamento que acionam uma segunda pessoa automaticamente
- Linhas do tempo de incidentes, controle de confirmação de leitura ou ferramentas de post-mortem

Se o seu time precisa disso, você precisa de PagerDuty, Grafana Cloud IRM ou algo parecido. O que esta configuração cobre é a lacuna específica que o Uptime Kuma deixa aberta: transformar uma queda detectada em um telefone que realmente toca. Para quem opera sozinho, times pequenos e homelabs, isso costuma ser a exigência inteira.

## Solução de problemas

**O botão Test não faz nada.** Isso é esperado com o payload acima, e confunde todo mundo na primeira vez. Quando você clica em Test, o Uptime Kuma não tem nenhum heartbeat para renderizar, então `{{ heartbeatJSON['status'] }}` vira uma string vazia e nenhuma das condições é atendida. Para testar de verdade, crie um monitor TCP descartável apontando para uma porta em que nada está escutando (`127.0.0.1:9`) e deixe ele falhar.

**O webhook falha de forma intermitente.** Quase sempre é o problema da quebra de linha — verifique se `msg` passa por `strip_newlines`. Só quebra nas mensagens de erro que por acaso contêm uma quebra de linha, e é por isso que parece aleatório.

**O Echobell responde `success: false` com HTTP 200.** O token do canal está errado ou o canal foi excluído. O Echobell responde `200` para um token desconhecido mas de tamanho válido, então verifique o corpo JSON, não o código de status.

**HTTP 405.** O canal está com **POST Only** ativado e algo enviou um GET. O Uptime Kuma usa POST, então isso normalmente significa que você testou a URL no navegador.

**Nada toca, mas a notificação chega.** O tipo de notificação da inscrição está como Normal ou Urgente, não Chamada. O tipo de notificação é escolhido por inscrito, então verifique no aparelho que não está tocando.

## Perguntas frequentes

### O Uptime Kuma consegue fazer uma chamada telefônica nativamente?

Não. O Uptime Kuma tem mais de 90 provedores de notificação, mas todos entregam mensagens. Chamadas telefônicas exigem encaminhar um webhook para um serviço capaz de fazê-las, como o Echobell, ou usar uma plataforma paga de gestão de incidentes.

### Isso funciona com um Uptime Kuma auto-hospedado atrás de um firewall?

Sim. O webhook é uma requisição HTTPS de saída da sua instância do Uptime Kuma, então ela só precisa alcançar `hook.echobell.one`. Sua instância não precisa de endereço público.

### A chamada telefônica atravessa o Não perturbe?

Sim. O tipo de notificação Chamada do Echobell aparece como uma ligação recebida, que toca atravessando o modo Foco do iOS e o Não perturbe. Veja [como contornar o modo Foco do iOS para alertas críticos](/pt/blog/how-to-bypass-ios-focus-mode-for-critical-alerts) para os detalhes e as configurações envolvidas.

### Como paro de receber chamadas quando o serviço se recupera?

Use dois canais com condições — `up == "0"` para o canal de chamada e `up == "1"` para um canal de recuperação com prioridade normal — e aponte uma notificação de webhook para cada um. O Passo 4 acima mostra o passo a passo.

### Várias pessoas podem ser chamadas pelo mesmo monitor?

Sim. Compartilhe o canal com seus colegas e cada inscrito escolhe o próprio tipo de notificação. Todo mundo inscrito no canal de chamada recebe a ligação.

## Conclusão

A configuração é um webhook, um corpo personalizado e duas condições. Ela deixa seus monitores, sua lógica de tentativas e suas páginas de status do Uptime Kuma exatamente como estão, e fecha a distância entre "o monitor percebeu" e "uma pessoa percebeu".

[Baixe o Echobell para iPhone](https://apps.apple.com/app/apple-store/id6743597198?pt=128151925&ct=blog-uptime-kuma-phone-call-alerts-pt&mt=8) ou [pegue no Google Play](https://play.google.com/store/apps/details?id=one.echobell.echobellandroid), depois conecte primeiro um monitor não crítico e deixe ele falhar de propósito. Confie no caminho antes de depender dele.

---

## Relacionados

- [Documentação da integração com o Uptime Kuma](/pt/docs/developer/uptime-kuma)
- [Referência de condições de canal](/pt/docs/conditions)
- [Alertas do Upptime com o Echobell](/pt/blog/upptime-alerts-with-echobell)
- [Alertas por chamada quando sua API cai](/pt/blog/phone-call-alerts-api-downtime)
- [Guia do desenvolvedor para acabar com a fadiga de alertas](/pt/blog/fix-alert-fatigue-developer-guide)
