Self-hosted softswitch · billing · dialer

Run your own carrier-grade phone switch.

A complete softswitch, prepaid billing panel and predictive dialer you install on one Debian server. Trunks, routing, DIDs, CDRs and per-second billing — yours, on your own box.

  • 1,000 downloads
  • Asterisk 20
  • Debian 12
  • Panel in 10 languages
Live call routing Illustration
Caller SIP INVITE
KatoCall rate · route · bill Connected via B
Carrier A Rejected
Carrier B Answered
Carrier C —
Destination 0:42 Answered
Illustration: a caller's call reaches KatoCall, which rates it, sends it to the least-cost carrier, fails over to the next carrier if one rejects it, and connects the destination.
1,000downloads
14install steps, then a full self-check
10languages for the panel and handbooks
1server runs the whole switch

Platform

One server. The whole switch.

Every layer of KatoCall runs on a single Debian 12 server that you control — from the SIP stack to the billing ledger to the panel your customers sign in to.

  1. Admin panel & customer portal

    Operators run the switch; customers see their own calls.

    web
  2. Billing engine

    Rate cards, per-second rating and a PostgreSQL ledger.

    PostgreSQL
  3. Live call bridge

    Follows every channel in real time and writes the CDR at hangup.

    AMI
  4. Asterisk 20 with PJSIP

    Trunks, endpoints and DIDs, generated from the panel.

    SIP
  5. Hardened Debian 12

    Firewall, fail2ban and TLS, set up by the installer.

    OS

How it works

From carrier to CDR in four steps.

Set it up once in the panel. Every call after that follows the same path.

  1. Connect your carriers

    Add SIP trunks by IP or by registration, over UDP, TCP or TLS.

  2. Add your customers

    Give each account IP authentication or a softphone login, a rate card and a balance.

  3. Route every call

    Routing groups pick trunks by prefix, priority and weight, and fail over when a carrier rejects.

  4. Bill and report

    Calls are rated per second, watched live and saved as CDRs you can analyse and export.

What's inside

Everything a switch needs, in one panel.

Not a stack of parts to wire together — billing, routing, inbound, outbound and security ship as one installed system with a single admin panel.

Prepaid billing

Per-second rating from customer and provider rate cards, live balances backed by a real ledger, and margin on every call.

Least-cost routing

Routing groups pick trunks by prefix, priority and weight, with failover to the next carrier when one rejects the call.

Inbound DIDs

Point a carrier's numbers at accounts and forward them anywhere, with the caller ID your carrier requires enforced on the way out.

Predictive dialer

Optional outbound campaigns and an IVR menu, pacing calls against agent availability — installed only if you want it.

Hardened by default

fail2ban on SIP, the panel and SSH with permanent bans, a firewall the installer configures, and free Let's Encrypt TLS.

Live calls & CDRs

Watch every call on the switch in real time — who's billed, the carrier, the cost as it climbs — then export the CDRs to CSV.

Call routing

Least-cost routing with automatic failover.

Each call is matched against its account's routing group. If a carrier rejects it, the next trunk in line takes the call.

  • Match calls by destination prefix
  • Order trunks by priority and share load by weight
  • Fail over to the next carrier when one rejects
  • Send the caller ID each carrier requires

SIP & VoIP

Carrier-grade SIP, configured for you.

The panel writes the PJSIP configuration, and every value is validated before it reaches Asterisk.

  • PJSIP on Asterisk 20

    A modern SIP stack, built and configured by the installer.

  • UDP, TCP and TLS

    Pick the transport for each trunk.

  • IP or registration trunks

    Authenticate carriers by address or by username and password.

  • Carrier IP pools

    Trust a carrier's whole signalling range with IPs and CIDR blocks.

  • Customer endpoints

    IP-authenticated PBXs or registered softphones.

  • NAT-aware

    Set the public address and local networks from the panel.

  • DIDs in E.164

    Point inbound numbers at accounts and forward them anywhere.

  • Codecs and media

    A codec list per endpoint, with proxied RTP or direct media.

  • Stuck-call protection

    RTP timeouts end calls whose audio has stopped.

