A ringing phone wakes someone. A chat message at 3am does not.
CallPing turns any webhook into a real phone call to the person
who’s actually on call. No AI voice reading your alert text,
no recorded announcement — the call itself is the alert. Setup
is one webhook URL; after that, your monitoring stack does the
paging.
Chat is silent at night. That’s not a bug — it’s how you configured it.
It’s 03:14. Something broke.
Your monitoring tool fired a webhook, your paging channel pinged
Slack, and Slack put a badge on an icon nobody is looking at.
That’s not a failure of the tooling — it’s the
tooling working exactly as designed. You turned notification sounds
off on purpose, because if every warning-level ping buzzed your phone
at night, you’d have muted the whole channel within a week.
The problem is that “quiet enough to sleep through the
noise” and “loud enough to wake you for the real
thing” are the same setting. You can’t tune chat
notifications to solve both. Something has to be the exception
— a channel that’s allowed to interrupt.
A phone call is built for exactly that. It’s the one
notification type telecom infrastructure has always treated as
urgent by default: it rings, it can ring through Do Not Disturb on
many phones when the caller is an allowed contact, and it
doesn’t get triaged into an unread badge. CallPing’s
whole job is being the bridge between “my monitoring tool
knows something’s wrong” and “a phone starts
ringing.”
How it works
Three steps. No agent to install.
01
Your monitoring tool POSTs to a URL we give you.
Datadog, Grafana, Prometheus Alertmanager, Sentry, UptimeRobot,
Cloudflare, Stripe, a curl in a cron job —
anything that can make an HTTP request. We accept any method;
JSON bodies are parsed into fields, and anything else —
form-encoded, plain text, whatever your tool sends — is
captured as the alert message. No software development kit
(SDK), no agent running on your infrastructure.
02
Routing rules decide who.
A scenario matches the alert against your rules and picks an
action. Match on severity, or on any other field your payload
sends — environment, service name, region. Twelve operators
(in, contains, starts_with,
gt, exists, and more) cover most
conditions. First matching rule wins; if nothing matches, the
scenario’s own fallback decides — ring the on-call
schedule, ring everyone, or ring the primary phone, your call.
03
The phone rings.
We queue it, dial out over SIP through our Asterisk fleet, and
the phone rings. No recorded voice, no interactive voice
response (IVR) menu. Answer to
confirm you’ve got it, or let it go to the next step in
your escalation chain if you don’t pick up.
Fig 01 — The signal path · webhook to ringing phone
Built for the on-call rotation you actually run, not a generic ticket queue.
Escalation chains
Nobody answers? It doesn’t just stop. Chain up to 10 steps:
if the first call goes unanswered, wait N seconds and try the next
target — a specific person, the whole on-call schedule,
everyone, or a project team. The chain stops the moment someone
answers or actively declines — that’s treated as
acknowledged, not passed along to the next person.
On-call schedules
Weekly templates, plus real-world exceptions. Set recurring weekly
hours per phone, then override individual dates for holidays,
swaps, or on-call handoffs. Shifts can run to end-of-day at 24:00
for true round-the-clock coverage. Import or export a whole
rotation as CSV, or manage it visually on a monthly calendar.
Content-based routing
Route on more than just severity. Match on any field your webhook
sends — environment, service,
region, a custom tag — using twelve operators.
Database alerts go to the database rule, checkout alerts go to a
different one, without rewriting your monitoring tool’s
payload.
Projects and member routing
Route a specific alert to a specific team, or a specific person.
Group team members into Projects — “Database
on-call,” “Payments team” — and route
rules to just that group, or target one named person directly. A
named person always gets a fallback to the primary phone if
they’re unreachable; a Project or on-call schedule with
nobody actually on shift rings nobody instead — and flags
the gap loudly rather than paging someone off rotation.
Answering-machine detection In progress + multi-ring handling
We’re building CallPing to catch voicemail before it
quietly swallows your alert — detecting when a call has
been picked up by a machine instead of a person, so it won’t
get mistakenly logged as “answered.” Until that
ships, a voicemail pickup counts the same as a real answer. What
is live today: first-ack-wins logic on multi-target rings —
whoever picks up first claims the alert and cancels the others.
Round-robin dial strategy
Fair rotation, not the same person every time. When a rule can
reach more than one on-call phone, CallPing rotates who gets
called first instead of always ringing the same number —
useful for teams sharing incident load evenly across a shift
pattern.
Multi-org and multi-owner teams
Belong to more than one team. Share ownership of one. One login
can hold membership in any number of organizations, with a
switcher to move between them. Any org can have more than one
Owner — no single point of failure if the person who set it
up is on vacation.
On-call analytics In progress
See who’s actually carrying the load. A dashboard view of
answer rates and per-member call volume, so you can spot an uneven
rotation before it burns someone out.
Reliability
Delivery is the product, so we didn’t put all the calls through one door.
CallPing runs on 5 registered PBX servers across 4 cloud providers,
but only 3 of them currently carry a live SIP trunk and can place a
call — the other 2 are held in reserve as standby. Those 3
span 2 providers and 5 SIP trunks between them, so a trunk having a
bad day usually has somewhere else to go. If a trunk fails to
connect a call, the next attempt automatically routes through a
different server and a different trunk — a health-aware
system picks a working path rather than retrying the same broken
one. Calls are also routed by destination country, so we’re
not forcing an international number through a carrier that
doesn’t reasonably serve it.
Fig 02 — SIP failover · retry routes through a different server and trunk · only 3 of 5 servers carry a trunk today
CallPing started as our own paging problem, not a product idea. We
built it for our support operation and ran it against our own
on-call rotation in production before anyone outside our own
company ever touched it. That hasn’t changed: our own 3am
pages — the calls that wake one of us up — go through
the exact same system you’ll be using once sign-ups open.
It’s been carrying real production call traffic since March
2026 — thousands of our own on-call calls and counting. We
didn’t build a demo and work backward into a pitch; we built
the pager we needed ourselves, and when sign-ups open, you’ll
be able to use it too.
There’s no separate “enterprise-grade” version of
this. What answers our 3am is what will answer yours.
Scope, honestly
What CallPing doesn’t do.
No AI voice. No recorded messages. The call itself
is the alert — there’s no text-to-speech reading your
incident description, no “press 1 to acknowledge” menu.
If you need the details, that’s what your monitoring
tool’s dashboard is for; we just get the phone ringing.
We’re not an incident-management platform.
No war rooms, no postmortem tooling, no AIOps correlation. We do one
thing: turn a webhook into a phone call, reliably. If you need the
rest of that surface, you already know which platforms provide it.
Do not use CallPing as the only alerting channel for
life-critical or safety-critical systems. We depend on
third-party SIP trunks and downstream telephone carriers, any of
which can fail independently of us. Always keep a redundant alerting
path sized to how much a missed alert would actually cost you.
FAQ
Common questions
What actually rings — a recorded message or a real call?
A real phone call from a CallPing caller ID. No AI voice, no
recorded announcement, no IVR menu. The call itself is the alert
— pick up to confirm you got it, or check your monitoring
tool for the details.
Will it ring through if my phone is on Do Not Disturb?
Depends on your phone, not on us. CallPing can’t override
your device’s Do Not Disturb (DND) setting directly, but
many phones let you allow calls from specific contacts through
DND. CallPing users save the
caller-ID numbers as a contact and enable
“allow calls from this contact”
— a one-time step during setup.
Which monitoring tools work with CallPing?
Anything that can POST a webhook. That covers Datadog, Grafana,
Prometheus Alertmanager, Sentry, UptimeRobot, Better Stack,
Healthchecks.io, Stripe, GitHub Actions, a custom script running
curl — if it can make an HTTP request, it
works.
What stops a misbehaving alert from calling me constantly?
Two brakes, both automatic. A 60-second cooldown per phone number
— the same number won’t be called twice inside 60
seconds no matter how many rules resolve to it. And a
200-calls-per-organization-per-day hard cap, so a runaway alert
source can’t ring you all day. Neither needs to be
configured — they’re on by default.
Is CallPing safe to use for life-critical or safety-critical systems?
No — don’t use it as your only channel for
those. CallPing is operator paging: it depends on
third-party SIP trunks and telephone carriers, any of which can
fail independently of us. Keep a redundant alerting path
appropriate to how much a missed call would actually cost.
What happens if the first person doesn’t answer?
If the rule has an escalation chain configured, CallPing waits
the step’s delay and tries the next target — another
person, the on-call schedule, everyone, or a project team, up to
10 steps deep. If there’s no chain configured, the call is
simply logged as unanswered.
Do I need to install anything on my servers?
No. There’s no agent, no SDK, no client library. You get a
webhook URL; your monitoring tool sends requests to it. Setup is
copying a URL into a config field.
One webhook URL. The phone does the waking up.
Setup is a webhook URL in your monitoring tool’s alert config
and one test alert to confirm the phone rings. We’re gathering
interest before opening sign-ups — the button below gets you on
the list.