FreeSoft Labs All articles
Cost Analysis

FreePBX on a $95 OptiPlex: What a 30-Day Telecom Bill Looks Like With Three SIP Trunks

FreeSoft Labs
FreePBX on a $95 OptiPlex: What a 30-Day Telecom Bill Looks Like With Three SIP Trunks

The quote was fine, in the way that a lease is fine. Twelve extensions, one main number, an auto-attendant, voicemail-to-email, and softphones for the two folks who work from home. Twenty-two dollars a seat per month, ninety-nine to port the number, and a three-year term with a modest bump built into year two. Call it $3,168 a year before tax and fees, which is not an outrageous number for a business phone system in 2026.

It's just that it's a recurring number for something a $95 desktop from 2018 can do.

So we spent thirty days finding out whether the DIY version actually pencils out — and where the bill hides.

What came out of the storage closet

The host was a Dell OptiPlex 7060 SFF we grabbed off a surplus lot: i5-8500, 16GB of RAM, a 256GB SSD, and a case fan that sounds like a small drone. Total with shipping and tax, $113. We added a $60 UPS because a phone system that reboots during a brownout is a phone system that gets you yelled at.

On top: Debian 12, the FreePBX 17 distro, and Asterisk underneath. Install took about forty minutes, most of which was waiting. The rest of the hardware was already in the office — twelve Grandstream GXP1625 desk phones the previous tenant left behind, plus one HT801 analog adapter for the fax line and the postage meter, both of which turned out to be non-negotiable.

That last part is worth pausing on. Every US small office we've poked at has at least one analog survivor: a fax, an alarm panel, an elevator phone, a credit card terminal, a postage meter. Free software does not make those go away. A $40 ATA does, mostly.

Three trunks, one call load

We ran Telnyx, VoIP.ms, and Twilio trunks against the same 12-extension dial plan, then rotated which one carried the bulk of traffic week by week. Roughly 1,400 outbound and 1,100 inbound minutes a month, four DIDs, three of them needing E911. Numbers below are what we were quoted in October 2026 — yours will move.

Line item Telnyx VoIP.ms Twilio
DID per month ~$1.00 ~$0.85 ~$1.15
Outbound per min ~$0.007 ~$0.009 ~$0.0085
Inbound per min ~$0.0035 ~$0.009 ~$0.0085
E911 per number/mo ~$1.50 ~$1.50 ~$1.00
CNAM lookup per-call per-call per-call

All three landed between $19 and $27 a month for our actual traffic. The spread is smaller than the spread in documentation quality, which is what actually decides these things.

Call quality, honestly

On a wired desk phone over a business cable connection, we could not tell the three apart in blind tests. G.722 on all of them, jitter under 8ms, no dropped calls in thirty days except one we caused ourselves by rebooting the switch mid-afternoon.

The softphones were a different story. Two laptops on office Wi-Fi, one of them in a back room behind two walls and a microwave, produced the only genuinely bad calls of the month — chop, half-second delay, the works. That's a network problem wearing a phone costume, and no trunk provider fixes it. If you're going to lean on softphones, budget for a wired dock or an access point, because that cost lands on you either way.

Spam calls: STIR/SHAKEN is a floor, not a ceiling

Roughly 40% of our inbound calls in the first week were junk. All three carriers apply STIR/SHAKEN attestation, and FreePBX can read the verification header — but attestation only tells you whether the carrier vouches for the number, not whether the caller is a human with honest intentions. A robocall from a legitimately signed number still rings through.

What actually cut the noise was boring: an IVR prompt that made callers press a digit, a blocklist fed from CDR review, and a whitelist for the twelve numbers the office actually needs to hear from. Junk calls dropped by maybe 70%. That's an afternoon of configuration, not a subscription.

E911 is where this stops being a hobby

Here's the part the YouTube tutorials skate past. Under Kari's Law and the RAY BAUM's Act, a multi-line system in the US has to allow direct 911 dialing with no prefix, send a notification to a central point in the building, and provide a dispatchable location to the PSAP. FreePBX can do all three. It will not do them by default, and if you get it wrong, you have built a liability with a dial tone.

We configured per-extension 911 location records, an outbound route with zero dialing friction, and an email-plus-SMS notification to the front desk. Then we called the non-emergency line and asked questions, which is free and which we recommend.

Also: register your brand and numbers correctly with your carrier before you start blasting outbound calls. Unregistered traffic gets labeled "Spam Likely" by the major US carriers fast, and getting that label removed is an unfun scavenger hunt.

The failover nobody plans for

The office has one ISP. One ISP means one power supply, one modem, one backhoe. A trunk provider with three redundant data centers does not help when the cable is in the ground.

We kept the old hosted service alive for the first two weeks as a parallel path — that overlap cost $132 and was the best money spent all month. After that, we stood up a second trunk on the backup ISP's small business line ($49/month, already present for other reasons) and wrote a FreePBX outbound route that flips when the primary trunk stops responding. The literal failover test: pulled the ethernet cable, watched the calls reroute in about nine seconds, plugged it back in.

The actual thirty-day math

Against $264 a month hosted, the recurring delta is roughly $190 a month net of the backup line — so the hardware pays for itself in under seven weeks. The fourteen hours are the real invoice. At a modest $60/hour loaded rate, month one cost $840 in labor plus $368 in cash, which is more than the hosted bill it replaced.

That gap closes by month four. It closes faster if you don't have to relearn dial plans, and slower if you inherit a fax machine, an alarm panel, and a receptionist who is used to a specific ring group.

What we'd tell a twelve-person shop

The software is free. The compliance, the failover path, and the analog leftovers are not, and they don't show up on the pricing page. If you have someone on staff who genuinely enjoys SIP debugging, this is a two-month payback and a permanent $190/month haircut off the budget. If you don't, pay the hosted provider and sleep well — that's not a defeat, it's just an honest read of where the cost actually sits.

All Articles

Related Articles

Mailcow After Week One: The Real Bill for Self-Hosted Email at a 10-Person Shop

Mailcow After Week One: The Real Bill for Self-Hosted Email at a 10-Person Shop

The One-Person LLC With No Subscriptions: 60 Days on a Fully Open-Source Back Office

The One-Person LLC With No Subscriptions: 60 Days on a Fully Open-Source Back Office

Linux Mint for a Week: The Invoice Nobody Shows You

Linux Mint for a Week: The Invoice Nobody Shows You