unsubbed.co

Fonoster

Released under MIT, Fonoster builds and deploy powerful voice and messaging applications on self-hosted infrastructure.

Programmable telephony, self-hosted. No per-minute anxiety, no vendor lock-in — just what you actually get when you run it yourself.

TL;DR

  • What it is: Open-source (MIT) programmable telephony platform — voice APIs, a NodeJS SDK, and a VoIP/SIP stack that you own entirely [README][website].
  • Who it’s for: Developers building voice applications — IVRs, call routing, voice bots — who want Twilio’s API model without Twilio’s per-minute billing. Also useful for businesses running internal PBX and wanting full control over the phone stack.
  • Cost angle: Twilio’s voice API charges per minute plus per phone number. Fonoster self-hosted runs on your own VPS with your own SIP trunk, so the marginal cost per call approaches the wholesale carrier rate, not the Twilio markup.
  • Key strength: Clean, programmable voice server — answer, say, gather, dial, record — all exposed through a TypeScript SDK with sensible verbs. Non-trivial telephony made approachable [README].
  • Key weakness: 7,726 GitHub stars is healthy but far behind Twilio’s ecosystem. No SMS API out of the box, limited third-party integrations, SSO is listed as “Coming Soon” even on the Advanced (contact-sales) tier. Community is active on Discord but small [website][README].

What is Fonoster

Fonoster is a self-hostable programmable telephony server. The pitch is direct: “The open-source alternative to Twilio” [README][website]. That’s not marketing for a vague competitor — it’s a precise technical claim. Twilio’s core product is an API that lets developers make and receive calls, play audio, collect DTMF tones, and route calls to SIP or PSTN endpoints. Fonoster does all of that, running on your infrastructure, against your SIP trunk, with your data never leaving your servers.

Under the hood it’s a Node.js service that wraps Asterisk (or a similar VoIP core) and exposes a gRPC API with a NodeJS/TypeScript SDK on top. You write a “Voice Application” — a server-side function that receives an incoming call event and responds with a chain of voice verbs: answer(), say(), gather(), dial(), hangup(). The SDK reads like something between Twilio’s TwiML and an async event loop. The code in the README is representative of real usage — the API surface is small and sensible [README].

The project is roughly five years old, sits at 7,726 GitHub stars, and is MIT-licensed [merged profile]. The backing company (Fonoster Inc.) is small and US-based; the community has around 300+ Discord members as of mid-2023 [website]. This is a legitimate infrastructure project run by people who know telephony, not a SaaS rebrand with an open-source tier.


Why people choose it over Twilio, Plivo, and Wazo

The third-party review coverage on Fonoster is thin — most Twilio alternative roundups focus on paid competitors (Plivo, Vonage, Bandwidth) and skip open-source entirely [5][6]. When Fonoster does appear in comparison lists, it shows up as the answer to one specific question: what do you use when you want Twilio’s API model but can’t justify the per-minute pricing at scale? [5]

Versus Twilio. Twilio charges per minute for voice calls (inbound and outbound), per phone number per month, and adds fees for features like recording, transcription, and conferencing. If you’re making thousands of calls a month, those costs compound. Fonoster moves you to a direct SIP trunk relationship — you pay the carrier for minutes, not the platform [website][README]. The AlternativeTo listing for Twilio includes Fonoster among the open-source options, alongside Wazo, in a field otherwise dominated by paid SaaS platforms [5]. The SMSCountry comparison guide [6] lists Twilio’s strengths as diverse APIs and rich analytics, which is exactly the gap Fonoster has to close on the feature side.

Versus Plivo and Vonage. These are simpler comparisons — Plivo and Vonage are closed-source SaaS with usage-based pricing. They’re Twilio with a lower bill, not a fundamentally different ownership model. Fonoster is the only choice if self-hosting and avoiding recurring per-call fees is the actual requirement [5].

Versus Wazo. Wazo appears alongside Fonoster in the AlternativeTo Twilio listing [5] and is the closest architectural cousin — both are open-source, self-hosted SIP servers with programmable APIs. Wazo is older, heavier, and more enterprise-oriented (it includes video and instant messaging, not just voice). Fonoster is leaner and more developer-focused, with a cleaner SDK and a tighter scope. If you want a full IPBX, Wazo; if you want a programmable voice API server, Fonoster.

