A phone system you can hold in one hand.
Desk phones, browsers, trunks, voicemail, queues and call records, from a single binary with no database to install and no restarts. Ever.
$ docker run -d --network host -v sidetone-data:/data ghcr.io/enetideas/sidetone $ docker logs sidetone Admin API token (shown once, store it now): sidetone_… time=09:22:14 level=INFO msg="sip listening" network=udp addr=[::]:5060 time=09:22:14 level=INFO msg="api listening" addr=127.0.0.1:8080
That is the whole install. The first start creates the database and prints an administrator's token once; the console is at http://127.0.0.1:8080/ on the same listener. Prefer a plain binary? There are three ways to run it.
The console
Everything it does, curl can do.
The web console is part of the binary. It is only a client of the REST API, with no build step and nothing loaded from anywhere else, so there is nothing it can do that a script cannot.
Three things
Small enough to understand. Real enough to rely on.
Kamailio, OpenSIPS, Asterisk and FreeSWITCH are powerful and heavy. If you want phones to call each other, reach a trunk and leave a record, most of that is unused cost. sidetone is the part you use.
It is one file
A static binary and a data directory beside it. Run the container, or copy the binary to a small VM or a Raspberry Pi and start it.
Install it →It is a real phone system
Hunt groups, queues, voicemail with message-waiting lamps, menus, transfer, parking, busy lamps, recording, business hours. Routing is data: a prefix, a trunk, a priority.
What it does →It changes while it runs
Every setting lives behind a REST API and takes effect the moment it is saved, certificates included. Calls in progress are never disturbed.
How it works →