No Twilio
callytics runs a full SIP stack on your own server. No API keys, no per-minute charges, no vendor dependency. Your calls never leave your infrastructure.
docker compose up and you have a full call center with IVR builder, SIP trunks, live dashboard, and recordings — no Twilio account needed.
docker compose up -dFreePBX is a PBX admin tool. callytics is a programmable telephony platform for developers.
| FreePBX | callytics |
|---|---|
| Install method: ISO on bare metal | Install method: docker compose up -d |
| Call logic: Static dialplan files | Call logic: ARI + Stasis, database-driven |
| Live changes: Reload required | Live changes: Instant — no restart |
| Developer API: None | Developer API: REST API + WebSocket events |
| Outbound dialer: Paid module | Outbound dialer: Included free |
| Remote workers: Port forwarding | Remote workers: WireGuard VPN, QR code provisioning |
| SIP firewall: None | SIP firewall: Built-in, GeoIP blocking |
callytics runs a full SIP stack on your own server. No API keys, no per-minute charges, no vendor dependency. Your calls never leave your infrastructure.
Build call flows on a React Flow canvas. Each node — play audio, collect digits, route to queue, transfer, run a webhook — is wired visually. Flows are stored in PostgreSQL and apply to live calls the moment you publish.
A single docker compose up -d starts Asterisk, the Stasis execution engine, NestJS API, PostgreSQL, Redis, and the React frontend. No ISO installs, no bare metal provisioning.
Drag and drop nodes onto a canvas to design your call flow. Connect a menu node to business hours logic, fallback to voicemail, or escalate to a live queue. Publish and the change takes effect on the next incoming call.
Route inbound calls into named queues. Operators log in and out of queues from the dashboard. The queue engine tracks wait time, abandonment, and live agent state in Redis — no database polling on the hot path.
Upload a CSV of numbers and launch a campaign. The sliding window dialer controls concurrency — you set how many simultaneous calls to run. Failed calls are retried automatically based on your retry policy.
Remote agents connect their SIP softphone through a WireGuard tunnel. You generate a peer config and QR code from the dashboard. Once connected the softphone registers as if it were on the local network — no port forwarding, no NAT problems.
callytics watches SIP REGISTER attempts and blocks IPs that exceed your threshold. Country-based blocking is built in using MaxMind GeoIP. Blocked IPs appear in the dashboard with options to whitelist or permanently ban.
Create a snapshot of your PostgreSQL database and recordings volume from the dashboard. Download the archive, store it offsite, and restore it with one click. Useful before upgrades or migrations.
Every inbound call passes through two planes. The control plane handles configuration, API requests, and database writes. The voice plane handles the real-time call — Asterisk bridges the SIP session, Stasis executes your published flow node by node, and Redis carries live telemetry back to NestJS.