The real reason people pick Fonoster isn’t feature parity — Fonoster doesn’t match Twilio’s feature breadth yet. The reason is: you own the stack. Every call record, every audio file, every authentication token lives on your server. For businesses handling sensitive calls (legal, medical, financial) or operating under data residency requirements, this is the deciding factor, not the pricing math [website].


Features

Based on the README, official documentation, and website:

Voice Application Engine:

  • Programmable voice verbs via TypeScript SDK: Answer, Hangup, Play, PlayDtmf, Say, Gather, SGather, Stream, Dial, Record, Mute, Unmute [README]
  • Incoming call event handling with ingressNumber, sessionRef, appRef context [README]
  • Streaming audio support via Stream verb — bidirectional, for real-time audio processing [README]
  • Speech gathering with GatherSource.SPEECH — voice input, not just DTMF [README]
  • DTMF gathering with configurable maxDigits and finishOnKey [README]

Call Origination:

  • SDK-based outbound call creation with Calls.createCall() [README]
  • Call metadata passthrough to Voice Application [README]
  • PBX routing: Dial to SIP agents or PSTN numbers [README]

Platform:

  • Multitenancy with RBAC [README]
  • OAuth2 and JWT authentication [README]
  • Plugins-based CLI for managing workspaces, domains, numbers, and apps [README]
  • S3-compatible storage for recorded audio [README]
  • TLS with Let’s Encrypt for API endpoints [README]
  • Google Speech API integration for TTS and ASR [README]

Self-host deployment:

  • Docker Compose deploy path [docs.fonoster.com][1]
  • Envoy proxy for gRPC [1]
  • RSA key generation for JWT signing [1]
  • Configurable via .env and integrations.json [1]

What’s missing compared to Twilio:

  • No built-in SMS API (Twilio’s core product is SMS + voice combined)
  • No video conferencing API
  • No native WhatsApp/messaging channel support
  • SSO is “Coming Soon” even on the enterprise tier [website]
  • No built-in analytics dashboard — you get logs, not insights

Pricing: SaaS vs self-hosted math

Fonoster Cloud (their managed SaaS):

  • Free: 1 Workspace, 1 Domain, 30 mins/month, 1GB Storage, 1-week log retention, community support [website]
  • Pro: 10GB Storage, unlimited Workspaces, unlimited Domains, 520 mins/month free then pay-as-you-go, 30-day log retention, email support [website]
  • Advanced: Volume commitment pricing, technical onboarding, SSO (Coming Soon), Customer Success Manager, SLA support — contact sales [website]

The managed cloud pricing is transparent for the free and Pro tiers. The “520 mins/month free then pay-as-you-go” on Pro is interesting — that’s a real number (roughly 8-9 hours of monthly call time) before the meter starts. The per-minute rate on the PAYG portion is not listed publicly [website].

Self-hosted (Community Edition):

  • Software: $0 (MIT) [README]
  • Infrastructure: $6–20/month for a VPS (Hetzner, Contabo, DigitalOcean)
  • SIP trunk: ~$0.005–$0.012/min wholesale (Twilio Elastic SIP Trunking is $0.004/min, retail SIP carriers range higher)
  • Your time: setup is non-trivial (see Deployment section)

Twilio for comparison:

  • Voice inbound: $0.0085/min + phone number fees ($1/mo per number)
  • Voice outbound: ~$0.013/min
  • At 1,000 minutes/month (modest volume for a real business): roughly $13–$22 in voice charges alone, before number fees, recording fees, or any AI/transcription

Concrete math for a voice-heavy use case:

Say you’re running a small customer service operation with 5,000 minutes/month of inbound calls and an IVR that records calls. On Twilio: ~$42 in voice minutes + $3 in phone numbers + recording costs — call it $50–$70/month, growing linearly with volume. On Fonoster self-hosted with a wholesale SIP trunk: ~$25–$50 in SIP minutes + $6 for the VPS = roughly the same or cheaper, but the cost curve is flat after setup. At 50,000 minutes/month, Twilio is $500+; Fonoster is $200 in trunking + $6 VPS.

The math works. The asterisk is: only if you can set it up and maintain it.


Deployment reality check

The official Docker deployment guide [1] is detailed but requires hands-on technical work. It’s not a one-click install.

