GOPBX
A FusionPBX-class PBX rebuilt in Go, with a SvelteKit front end and FreeSWITCH underneath.
FusionPBX has been the default open-source PBX management layer for years, and it works, but it is PHP on top of FreeSWITCH, with an admin interface that shows its age. GOPBX is my answer to a simple question: what would that platform look like if you wrote it today?
The control plane is Go 1.25. The frontend is SvelteKit with shadcn-svelte, so the admin UI behaves like a modern application rather than a series of form posts. FreeSWITCH stays where it belongs, handling media and signalling, driven through ESL and generated XML. Configuration lives in Postgres and is exposed over a REST API, which means the same operations are available to the UI, to scripts and to other systems without three separate code paths.
The intended surface
A business PBX has a fairly fixed feature shape, and this is it, organised the way an operator thinks about it rather than the way the database is laid out. Implementation status varies by area, see the note below.
Call handling
- Extensions and extension summary
- Inbound and outbound call routing
- Call forward, transfer and call waiting
- Blind and announced transfer
- Call pickup and call parking
- Ring groups and follow-me
- Do not disturb
- Call block
Routing intelligence
- IVR menus and auto attendant
- Time conditions
- Call flows for day and night mode
- Dialplan management
- Caller ID handling
- Dial by name
- Direct inward system access
Queues and centre
- Call queues
- Call centre agent handling
- Music on hold
- Announcements and phrases
- Paging and intercom
- Barge, eavesdrop and whisper
Voicemail and recording
- Voicemail with per-extension boxes
- Voicemail to email
- Call recording
- Recording management
- Call monitoring
Administration
- Multi-tenant domains
- Users, groups and permissions
- Authentication and session handling
- Gateway and provider setup
- Device provisioning
- Contacts
- REST CRUD across all objects
Visibility
- Call detail records
- Live channel and registration view
- Extension status
- XML configuration generation
- Event socket command console