What I Build
I deploy self-hosted phone systems on FreePBX and Asterisk. The PBX runs on a Linux server I build and manage, either a VM on your own hypervisor or a VPS, and it terminates SIP trunks from a carrier like Telnyx. Extensions register over PJSIP for desk phones and over WebRTC for browser and mobile softphones, so a receptionist at a desk and a tech in a truck are on the same dial plan.
The difference between this and a hosted seat is where the logic lives. On a per-seat platform, your call flow is whatever the vendor's web form allows and your recordings sit in their storage. On a PBX I build, the dial plan is a text file, the recordings are files on your disk (recorded with the announcements your state's consent law requires), the CDR is a database you can query, and adding an extension costs nothing but a few minutes. You pay a carrier for minutes and DIDs instead of paying per person per month for the same handset behavior.
This is systems work, not a reseller arrangement. I do the SIP configuration, the firewall rules, the NAT and RTP handling, the TLS certificates, the codec negotiation, and the systemd service management. When something breaks at 4pm on a Friday, the person who reads the Asterisk log is the person who wrote the config.
What's Included
Every deployment covers the same ground. The scope changes with the number of extensions and how complicated the routing gets, not with which features you are allowed to have.
FreePBX and Asterisk Deployment
A hardened Linux host, FreePBX on top of Asterisk, PJSIP transports for UDP, TCP, TLS and WSS, and systemd units so the stack comes back cleanly after a reboot. Backups of the config and the CDR database run on a schedule.
SIP Trunking
Telnyx trunk setup with IP authentication or credential registration, outbound voice profiles, per-destination rate limits, and caller ID configured per extension or per department so outbound calls show the right number.
Number Porting
I handle the LOA and port request paperwork, verify the billing name and service address against the losing carrier's record, and stage the new system in parallel so your existing number keeps ringing until the port completes.
E911 and Dispatchable Location
A multi-line phone system has to dial 911 directly, without a 9 or any other prefix, and it has to send a dispatchable location so responders reach the right floor or suite. That is federal law under Kari's Law and RAY BAUM's Act, not an optional extra. Every deployment gets direct 911 dialing, a location record registered per extension or per site with the carrier, and an on-site notification so somebody at the front desk knows a 911 call was placed.
IVR and Call Flows
Auto attendants, ring groups, queues with hold music and position announcements, time conditions for business hours and holidays, follow-me to mobile, and voicemail to email as an attached recording.
WebRTC Softphones
Browser-based extensions over secure WebSockets with a coTURN relay for clients behind restrictive NAT. Staff can take calls from a laptop or an Android handset without a desk phone or a VPN back to the office.
Call Recording and CDR
Per-extension or per-queue recording with a retention policy you set, stored on your own disk. Call detail records land in a database you can report against, which is what makes a real answer-rate or missed-call review possible.
Security and Fraud Controls
SIP endpoints firewalled to known networks, fail2ban jails on the auth path, TLS on signaling, and carrier-side daily spend caps plus a maximum destination rate so a compromised extension cannot dial premium-rate numbers all weekend.
Handsets and Provisioning
Desk phone selection, provisioning templates so a replacement handset comes up with the right extension on first boot, headset and paging setup, and a written extension map handed over at the end.
How a Cutover Works
Nobody can afford a day with no phones. The whole plan is built so the old system keeps working until the new one has already proven itself.
Audit and Map
I pull your current bill, list every DID you are paying for, and write down how calls actually route today. Most offices find numbers they stopped using and seats billed for people who left.
Build in Parallel
The new PBX gets built, trunked, and tested on a temporary number while the old system stays live. Staff try their extensions, the IVR gets walked end to end, and voicemail delivery is confirmed before anything is scheduled.
Port and Watch
Numbers port on a scheduled window, usually mid-morning midweek. I watch the trunk and the logs live through the first day, fix what surfaces, then hand over documentation and the admin credentials.
Porting timelines are set by the losing carrier, not by me. I schedule around their window rather than promising one.
Systems I Have Already Shipped
These are live builds, not case study mockups. Each one is running the same stack described above.
RingNow VoIP Platform
The product build on the same Asterisk foundation: SIP and WebRTC calling, a coTURN relay for hard NAT cases, and softphone clients on desktop and Android. Useful as a reference for what the softphone side of a business deployment looks like in practice.
Call Center Application
A production agent console built on Asterisk ARI, FastAPI, WebSockets and Alpine.js, replacing a per-seat hosted call center platform. Live call control, agent state, and dispositions on top of the same PBX a small office would run.
RingNow for Individuals
The consumer-facing side of the platform: a permanent US number that follows a person across countries and devices, with 2FA and bank texts delivered reliably. Same trunking and registration work, different audience.
Who This Suits
A self-hosted PBX pays off fastest for offices with real call volume and routing that a hosted plan makes awkward: contractors with a dispatch queue, medical and dental practices with after-hours conditions, print and fulfillment shops where sales and production need separate paths, and any business that has been told a feature it needs is on a higher tier.
It is a poor fit for a one-person business with a single line and no routing. If that is you, a hosted number is cheaper and I will say so. The audit step is where that call gets made, and I would rather lose the build than sell a PBX that never earns back the server it runs on.
I am in Lynchburg and cover Central Virginia on site for cabling checks, handset placement and cutover day. Everything else, including the build, the trunk setup and ongoing changes, is done remotely for clients anywhere in the US.
Need a Business Phone System?
Tell me what you are running now and what keeps breaking. A 24 hour answering service picks up and routes straight to my cell when something is down; scheduled work happens in agreed windows. I am based in Lynchburg, onsite across Central Virginia, and remote for clients nationwide.
Get in Touch