What the setup actually involves:

  1. Clone or download the example compose.yaml and config directory
  2. Generate RSA keypair via OpenSSL for JWT signing
  3. Configure .env, envoy.yaml, and integrations.json
  4. docker compose up -d

The directory structure is specific — the docs are explicit that if your layout doesn’t match exactly, go back and review [1]. This isn’t a warning for drama; it’s because the Envoy proxy config and key paths have to align precisely.

Beyond the basics:

  • You need a SIP trunk provider (VoIP.ms, Twilio Elastic SIP Trunking, Bandwidth, or a local carrier) — Fonoster doesn’t provide phone numbers itself
  • DNS setup for your SIP domain
  • TLS certificate via Let’s Encrypt (built-in, but needs a real domain)
  • Firewall rules for SIP ports (5060/UDP, 5061/TLS, RTP range)

What can go sideways:

  • SIP NAT traversal is the classic telephony nightmare — if you’re behind a NAT (home server, some VPS providers), you’ll need STUN/TURN or a public IP configured correctly. This isn’t Fonoster-specific, but it will bite first-timers.
  • The Google Speech integration (for TTS/ASR) requires a Google Cloud API key and separate setup — it’s not bundled [README].
  • SSO is listed as “Coming Soon” on the Advanced tier [website] — don’t plan your auth stack around it.

Realistic time estimate:

  • Experienced DevOps engineer: 2–4 hours to a working instance with SIP trunk connected
  • Developer with some Linux experience: a full day, including SIP troubleshooting
  • Non-technical founder: this is not the tool you deploy yourself. Budget for a deployment service or a technical hire.

The documentation quality at docs.fonoster.com is reasonable — the Docker guide [1] is step-by-step with actual commands. That said, telephony has enough moving parts that a clean README doesn’t prevent an afternoon of SIP debugging.


Pros and cons

Pros

  • MIT license with real meaning. You can self-host, fork, embed in your own product, build a white-label communications SaaS on top of it — no commercial agreement needed [README]. This is uncommon in the telephony space.
  • Clean, typed SDK. The TypeScript voice API is straightforward: verb-based, async, readable. Developers who’ve used Twilio’s SDK will feel oriented quickly [README].
  • Full data ownership. Call recordings, logs, and credentials never leave your infrastructure. For regulated industries or privacy-conscious businesses, this is the entire value proposition [website].
  • No per-minute platform markup. Once self-hosted, you pay your SIP trunk, not Fonoster. At volume, this is material savings [README][website].
  • Programmable from day one. Unlike PBX-first tools (FreePBX, Asterisk GUI) that bolt on APIs later, Fonoster is API-first by design [website][README].
  • Active Discord community with 300+ members; project has real contributors and commit history [website].

Cons

  • No SMS. Twilio’s most common use case — sending verification codes, notifications, alerts via SMS — isn’t available in Fonoster. This is a significant scope gap if SMS is your use case [merged profile].
  • Thin third-party review coverage. Unlike n8n or Activepieces, Fonoster doesn’t have a body of independent deep reviews. Most appearances in lists are one-liners, not evaluations [2][5][6]. You’re relying heavily on primary docs and your own testing.
  • SSO is “Coming Soon” even on the highest paid tier [website]. In 2026, missing SSO on an enterprise-positioned product is a gap.
  • Telephony expertise required. SIP trunking, NAT traversal, RTP ports — these aren’t optional background knowledge. If your team doesn’t have telephony experience, the self-hosted path has a steep learning curve regardless of how clean the SDK is.
  • Small company, small community. 7,726 stars is respectable but it’s one-third of what projects like n8n have. The Discord has a few hundred members, not tens of thousands. Longevity risk is real for a project this size in a competitive space [merged profile][website].
  • No built-in analytics. Twilio’s dashboard shows delivery rates, call logs, and error breakdowns. Fonoster gives you logs; you build the analytics yourself [website].
  • Managed cloud pricing opacity. The PAYG rate beyond 520 free minutes on the Pro plan is not published on the pricing page [website]. You have to sign up to find out.

Who should use this / who shouldn’t

Use Fonoster if:

  • You’re a developer building a voice application — IVR, call routing, voice bot, automated outbound calling — and you want a clean TypeScript SDK instead of XML-based TwiML.
  • Your call volume is high enough that Twilio’s per-minute fees are a material budget line.
  • You handle sensitive calls (legal, medical, HR) and data residency or privacy requirements make cloud telephony SaaS a non-starter.
  • You want to embed telephony capabilities in your own product under your own brand, royalty-free.
  • You already have a SIP trunk or know how to set one up.