One call, message by message
CallerKatoCallCarrierINVITE100 TryingINVITE180 Ringing180 Ringing200 OK200 OKACKACKRTPRTPBYEBYE200 OK200 OKCDR written

Analytics

See every call as it happens.

Live calls stream to the panel in real time. When they end, the CDRs are there to filter, analyse and export.

  • Live calls with the billed account, carrier and running cost
  • CDR statistics by period, account, supplier and prefix
  • Billed minutes, revenue and margin on every call
  • CDR export to CSV

Reliability

Built to keep running.

The details that matter once real traffic is flowing.

Verified install

The installer checks its own work and reports every result before you take traffic.

Update notices

The switch checks for new versions daily and tells you. It only updates itself if you opt in.

Survives restarts

Calls already in progress are picked back up after a reconnect, and billing resumes from the real answer time.

Ledger-backed balances

Every charge and top-up is recorded as a ledger entry in PostgreSQL.

Nightly backups

The database and the switch's secrets are backed up every night, and logs are rotated.

Works with what you have

  • Any SIP carrier
  • CSV rate import with column mapping
  • CSV CDR export
  • Let's Encrypt HTTPS

Security

Hardened from the first boot.

A phone switch on the public internet is scanned constantly. KatoCall ships with its defences already switched on.

  • fail2ban on SIP, the panel and SSH
  • Permanent bans you manage from the panel
  • A firewall configured by the installer
  • Free HTTPS with Let's Encrypt
  • Sign-in protected against cross-site request forgery
  • Every value written to Asterisk is validated

Install

One command. One box.

A fresh Debian 12 server is all you bring. The installer builds Asterisk, sets up PostgreSQL, the panel, the firewall and fail2ban, and verifies the lot.

v1.0.8 self-hosted · run it on your own server

Run this on a fresh Debian 12 server, as root:

curl -fsSL https://katocall.com/get.sh | sudo bash

It fetches everything, verifies the checksum, and runs the full install.

Then open your server in a browser and sign in — you'll set a new password right away:

useradmin
passKatocall
1,000 downloads

You'll need

  • Debian 12 (Bookworm), 64-bit — a fresh VPS
  • 2 CPU cores, 4 GB RAM, 20 GB disk
  • A public IPv4 and root / sudo
  • A SIP trunk from your carrier
  • A domain name — only if you want HTTPS

Documentation

Install & setup handbooks, in ten languages.

A complete guide to installing the switch and setting up trunks, customers, DIDs and the dialer — plus a “?” beside every field in the panel itself.

FAQ

Questions, answered.

What do I need to run KatoCall?

A fresh Debian 12 (64-bit) server with 2 CPU cores, 4 GB RAM and 20 GB of disk, a public IPv4, root access and a SIP trunk from your carrier. A domain name is only needed for HTTPS.

How do I update?

Run the update command on your server. It verifies the download before installing, and your switch checks for new versions every day and tells you when one is available.

curl -fsSL https://katocall.com/update.sh | sudo bash
Which carriers does it work with?

Any carrier that gives you a SIP trunk — authenticated by IP or by registration, over UDP, TCP or TLS.

Do I have to install the dialer?

No. The predictive dialer and IVR are optional and only installed if you ask for them.

Can my customers see their own calls?

Yes. Each customer gets a portal with their own call records, DIDs, rates and transactions — never anyone else's.

Which languages are supported?

The panel and the handbooks are available in ten languages: English, Spanish, Portuguese, French, German, Russian, Chinese, Japanese, Arabic and Hindi.

Your own switch, running today.

One fresh Debian 12 server and one command. Everything else happens in the panel.

Read the documentation

curl -fsSL https://katocall.com/get.sh | sudo bash

Contact

Get in touch.

Questions, setup help, or a bug — send a message and we'll get back to you.