Skip it (stick with Twilio) if:

  • You need SMS, WhatsApp, or multichannel messaging — Fonoster doesn’t cover this.
  • Your team has zero telephony background and no DevOps capacity. The setup is real work, and SIP debugging with no prior experience is painful.
  • You need enterprise compliance features (SSO, audit logs, SOC 2) today — Fonoster isn’t there yet.
  • You’re building a prototype and just need something working in 20 minutes — use Twilio free trial, validate the concept, then consider migration.

Skip it (pick Wazo) if:

  • You need a full IPBX with video, instant messaging, and presence, not just programmable voice APIs.
  • Your requirements are more “replace our phone system” than “build a voice application.”

Alternatives worth considering

From the AlternativeTo listing and direct research:

  • Twilio — the incumbent. Best documentation, largest ecosystem, SMS + voice + email in one platform, fully managed. Per-minute pricing hurts at scale. Fully closed source [5].
  • Plivo — Twilio-style API, generally lower pricing, also SaaS-only. A cheaper Twilio, not a self-hosted option [5][6].
  • Vonage (Nexmo) — similar API model, enterprise focus, closed source. Now part of Ericsson, which is either reassuring or concerning depending on your viewpoint [6].
  • Wazo — the self-hosted IPBX cousin. Open source, heavier, more enterprise features, more telephony expertise required. Better if you want a full phone system rather than a programmable API layer [5].
  • Asterisk (raw) — the VoIP engine that underlies many of these tools. Fonoster essentially gives you Asterisk with a sane API wrapper. If you know Asterisk deeply, evaluate whether Fonoster’s layer adds value or gets in your way.
  • FreeSWITCH — another open-source telephony engine, lower-level, higher complexity, used by telcos. For teams with serious telephony engineering capacity.
  • SignalWire — founded by the original FreeSWITCH team, cloud-hosted, Twilio-compatible API, competitive pricing. Not self-hosted, but a middle ground worth noting [5].

For a non-technical founder, the realistic choice is Fonoster vs. Twilio for the first voice project: start on Twilio to validate, self-host Fonoster once you know the call volume and can justify the infrastructure overhead.


Bottom line

Fonoster is the most developer-honest “Twilio alternative” in the self-hosted space. It doesn’t try to replace Twilio’s full communications platform — it takes the programmable voice API piece, puts it in a TypeScript SDK, and makes it deployable on your own infrastructure under an MIT license. The trade-offs are real: no SMS, no built-in analytics, SSO still coming soon, and a telephony knowledge prerequisite that most no-code guides won’t prepare you for. But for developers who know what they’re building — a voice bot, an IVR, an outbound calling tool — and want to stop paying per-minute markups on infrastructure they can own outright, the math and the architecture both point the same direction. The afternoon of setup is the cost of entry. Once it’s running, the recurring bill is your SIP trunk rate, not Twilio’s.

If the setup is the blocker, that’s exactly what unsubbed.co’s parent studio upready.dev deploys for clients — one-time setup, you own the infrastructure.


Sources

  1. Deploy with Docker — Fonoster Documentation. https://docs.fonoster.com/self-hosting/deploy-with-docker
  2. AlterOpen — LiveKit Alternatives (listing Fonoster). https://alteropen.com/alternative/livekit-livekit
  3. OpenAlternative — Open Source Projects tagged “Cloud”. https://openalternative.co/tags/cloud
  4. FreestuffDev — Free tools and services for Developers. https://freestuff.dev/tags/application-tracker/
  5. AlternativeTo — 12 Twilio Alternatives: Similar Sites & Apps in 2026. https://alternativeto.net/software/twilio/
  6. SMSCountry Blog — The 5 Best Twilio SMS Alternatives To Try Out. https://www.smscountry.com/blog/twilio-alternative/

Primary sources:

Features

Authentication & Access

  • Multi-User Support
  • OAuth / Social Login
  • Role-Based Access Control

Integrations & APIs

  • Client SDKs
  • Plugin / Extension System
  • REST API

Security & Privacy

  • Encryption
  • SSL / TLS / HTTPS